DataSift\Storyplayer\PlayerLib\Action_LogItemTest::testCanStartANestedActionInsideANestedAction PHP Method

testCanStartANestedActionInsideANestedAction() public method

    public function testCanStartANestedActionInsideANestedAction()
    {
        // ----------------------------------------------------------------
        // setup your test
        // the messages we are logging
        $startMsg1 = "This is a test message";
        $startMsg2 = "This is the nested test message";
        // our DI container
        $i = new Injectables();
        // our mocked output object
        $i->output = Mockery::mock("DataSift\\Storyplayer\\Output");
        $i->output->shouldReceive('logPhaseActivity')->once()->with($startMsg1, null);
        $i->output->shouldReceive('logPhaseActivity')->once()->with('  ' . $startMsg2, null);
        // our real data formatter
        $i->dataFormatter = new DataFormatter();
        // our unit under test
        $obj = new Action_LogItem($i, 1);
        $obj->startAction($startMsg1);
        // make sure the message started
        $this->assertNotNull($obj->getStartTime());
        // ----------------------------------------------------------------
        // perform the change
        $nestedObj1 = $obj->newNestedAction();
        $nestedObj1->startAction($startMsg2);
        $nestedObj2 = $obj->newNestedAction();
        // ----------------------------------------------------------------
        // test the results
        $this->assertTrue($nestedObj1 instanceof Action_LogItem);
        $this->assertEquals(2, $nestedObj1->getNestLevel());
        $this->assertTrue($nestedObj2 instanceof Action_LogItem);
        $this->assertEquals(3, $nestedObj2->getNestLevel());
        Mockery::close();
    }