sonarrradarrplexorganizrnginxdashboardlandingpagestartpagelandinghtpcserverhomepagesabnzbdheimdallembycouchpotatonzbgetbookmarkapplication-dashboardmuximux
		
		
		
		
			You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					
					
						
							633 lines
						
					
					
						
							18 KiB
						
					
					
				
			
		
		
		
			
			
			
				
					
				
				
					
				
			
		
		
	
	
							633 lines
						
					
					
						
							18 KiB
						
					
					
				| <?php | |
| /** | |
|  * This file is part of Lcobucci\JWT, a simple library to handle JWT and JWS | |
|  * | |
|  * @license http://opensource.org/licenses/BSD-3-Clause BSD-3-Clause | |
|  */ | |
| 
 | |
| namespace Lcobucci\JWT; | |
| 
 | |
| use Lcobucci\JWT\Claim\Factory as ClaimFactory; | |
| use Lcobucci\JWT\Parsing\Encoder; | |
| use Lcobucci\JWT\Signer\Key; | |
| 
 | |
| /** | |
|  * @author Luís Otávio Cobucci Oblonczyk <lcobucci@gmail.com> | |
|  * @since 0.1.0 | |
|  */ | |
| class BuilderTest extends \PHPUnit\Framework\TestCase | |
| { | |
|     /** | |
|      * @var Encoder|\PHPUnit_Framework_MockObject_MockObject | |
|      */ | |
|     protected $encoder; | |
| 
 | |
|     /** | |
|      * @var ClaimFactory|\PHPUnit_Framework_MockObject_MockObject | |
|      */ | |
|     protected $claimFactory; | |
| 
 | |
|     /** | |
|      * @var Claim|\PHPUnit_Framework_MockObject_MockObject | |
|      */ | |
|     protected $defaultClaim; | |
| 
 | |
|     /** | |
|      * {@inheritdoc} | |
|      */ | |
|     protected function setUp() | |
|     { | |
|         $this->encoder = $this->createMock(Encoder::class); | |
|         $this->claimFactory = $this->createMock(ClaimFactory::class); | |
|         $this->defaultClaim = $this->createMock(Claim::class); | |
| 
 | |
|         $this->claimFactory->expects($this->any()) | |
|                            ->method('create') | |
|                            ->willReturn($this->defaultClaim); | |
|     } | |
| 
 | |
|     /** | |
|      * @return Builder | |
|      */ | |
|     private function createBuilder() | |
|     { | |
|         return new Builder($this->encoder, $this->claimFactory); | |
|     } | |
| 
 | |
|     /** | |
|      * @test | |
|      * | |
|      * @covers Lcobucci\JWT\Builder::__construct | |
|      */ | |
|     public function constructMustInitializeTheAttributes() | |
|     { | |
|         $builder = $this->createBuilder(); | |
| 
 | |
|         $this->assertAttributeEquals(['alg' => 'none', 'typ' => 'JWT'], 'headers', $builder); | |
|         $this->assertAttributeEquals([], 'claims', $builder); | |
|         $this->assertAttributeSame($this->encoder, 'encoder', $builder); | |
|         $this->assertAttributeSame($this->claimFactory, 'claimFactory', $builder); | |
|     } | |
| 
 | |
|     /** | |
|      * @test | |
|      * | |
|      * @uses Lcobucci\JWT\Builder::__construct | |
|      * @uses Lcobucci\JWT\Builder::withClaim | |
|      * | |
|      * @covers Lcobucci\JWT\Builder::permittedFor | |
|      * @covers Lcobucci\JWT\Builder::setRegisteredClaim | |
|      */ | |
|     public function permittedForMustChangeTheAudClaim() | |
|     { | |
|         $builder = $this->createBuilder(); | |
|         $builder->permittedFor('test'); | |
| 
 | |
|         $this->assertAttributeEquals(['alg' => 'none', 'typ' => 'JWT'], 'headers', $builder); | |
|         $this->assertAttributeEquals(['aud' => $this->defaultClaim], 'claims', $builder); | |
|     } | |
| 
 | |
|     /** | |
|      * @test | |
|      * | |
|      * @uses Lcobucci\JWT\Builder::__construct | |
|      * @uses Lcobucci\JWT\Builder::withClaim | |
|      * | |
|      * @covers Lcobucci\JWT\Builder::permittedFor | |
|      * @covers Lcobucci\JWT\Builder::setRegisteredClaim | |
|      */ | |
|     public function permittedForCanReplicateItemOnHeader() | |
|     { | |
|         $builder = $this->createBuilder(); | |
|         $builder->permittedFor('test', true); | |
| 
 | |
|         $this->assertAttributeEquals(['aud' => $this->defaultClaim], 'claims', $builder); | |
| 
 | |
|         $this->assertAttributeEquals( | |
|             ['alg' => 'none', 'typ' => 'JWT', 'aud' => $this->defaultClaim], | |
|             'headers', | |
|             $builder | |
|         ); | |
|     } | |
| 
 | |
|     /** | |
|      * @test | |
|      * | |
|      * @uses Lcobucci\JWT\Builder::__construct | |
|      * @uses Lcobucci\JWT\Builder::withClaim | |
|      * | |
|      * @covers Lcobucci\JWT\Builder::permittedFor | |
|      * @covers Lcobucci\JWT\Builder::setRegisteredClaim | |
|      */ | |
|     public function permittedForMustKeepAFluentInterface() | |
|     { | |
|         $builder = $this->createBuilder(); | |
| 
 | |
|         $this->assertSame($builder, $builder->permittedFor('test')); | |
|     } | |
| 
 | |
|     /** | |
|      * @test | |
|      * | |
|      * @uses Lcobucci\JWT\Builder::__construct | |
|      * @uses Lcobucci\JWT\Builder::withClaim | |
|      * | |
|      * @covers Lcobucci\JWT\Builder::expiresAt | |
|      * @covers Lcobucci\JWT\Builder::setRegisteredClaim | |
|      */ | |
|     public function expiresAtMustChangeTheExpClaim() | |
|     { | |
|         $builder = $this->createBuilder(); | |
|         $builder->expiresAt('2'); | |
| 
 | |
|         $this->assertAttributeEquals(['alg' => 'none', 'typ' => 'JWT'], 'headers', $builder); | |
|         $this->assertAttributeEquals(['exp' => $this->defaultClaim], 'claims', $builder); | |
|     } | |
| 
 | |
|     /** | |
|      * @test | |
|      * | |
|      * @uses Lcobucci\JWT\Builder::__construct | |
|      * @uses Lcobucci\JWT\Builder::withClaim | |
|      * | |
|      * @covers Lcobucci\JWT\Builder::expiresAt | |
|      * @covers Lcobucci\JWT\Builder::setRegisteredClaim | |
|      */ | |
|     public function expiresAtCanReplicateItemOnHeader() | |
|     { | |
|         $builder = $this->createBuilder(); | |
|         $builder->expiresAt('2', true); | |
| 
 | |
|         $this->assertAttributeEquals(['exp' => $this->defaultClaim], 'claims', $builder); | |
| 
 | |
|         $this->assertAttributeEquals( | |
|             ['alg' => 'none', 'typ' => 'JWT', 'exp' => $this->defaultClaim], | |
|             'headers', | |
|             $builder | |
|         ); | |
|     } | |
| 
 | |
|     /** | |
|      * @test | |
|      * | |
|      * @uses Lcobucci\JWT\Builder::__construct | |
|      * @uses Lcobucci\JWT\Builder::withClaim | |
|      * | |
|      * @covers Lcobucci\JWT\Builder::expiresAt | |
|      * @covers Lcobucci\JWT\Builder::setRegisteredClaim | |
|      */ | |
|     public function expiresAtMustKeepAFluentInterface() | |
|     { | |
|         $builder = $this->createBuilder(); | |
| 
 | |
|         $this->assertSame($builder, $builder->expiresAt('2')); | |
|     } | |
| 
 | |
|     /** | |
|      * @test | |
|      * | |
|      * @uses Lcobucci\JWT\Builder::__construct | |
|      * @uses Lcobucci\JWT\Builder::withClaim | |
|      * | |
|      * @covers Lcobucci\JWT\Builder::identifiedBy | |
|      * @covers Lcobucci\JWT\Builder::setRegisteredClaim | |
|      */ | |
|     public function identifiedByMustChangeTheJtiClaim() | |
|     { | |
|         $builder = $this->createBuilder(); | |
|         $builder->identifiedBy('2'); | |
| 
 | |
|         $this->assertAttributeEquals(['alg' => 'none', 'typ' => 'JWT'], 'headers', $builder); | |
|         $this->assertAttributeEquals(['jti' => $this->defaultClaim], 'claims', $builder); | |
|     } | |
| 
 | |
|     /** | |
|      * @test | |
|      * | |
|      * @uses Lcobucci\JWT\Builder::__construct | |
|      * @uses Lcobucci\JWT\Builder::withClaim | |
|      * | |
|      * @covers Lcobucci\JWT\Builder::identifiedBy | |
|      * @covers Lcobucci\JWT\Builder::setRegisteredClaim | |
|      */ | |
|     public function identifiedByCanReplicateItemOnHeader() | |
|     { | |
|         $builder = $this->createBuilder(); | |
|         $builder->identifiedBy('2', true); | |
| 
 | |
|         $this->assertAttributeEquals(['jti' => $this->defaultClaim], 'claims', $builder); | |
| 
 | |
|         $this->assertAttributeEquals( | |
|             ['alg' => 'none', 'typ' => 'JWT', 'jti' => $this->defaultClaim], | |
|             'headers', | |
|             $builder | |
|         ); | |
|     } | |
| 
 | |
|     /** | |
|      * @test | |
|      * | |
|      * @uses Lcobucci\JWT\Builder::__construct | |
|      * @uses Lcobucci\JWT\Builder::withClaim | |
|      * | |
|      * @covers Lcobucci\JWT\Builder::identifiedBy | |
|      * @covers Lcobucci\JWT\Builder::setRegisteredClaim | |
|      */ | |
|     public function identifiedByMustKeepAFluentInterface() | |
|     { | |
|         $builder = $this->createBuilder(); | |
| 
 | |
|         $this->assertSame($builder, $builder->identifiedBy('2')); | |
|     } | |
| 
 | |
|     /** | |
|      * @test | |
|      * | |
|      * @uses Lcobucci\JWT\Builder::__construct | |
|      * @uses Lcobucci\JWT\Builder::withClaim | |
|      * | |
|      * @covers Lcobucci\JWT\Builder::issuedAt | |
|      * @covers Lcobucci\JWT\Builder::setRegisteredClaim | |
|      */ | |
|     public function issuedAtMustChangeTheIatClaim() | |
|     { | |
|         $builder = $this->createBuilder(); | |
|         $builder->issuedAt('2'); | |
| 
 | |
|         $this->assertAttributeEquals(['alg' => 'none', 'typ' => 'JWT'], 'headers', $builder); | |
|         $this->assertAttributeEquals(['iat' => $this->defaultClaim], 'claims', $builder); | |
|     } | |
| 
 | |
|     /** | |
|      * @test | |
|      * | |
|      * @uses Lcobucci\JWT\Builder::__construct | |
|      * @uses Lcobucci\JWT\Builder::withClaim | |
|      * | |
|      * @covers Lcobucci\JWT\Builder::issuedAt | |
|      * @covers Lcobucci\JWT\Builder::setRegisteredClaim | |
|      */ | |
|     public function issuedAtCanReplicateItemOnHeader() | |
|     { | |
|         $builder = $this->createBuilder(); | |
|         $builder->issuedAt('2', true); | |
| 
 | |
|         $this->assertAttributeEquals(['iat' => $this->defaultClaim], 'claims', $builder); | |
| 
 | |
|         $this->assertAttributeEquals( | |
|             ['alg' => 'none', 'typ' => 'JWT', 'iat' => $this->defaultClaim], | |
|             'headers', | |
|             $builder | |
|         ); | |
|     } | |
| 
 | |
|     /** | |
|      * @test | |
|      * | |
|      * @uses Lcobucci\JWT\Builder::__construct | |
|      * @uses Lcobucci\JWT\Builder::withClaim | |
|      * | |
|      * @covers Lcobucci\JWT\Builder::issuedAt | |
|      * @covers Lcobucci\JWT\Builder::setRegisteredClaim | |
|      */ | |
|     public function issuedAtMustKeepAFluentInterface() | |
|     { | |
|         $builder = $this->createBuilder(); | |
| 
 | |
|         $this->assertSame($builder, $builder->issuedAt('2')); | |
|     } | |
| 
 | |
|     /** | |
|      * @test | |
|      * | |
|      * @uses Lcobucci\JWT\Builder::__construct | |
|      * @uses Lcobucci\JWT\Builder::withClaim | |
|      * | |
|      * @covers Lcobucci\JWT\Builder::issuedBy | |
|      * @covers Lcobucci\JWT\Builder::setRegisteredClaim | |
|      */ | |
|     public function issuedByMustChangeTheIssClaim() | |
|     { | |
|         $builder = $this->createBuilder(); | |
|         $builder->issuedBy('2'); | |
| 
 | |
|         $this->assertAttributeEquals(['alg' => 'none', 'typ' => 'JWT'], 'headers', $builder); | |
|         $this->assertAttributeEquals(['iss' => $this->defaultClaim], 'claims', $builder); | |
|     } | |
| 
 | |
|     /** | |
|      * @test | |
|      * | |
|      * @uses Lcobucci\JWT\Builder::__construct | |
|      * @uses Lcobucci\JWT\Builder::withClaim | |
|      * | |
|      * @covers Lcobucci\JWT\Builder::issuedBy | |
|      * @covers Lcobucci\JWT\Builder::setRegisteredClaim | |
|      */ | |
|     public function issuedByCanReplicateItemOnHeader() | |
|     { | |
|         $builder = $this->createBuilder(); | |
|         $builder->issuedBy('2', true); | |
| 
 | |
|         $this->assertAttributeEquals(['iss' => $this->defaultClaim], 'claims', $builder); | |
| 
 | |
|         $this->assertAttributeEquals( | |
|             ['alg' => 'none', 'typ' => 'JWT', 'iss' => $this->defaultClaim], | |
|             'headers', | |
|             $builder | |
|         ); | |
|     } | |
| 
 | |
|     /** | |
|      * @test | |
|      * | |
|      * @uses Lcobucci\JWT\Builder::__construct | |
|      * @uses Lcobucci\JWT\Builder::withClaim | |
|      * | |
|      * @covers Lcobucci\JWT\Builder::issuedBy | |
|      * @covers Lcobucci\JWT\Builder::setRegisteredClaim | |
|      */ | |
|     public function issuedByMustKeepAFluentInterface() | |
|     { | |
|         $builder = $this->createBuilder(); | |
| 
 | |
|         $this->assertSame($builder, $builder->issuedBy('2')); | |
|     } | |
| 
 | |
|     /** | |
|      * @test | |
|      * | |
|      * @uses Lcobucci\JWT\Builder::__construct | |
|      * @uses Lcobucci\JWT\Builder::withClaim | |
|      * | |
|      * @covers Lcobucci\JWT\Builder::canOnlyBeUsedAfter | |
|      * @covers Lcobucci\JWT\Builder::setRegisteredClaim | |
|      */ | |
|     public function canOnlyBeUsedAfterMustChangeTheNbfClaim() | |
|     { | |
|         $builder = $this->createBuilder(); | |
|         $builder->canOnlyBeUsedAfter('2'); | |
| 
 | |
|         $this->assertAttributeEquals(['alg' => 'none', 'typ' => 'JWT'], 'headers', $builder); | |
|         $this->assertAttributeEquals(['nbf' => $this->defaultClaim], 'claims', $builder); | |
|     } | |
| 
 | |
|     /** | |
|      * @test | |
|      * | |
|      * @uses Lcobucci\JWT\Builder::__construct | |
|      * @uses Lcobucci\JWT\Builder::withClaim | |
|      * | |
|      * @covers Lcobucci\JWT\Builder::canOnlyBeUsedAfter | |
|      * @covers Lcobucci\JWT\Builder::setRegisteredClaim | |
|      */ | |
|     public function canOnlyBeUsedAfterCanReplicateItemOnHeader() | |
|     { | |
|         $builder = $this->createBuilder(); | |
|         $builder->canOnlyBeUsedAfter('2', true); | |
| 
 | |
|         $this->assertAttributeEquals(['nbf' => $this->defaultClaim], 'claims', $builder); | |
| 
 | |
|         $this->assertAttributeEquals( | |
|             ['alg' => 'none', 'typ' => 'JWT', 'nbf' => $this->defaultClaim], | |
|             'headers', | |
|             $builder | |
|         ); | |
|     } | |
| 
 | |
|     /** | |
|      * @test | |
|      * | |
|      * @uses Lcobucci\JWT\Builder::__construct | |
|      * @uses Lcobucci\JWT\Builder::withClaim | |
|      * | |
|      * @covers Lcobucci\JWT\Builder::canOnlyBeUsedAfter | |
|      * @covers Lcobucci\JWT\Builder::setRegisteredClaim | |
|      */ | |
|     public function canOnlyBeUsedAfterMustKeepAFluentInterface() | |
|     { | |
|         $builder = $this->createBuilder(); | |
| 
 | |
|         $this->assertSame($builder, $builder->canOnlyBeUsedAfter('2')); | |
|     } | |
| 
 | |
|     /** | |
|      * @test | |
|      * | |
|      * @uses Lcobucci\JWT\Builder::__construct | |
|      * @uses Lcobucci\JWT\Builder::withClaim | |
|      * | |
|      * @covers Lcobucci\JWT\Builder::relatedTo | |
|      * @covers Lcobucci\JWT\Builder::setRegisteredClaim | |
|      */ | |
|     public function relatedToMustChangeTheSubClaim() | |
|     { | |
|         $builder = $this->createBuilder(); | |
|         $builder->relatedTo('2'); | |
| 
 | |
|         $this->assertAttributeEquals(['alg' => 'none', 'typ' => 'JWT'], 'headers', $builder); | |
|         $this->assertAttributeEquals(['sub' => $this->defaultClaim], 'claims', $builder); | |
|     } | |
| 
 | |
|     /** | |
|      * @test | |
|      * | |
|      * @uses Lcobucci\JWT\Builder::__construct | |
|      * @uses Lcobucci\JWT\Builder::withClaim | |
|      * | |
|      * @covers Lcobucci\JWT\Builder::relatedTo | |
|      * @covers Lcobucci\JWT\Builder::setRegisteredClaim | |
|      */ | |
|     public function relatedToCanReplicateItemOnHeader() | |
|     { | |
|         $builder = $this->createBuilder(); | |
|         $builder->relatedTo('2', true); | |
| 
 | |
|         $this->assertAttributeEquals(['sub' => $this->defaultClaim], 'claims', $builder); | |
| 
 | |
|         $this->assertAttributeEquals( | |
|             ['alg' => 'none', 'typ' => 'JWT', 'sub' => $this->defaultClaim], | |
|             'headers', | |
|             $builder | |
|         ); | |
|     } | |
| 
 | |
|     /** | |
|      * @test | |
|      * | |
|      * @uses Lcobucci\JWT\Builder::__construct | |
|      * @uses Lcobucci\JWT\Builder::withClaim | |
|      * | |
|      * @covers Lcobucci\JWT\Builder::relatedTo | |
|      * @covers Lcobucci\JWT\Builder::setRegisteredClaim | |
|      */ | |
|     public function relatedToMustKeepAFluentInterface() | |
|     { | |
|         $builder = $this->createBuilder(); | |
| 
 | |
|         $this->assertSame($builder, $builder->relatedTo('2')); | |
|     } | |
| 
 | |
|     /** | |
|      * @test | |
|      * | |
|      * @uses Lcobucci\JWT\Builder::__construct | |
|      * | |
|      * @covers Lcobucci\JWT\Builder::withClaim | |
|      */ | |
|     public function withClaimMustConfigureTheGivenClaim() | |
|     { | |
|         $builder = $this->createBuilder(); | |
|         $builder->withClaim('userId', 2); | |
| 
 | |
|         $this->assertAttributeEquals(['userId' => $this->defaultClaim], 'claims', $builder); | |
|     } | |
| 
 | |
|     /** | |
|      * @test | |
|      * | |
|      * @uses Lcobucci\JWT\Builder::__construct | |
|      * | |
|      * @covers Lcobucci\JWT\Builder::withClaim | |
|      */ | |
|     public function withClaimMustKeepAFluentInterface() | |
|     { | |
|         $builder = $this->createBuilder(); | |
| 
 | |
|         $this->assertSame($builder, $builder->withClaim('userId', 2)); | |
|     } | |
| 
 | |
|     /** | |
|      * @test | |
|      * | |
|      * @uses Lcobucci\JWT\Builder::__construct | |
|      * | |
|      * @covers Lcobucci\JWT\Builder::withHeader | |
|      */ | |
|     public function withHeaderMustConfigureTheGivenClaim() | |
|     { | |
|         $builder = $this->createBuilder(); | |
|         $builder->withHeader('userId', 2); | |
| 
 | |
|         $this->assertAttributeEquals( | |
|             ['alg' => 'none', 'typ' => 'JWT', 'userId' => $this->defaultClaim], | |
|             'headers', | |
|             $builder | |
|         ); | |
|     } | |
| 
 | |
|     /** | |
|      * @test | |
|      * | |
|      * @uses Lcobucci\JWT\Builder::__construct | |
|      * | |
|      * @covers Lcobucci\JWT\Builder::withHeader | |
|      */ | |
|     public function withHeaderMustKeepAFluentInterface() | |
|     { | |
|         $builder = $this->createBuilder(); | |
| 
 | |
|         $this->assertSame($builder, $builder->withHeader('userId', 2)); | |
|     } | |
| 
 | |
|     /** | |
|      * @test | |
|      * | |
|      * @uses Lcobucci\JWT\Builder::__construct | |
|      * @uses Lcobucci\JWT\Builder::getToken | |
|      * @uses Lcobucci\JWT\Token | |
|      * | |
|      * @covers Lcobucci\JWT\Builder::sign | |
|      */ | |
|     public function signMustConfigureSignerAndKey() | |
|     { | |
|         $signer = $this->createMock(Signer::class); | |
| 
 | |
|         $builder = $this->createBuilder(); | |
|         $builder->sign($signer, 'test'); | |
| 
 | |
|         $this->assertAttributeSame($signer, 'signer', $builder); | |
|         $this->assertAttributeEquals(new Key('test'), 'key', $builder); | |
|     } | |
| 
 | |
|     /** | |
|      * @test | |
|      * | |
|      * @uses Lcobucci\JWT\Builder::__construct | |
|      * @uses Lcobucci\JWT\Builder::getToken | |
|      * @uses Lcobucci\JWT\Token | |
|      * | |
|      * @covers Lcobucci\JWT\Builder::sign | |
|      */ | |
|     public function signMustKeepAFluentInterface() | |
|     { | |
|         $signer = $this->createMock(Signer::class); | |
|         $builder = $this->createBuilder(); | |
| 
 | |
|         $this->assertSame($builder, $builder->sign($signer, 'test')); | |
| 
 | |
|         return $builder; | |
|     } | |
| 
 | |
|     /** | |
|      * @test | |
|      * | |
|      * @depends signMustKeepAFluentInterface | |
|      * | |
|      * @covers Lcobucci\JWT\Builder::unsign | |
|      */ | |
|     public function unsignMustRemoveTheSignerAndKey(Builder $builder) | |
|     { | |
|         $builder->unsign(); | |
| 
 | |
|         $this->assertAttributeSame(null, 'signer', $builder); | |
|         $this->assertAttributeSame(null, 'key', $builder); | |
|     } | |
| 
 | |
|     /** | |
|      * @test | |
|      * | |
|      * @depends signMustKeepAFluentInterface | |
|      * | |
|      * @covers Lcobucci\JWT\Builder::unsign | |
|      */ | |
|     public function unsignMustKeepAFluentInterface(Builder $builder) | |
|     { | |
|         $this->assertSame($builder, $builder->unsign()); | |
|     } | |
| 
 | |
|     /** | |
|      * @test | |
|      * | |
|      * @uses Lcobucci\JWT\Builder::__construct | |
|      * @uses Lcobucci\JWT\Builder::withClaim | |
|      * @uses Lcobucci\JWT\Token | |
|      * | |
|      * @covers Lcobucci\JWT\Builder::getToken | |
|      */ | |
|     public function getTokenMustReturnANewTokenWithCurrentConfiguration() | |
|     { | |
|         $signer = $this->createMock(Signer::class); | |
|         $signature = $this->createMock(Signature::class); | |
| 
 | |
|         $signer->method('sign')->willReturn($signature); | |
| 
 | |
|         $this->encoder->expects($this->exactly(2)) | |
|                       ->method('jsonEncode') | |
|                       ->withConsecutive([['typ'=> 'JWT', 'alg' => 'none']], [['test' => $this->defaultClaim]]) | |
|                       ->willReturnOnConsecutiveCalls('1', '2'); | |
| 
 | |
|         $this->encoder->expects($this->exactly(3)) | |
|                       ->method('base64UrlEncode') | |
|                       ->withConsecutive(['1'], ['2'], [$signature]) | |
|                       ->willReturnOnConsecutiveCalls('1', '2', '3'); | |
| 
 | |
|         $builder = $this->createBuilder()->withClaim('test', 123); | |
|         $token = $builder->getToken($signer, new Key('testing')); | |
| 
 | |
|         $this->assertAttributeEquals(['1', '2', '3'], 'payload', $token); | |
|         $this->assertAttributeEquals($token->getHeaders(), 'headers', $builder); | |
|         $this->assertAttributeEquals($token->getClaims(), 'claims', $builder); | |
|         $this->assertAttributeSame($signature, 'signature', $token); | |
|     } | |
| }
 | |
| 
 |