'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:----MssvnGxJ+mEAn+TNizb4gkpV9z09zvlYUpDK/tEeX1/arKb12pkwln4g9RajkbYkrygv5Xiti/kf6mBFgtMgYK8E9ftlU2ASTuDmTGusm9oeyVLvcK5HwGcTgQJvut0GpiH5fE5/mqXncXbd3lG9kWwcsZvUpiOuTW207iSWT+jYwdfgS2VeJhNr36aAEHxntD4sc5Y+jKKfRP0qiLQx8W1nMrkZBslPe9SBHeYYp6zo12WmSM+enS7WpyUJnJP3IPH0Z1NWsXcCwz1mA6IZWU0vg/flxBUbUeTXAp7ECno+w/RHNMFXXWuK0rNNHXyxluGTItCIehSl4KoN7daiIABpnVMaZiPHRJjP+TrHORfB1WJfa6fj6oYPm/fgbp4/Se+u0Lqq4XTt7/M4KsR9bP9RJhBi5DAhgcOy+NQRhbVnfZEmb3dYaHC0KZoR1Y6XO9Nn1z2bHFLWvMvBHjZ2KgxlKVKDJ1N9TiU4UMWByZDhDNsp0rqvrPThW5aXNB45r2wNygSsydfZR7Li0PH7chQPUV7quF5a325gA+DBzKp9oolIaWTQOXEpRmu3qvKTDopFXtzwYDRCbbpBjcIk9KiHYndtqMh1Kqs5i7dX9Y7yhKUDPhXfhzsMVNL4VsccKfsS3kkKFGse/8pUzjRNBZKAVThzmHKLW1YnaGLaqYg=----ATTACHMENT:----MzczMTEzNDEzMjA1MTAxMCA1MjA0NjkzMzQyMDE0NiA1MzgwMTI4NDU3Nzc1NzYx