public function testShouldPut() { // Set $cacheRepo = m::mock(Repository::class); $serializer = m::mock(Serializer::class); $component = new LaravelCacheComponent($cacheRepo, $serializer); $key = 'foo'; $value = [(object) ['name' => 'batata']]; // Expectations $serializer->shouldReceive('convert')->once()->with([['name' => 'batata']])->andReturn([['name' => 'chips']]); $cacheRepo->shouldReceive('put')->once()->with($key, [['name' => 'chips']], 3)->andReturn($value); // Assertion $component->put($key, $value, 3); }