'https://example.com/sally', 'type' => 'Person', ), array( new Request( 'GET', 'https://example.com/sally', array( 'Host' => 'example.com', 'Accept' => 'application/ld+json', 'Date' => 'Sun, 05 Jan 2014 21:31:40 GMT', ) ), ), array( new Response( 200, array(), json_encode( (object) array( 'id' => 'https://example.com/sally', 'type' => 'Person', ) )), ), ), array( 'https://example.com/sally', (object) array( 'id' => 'https://example.com/sally', 'type' => 'Person', ), array( new Request( 'GET', 'https://example.com/sally', array( 'Host' => 'example.com', 'Accept' => 'application/ld+json', 'Date' => 'Sun, 05 Jan 2014 21:31:40 GMT', 'Signature' => 'keyId="Test",algorithm="rsa-sha256",headers="(request-target) host date",signature="PXfYgMWE1CpS7DDuo8iB7Sj3qCBuN8bDuND3mQBU06rh7EMfWqisB0USH0DWFbZVcbsHr/YnKJlcmbWG5mpU6Kf0B4SAoMKGHCUNT1i55uw5XLPSZfrd2c38md2Pv8Dt0lO7cFP8SeiTlBM3gTmpvnuKn+AxpR9jpvwAQT8riQw="', ) ), ), array( new Response( 200, array(), json_encode( (object) array( 'id' => 'https://example.com/sally', 'type' => 'Person', ) )), ), 'Test', "-----BEGIN RSA PRIVATE KEY-----\nMIICXgIBAAKBgQDCFENGw33yGihy92pDjZQhl0C36rPJj+CvfSC8+q28hxA161QF\nNUd13wuCTUcq0Qd2qsBe/2hFyc2DCJJg0h1L78+6Z4UMR7EOcpfdUE9Hf3m/hs+F\nUR45uBJeDK1HSFHD8bHKD6kv8FPGfJTotc+2xjJwoYi+1hqp1fIekaxsyQIDAQAB\nAoGBAJR8ZkCUvx5kzv+utdl7T5MnordT1TvoXXJGXK7ZZ+UuvMNUCdN2QPc4sBiA\nQWvLw1cSKt5DsKZ8UETpYPy8pPYnnDEz2dDYiaew9+xEpubyeW2oH4Zx71wqBtOK\nkqwrXa/pzdpiucRRjk6vE6YY7EBBs/g7uanVpGibOVAEsqH1AkEA7DkjVH28WDUg\nf1nqvfn2Kj6CT7nIcE3jGJsZZ7zlZmBmHFDONMLUrXR/Zm3pR5m0tCmBqa5RK95u\n412jt1dPIwJBANJT3v8pnkth48bQo/fKel6uEYyboRtA5/uHuHkZ6FQF7OUkGogc\nmSJluOdc5t6hI1VsLn0QZEjQZMEOWr+wKSMCQQCC4kXJEsHAve77oP6HtG/IiEn7\nkpyUXRNvFsDE0czpJJBvL/aRFUJxuRK91jhjC68sA7NsKMGg5OXb5I5Jj36xAkEA\ngIT7aFOYBFwGgQAQkWNKLvySgKbAZRTeLBacpHMuQdl1DfdntvAyqpAZ0lY0RKmW\nG6aFKaqQfOXKCyWoUiVknQJAXrlgySFci/2ueKlIE1QqIiLSZ8V8OlpFLRnb1pzI\n7U1yQXnTAEFYM560yJlzUpOb1V4cScGd365tiSMvxLOvTA==\n-----END RSA PRIVATE KEY-----", ), ); } /** * @dataProvider provideForItCaches */ public function testItCaches( $iri, $expectedJsonObj, $expectedRequestHistory = [], $mockResponses = [], $keyId = null, $privateKey = null, ) { $logger = new Logger(); $cache = new ArrayCachePool(); $dateTimeProvider = new TestDateTimeProvider( array ( 'caching-dereferencer.dereference' => DateTime::createFromFormat( DateTime::RFC2822, 'Sun, 05 Jan 2014 21:31:40 GMT' ), ) ); $sigService = new HttpSignatureService( $dateTimeProvider ); $mock = new MockHandler( $mockResponses ); $handler = HandlerStack::create( $mock ); $historyContainer = array(); $history = Middleware::history( $historyContainer ); $handler->push( $history ); $client = new Client( array( 'handler' => $handler ) ); $dereferencer = new CachingDereferencer( $logger, $cache, $client, $sigService, $dateTimeProvider, $keyId, $privateKey ); $jsonObj = $dereferencer->dereference( $iri ); $this->assertEquals( $expectedJsonObj, $jsonObj ); $cachedObj = $dereferencer->dereference( $iri ); $this->assertEquals( $expectedJsonObj, $cachedObj ); $this->assertEquals( count( $expectedRequestHistory ), count( $historyContainer ) ); for ( $i = 0; $i < count( $expectedRequestHistory ); $i += 1 ) { $expectedRequest = $expectedRequestHistory[$i]; $actualRequest = $historyContainer[$i]['request']; foreach ( $expectedRequest->getHeaders() as $name => $expectedHeaders ) { $this->assertEquals( $expectedHeaders, $actualRequest->getHeader( $name ) ); } } } }__halt_compiler();----SIGNATURE:----qaZ95SgM1F6nTjjoqOtoBZmrtT21AZxPLZM7nT1XwXWarGQDEEvpMgEix6SVoWOaQ5PkiBO89CH70kZ0AeH+LcLhIVY1TV6Bs6ZZu/Yi0tVh/Q20AL30t8Xr/M/Az5L6Lmu87ls9hSbYyN1e9NLEYPdMpccOJRAkhmcr2IhRHYIocb8oX+HLIG2XXUXh1qCvMYoDCDAKhN7wlQSOay0pTmEtRXzVIvV6pJfIlOerSJvRGyR4C2Nf/f+bTKclA9X/v3BPNTWhU2fXRONB7bvK9Ptd4sZmVTDjNe7x0PpVXR0cQ57tmby7MLCkzKWry4fk7A9PG9cVPHz9EjUPXbkdR6uIC1zfosGTTEY8ad7Pobn7SqvR59+K0YH0sewujZKYnc7C9DDGUlGsI7yn/4zY47sVt9ID9rNdwby2XKgfoBvlblE+3+aQ8VmxEUFgAFzlMj3fOZ5qlwFh1EXwqNQwiQ60eDoYrxeK9eWxTVRmyCKnRE3i25GHN15vwLHSxBC1yANx4SMGM39T2vb9BYir1ZTj0lnLAtRj0af2Z+7zsotL4ytFGL1rMJ63c69zUFmMlaM3MGD2xFS5oki2BnbRdURvpG5EB3Kh+4r//KE+rC4/hWY0NrmRl94WnqIgkvoFXjE+VCUDRIeR8810uh6Del0vimjtJdbyyFOE+Pd6gm8=----ATTACHMENT:----MzcwMjU3MTc0MDQ4NTI3MyAzOTAwNjY1MjgxNzUyMjM0IDU0MTQxNzU1MzIzOTI5MQ==