This commit is contained in:
Xes
2025-08-14 22:41:49 +02:00
parent 2de81ccc46
commit 8ce45119b6
39774 changed files with 4309466 additions and 0 deletions

View File

@@ -0,0 +1,78 @@
<?php namespace Tests;
use PHPUnit\Framework\TestCase;
use Mockery;
use Packback\Lti1p3\Interfaces\Database;
use Packback\Lti1p3\Interfaces\LtiRegistrationInterface;
use Packback\Lti1p3\JwksEndpoint;
class JwksEndpointTest extends TestCase
{
public function testItInstantiates()
{
$jwks = new JwksEndpoint([]);
$this->assertInstanceOf(JwksEndpoint::class, $jwks);
}
public function testCreatesANewInstance()
{
$jwks = JwksEndpoint::new([]);
$this->assertInstanceOf(JwksEndpoint::class, $jwks);
}
public function testCreatesANewInstanceFromIssuer()
{
$database = Mockery::mock(Database::class);
$registration = Mockery::mock(LtiRegistrationInterface::class);
$database->shouldReceive('findRegistrationByIssuer')
->once()
->andReturn($registration);
$registration->shouldReceive('getKid')
->once()
->andReturn('kid');
$registration->shouldReceive('getToolPrivateKey')
->once()
->andReturn('private_key');
$jwks = JwksEndpoint::fromIssuer($database, 'issuer');
$this->assertInstanceOf(JwksEndpoint::class, $jwks);
}
public function testCreatesANewInstanceFromRegistration()
{
$registration = Mockery::mock(LtiRegistrationInterface::class);
$registration->shouldReceive('getKid')
->once()
->andReturn('kid');
$registration->shouldReceive('getToolPrivateKey')
->once()
->andReturn('private_key');
$jwks = JwksEndpoint::fromRegistration($registration);
$this->assertInstanceOf(JwksEndpoint::class, $jwks);
}
public function testItGetsJwksForTheProvidedKeys()
{
$jwks = new JwksEndpoint([
'kid' => file_get_contents(__DIR__.'/data/private.key')
]);
$result = $jwks->getPublicJwks();
$this->assertEquals(['keys' => [[
'kty' => 'RSA',
'alg' => 'RS256',
'use' => 'sig',
'e' => 'AQAB',
'n' => '6DzRJzrx0KThi0piO3wdNA3e7-xXly5WJo00CqlKDodtyX6wRT76E4cD57yrr_ZWuaA-6idSFPaEQXw9tCqqTIrS4STIYrlvC0CeEA7m0s2PbI2ffaxv2kofxdmOaUI8YW8NIqNyHMl6Acz1lQOOZ5xSreG5JAqtZpy7AwDdpJo7up9937AD9ZV77qlty6xRKVqOGP1-cH97zMvlQo0EUWUhRAzDlTlCXnbeSjVypET3l93WPT9gnIywt1xX0L6rIJd-4fyU6faaToGN9z4_Q6ay2xFSEJnoNBW9wI886W75vLcVLnT95YKJJwZoKEa9yoV_ZPiTBJcFv1HFPf4ibQ',
'kid' => 'kid',
]]], $result);
}
}