public function assertNoEvents() { $this->assertFalse(AsyncToolTest::hasEvents(), "Event is pending"); }
public function testAddInner() { $as = $this->as; $as->state()->executed1 = false; $as->state()->executed1_1 = false; $as->state()->executed1_2 = false; $as->state()->executed2 = false; $as->add(function (\FutoIn\AsyncSteps $as) { $as->state()->executed1 = true; $as->add(function (\FutoIn\AsyncSteps $as) { $as->state()->executed1_1 = true; $as->success("1_1"); }); $as->add(function (\FutoIn\AsyncSteps $as, $val) { $as->state()->executed1_2 = true; $this->assertEquals("1_1", $val); $as->success("1_2"); }); }); $as->add(function (\FutoIn\AsyncSteps $as, $val) { $as->state()->executed2 = true; $this->assertEquals("1_2", $val); }); $as->execute(); $this->assertTrue($as->state()->executed1, "Step 1 was not executed"); $this->assertFalse($as->state()->executed1_1, "Step 1_1 was executed"); $this->assertFalse($as->state()->executed1_2, "Step 1_1 was executed"); $this->assertFalse($as->state()->executed2, "Step 2 was executed"); $this->assertTrue(AsyncToolTest::hasEvents(), "Next steps are not scheduled"); AsyncToolTest::nextEvent(); $this->assertTrue($as->state()->executed1_1, "Step 1_1 was not executed"); $this->assertFalse($as->state()->executed1_2, "Step 1_2 was executed"); $this->assertTrue(AsyncToolTest::hasEvents(), "Next steps are not scheduled"); AsyncToolTest::nextEvent(); $this->assertTrue($as->state()->executed1_2, "Step 1_2 was not executed"); $this->assertFalse($as->state()->executed2, "Step 2 was executed"); $this->assertTrue(AsyncToolTest::hasEvents(), "Next steps are not scheduled"); AsyncToolTest::nextEvent(); $this->assertTrue($as->state()->executed2, "Step 2 was not executed"); $this->assertNoEvents(); }