Skip to content

Commit

Permalink
[commands] Add Trigger.onChange() test (#6849)
Browse files Browse the repository at this point in the history
  • Loading branch information
WispySparks authored Jul 27, 2024
1 parent e83a432 commit 5a1417a
Show file tree
Hide file tree
Showing 2 changed files with 50 additions and 0 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -62,6 +62,32 @@ void onFalseTest() {
assertFalse(command1.isScheduled());
}

@Test
void onChangeTest() {
CommandScheduler scheduler = CommandScheduler.getInstance();
AtomicBoolean finished = new AtomicBoolean(false);
Command command1 = new WaitUntilCommand(finished::get);

InternalButton button = new InternalButton();
button.setPressed(true);
button.onChange(command1);
scheduler.run();
assertFalse(command1.isScheduled());
button.setPressed(false);
scheduler.run();
assertTrue(command1.isScheduled());
finished.set(true);
scheduler.run();
assertFalse(command1.isScheduled());
finished.set(false);
button.setPressed(true);
scheduler.run();
assertTrue(command1.isScheduled());
finished.set(true);
scheduler.run();
assertFalse(command1.isScheduled());
}

@Test
void whileTrueRepeatedlyTest() {
CommandScheduler scheduler = CommandScheduler.getInstance();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -52,6 +52,30 @@ TEST_F(TriggerTest, OnFalse) {
EXPECT_FALSE(scheduler.IsScheduled(&command));
}

TEST_F(TriggerTest, OnChange) {
auto& scheduler = CommandScheduler::GetInstance();
bool finished = false;
bool pressed = true;
WaitUntilCommand command([&finished] { return finished; });

Trigger([&pressed] { return pressed; }).OnChange(&command);
scheduler.Run();
EXPECT_FALSE(command.IsScheduled());
pressed = false;
scheduler.Run();
EXPECT_TRUE(command.IsScheduled());
finished = true;
scheduler.Run();
EXPECT_FALSE(command.IsScheduled());
finished = false;
pressed = true;
scheduler.Run();
EXPECT_TRUE(command.IsScheduled());
finished = true;
scheduler.Run();
EXPECT_FALSE(command.IsScheduled());
}

TEST_F(TriggerTest, WhileTrueRepeatedly) {
auto& scheduler = CommandScheduler::GetInstance();
int inits = 0;
Expand Down

0 comments on commit 5a1417a

Please sign in to comment.