get()
/** * @test */ public function memoizeShouldCacheResult() { //given $command = Mock::mock(); Mock::when($command)->getName()->thenReturn('Jack', 'Black', 'White'); $supplier = Suppliers::memoize(function () use($command) { return $command->getName(); }); //when Clock::freeze('2014-01-01 11:11:11'); $result1 = $supplier->get(); $result2 = $supplier->get(); Clock::freeze('2014-01-01 11:11:12'); $result3 = $supplier->get(); Clock::freeze('2014-01-01 11:11:22'); $result4 = $supplier->get(); $result5 = $supplier->get(); //then $this->assertEquals('Jack', $result1); $this->assertEquals('Jack', $result2); $this->assertEquals('Jack', $result3); $this->assertEquals('Jack', $result4); $this->assertEquals('Jack', $result5); }