DataSift\Storyplayer\PlayerLib\Action_LoggerTest::testCanCloseNestedOpenActions PHP Method

testCanCloseNestedOpenActions() public method

    public function testCanCloseNestedOpenActions()
    {
        // ----------------------------------------------------------------
        // setup your test
        // the message we want to log
        $msg = "This is a test message";
        $expectedMsg1 = $msg;
        $expectedMsg2 = "  " . $msg;
        // our mock output facade
        $output = Mockery::mock("DataSift\\Storyplayer\\Output");
        $output->shouldReceive('logPhaseActivity')->once()->with($expectedMsg1, null);
        $output->shouldReceive('logPhaseActivity')->once()->with($expectedMsg2, null);
        // our mock DI container
        $i = new Injectables();
        $i->dataFormatter = new DataFormatter();
        $i->dataFormatter->setIsVerbose(true);
        $i->output = $output;
        // and, our test subject
        $obj = new Action_Logger($i);
        // open a couple of messages
        $log1 = $obj->startAction($msg);
        $log2 = $obj->startAction($msg);
        // ----------------------------------------------------------------
        // perform the change
        $obj->closeAllOpenActions();
        // ----------------------------------------------------------------
        // test the results
        $this->assertTrue($log2->getIsComplete());
        $this->assertTrue($log1->getIsComplete());
        $action = $obj->getOpenAction();
        $this->assertNull($action);
        // all done
        Mockery::close();
    }