public function testMemoizeWithArguments()
{
$this->callback->expects($this->at(0))->method('execute')->with('FOO', 'BAR')->will($this->returnValue('FOO BAR'));
$this->callback->expects($this->at(1))->method('execute')->with('BAR', 'BAZ')->will($this->returnValue('BAR BAZ'));
$this->assertSame('FOO BAR', memoize([$this->callback, 'execute'], ['FOO', 'BAR']));
$this->assertSame('FOO BAR', memoize([$this->callback, 'execute'], ['FOO', 'BAR']));
$this->assertSame('BAR BAZ', memoize([$this->callback, 'execute'], ['BAR', 'BAZ']));
$this->assertSame('BAR BAZ', memoize([$this->callback, 'execute'], ['BAR', 'BAZ']));
}