example\StateMonadTest::test_demonstrate_state_monad PHP Метод

test_demonstrate_state_monad() публичный Метод

public test_demonstrate_state_monad ( $expectedProducts )
    public function test_demonstrate_state_monad($expectedProducts)
    {
        $initialState = new InMemoryCache([]);
        list($result1, $outputState1) = S\runState(searchRelated('asia'), $initialState);
        $this->assertEquals($expectedProducts, $result1);
        list($result2, $outputState2) = S\runState(searchRelated('asia'), $outputState1);
        $this->assertEquals($expectedProducts, $result2);
        // After second computation, state shouldn't be modified
        // Because we have item already in cache
        $this->assertSame($outputState1, $outputState2);
    }