/** * @test * * @uses Lcobucci\JWT\Builder::__construct * @uses Lcobucci\JWT\Builder::set * @uses Lcobucci\JWT\Token * * @covers Lcobucci\JWT\Builder::getToken */ public function getTokenMustReturnANewTokenWithCurrentConfiguration() { $signature = $this->getMock(Signature::class, [], [], '', false); $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()->set('test', 123); $builderSign = new \ReflectionProperty($builder, 'signature'); $builderSign->setAccessible(true); $builderSign->setValue($builder, $signature); $token = $builder->getToken(); $tokenSign = new \ReflectionProperty($token, 'signature'); $tokenSign->setAccessible(true); $this->assertAttributeEquals(['1', '2', '3'], 'payload', $token); $this->assertAttributeEquals($token->getHeaders(), 'headers', $builder); $this->assertAttributeEquals($token->getClaims(), 'claims', $builder); $this->assertAttributeSame($tokenSign->getValue($token), 'signature', $builder); }