public function JWKFetcherTest::testCacheReturn in Auth0 Single Sign On 8.2
Test that the requestJwkX5c method returns a cached value, if set.
Return value
void
File
- vendor/
auth0/ auth0-php/ tests/ Helpers/ JWKFetcherTest.php, line 188
Class
- JWKFetcherTest
- Class JWKFetcherTest.
Namespace
Auth0\Tests\HelpersCode
public function testCacheReturn() {
$jwks_url = 'https://localhost/.well-known/jwks.json';
$kid = '__test_kid_2__';
$cache_value = '__cached_value__';
$set_spy = $this
->once();
$get_spy = $this
->any();
// Mock the CacheHandler interface.
$cache_handler = $this
->getMockBuilder(CacheHandler::class)
->getMock();
// The set method should only be called once.
$cache_handler
->expects($set_spy)
->method('set')
->willReturn(null);
// The get method should be called once and return no cache first, then a cache value after.
$cache_handler
->expects($get_spy)
->method('get')
->will($this
->onConsecutiveCalls(null, $cache_value));
$jwksFetcher = $this
->getStub($cache_handler);
$pem_not_cached = $jwksFetcher
->requestJwkX5c($jwks_url, $kid);
$this
->assertNotEmpty($pem_not_cached);
$pem_cached = $jwksFetcher
->requestJwkX5c($jwks_url, $kid);
$this
->assertEquals($cache_value, $pem_cached);
// Test that the set method was called with the correct parameters.
$set_invocations = $set_spy
->getInvocations();
$this
->assertEquals($jwks_url . '|' . $kid, $set_invocations[0]->parameters[0]);
$this
->assertEquals($pem_not_cached, $set_invocations[0]->parameters[1]);
// Test that the get method was only called twice.
$this
->assertEquals(2, $get_spy
->getInvocationCount());
}