Functional\Tests\MemoizeTest::testMemoizeWithCustomKey PHP Method

testMemoizeWithCustomKey() public method

    public function testMemoizeWithCustomKey()
    {
        $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'], 'MY:CUSTOM:KEY'));
        $this->assertSame('FOO BAR', memoize([$this->callback, 'execute'], ['BAR', 'BAZ'], 'MY:CUSTOM:KEY'), 'Result already memoized');
        $this->assertSame('FOO BAR', memoize([$this->callback, 'execute'], ['BAR', 'BAZ'], ['MY', 'CUSTOM', 'KEY']), 'Result already memoized');
        $this->assertSame('BAR BAZ', memoize([$this->callback, 'execute'], ['BAR', 'BAZ'], 'MY:DIFFERENT:KEY'));
        $this->assertSame('BAR BAZ', memoize([$this->callback, 'execute'], ['BAR', 'BAZ'], 'MY:DIFFERENT:KEY'), 'Result already memoized');
        $this->assertSame('BAR BAZ', memoize([$this->callback, 'execute'], ['FOO', 'BAR'], 'MY:DIFFERENT:KEY'), 'Result already memoized');
    }