storage = Mockery::mock('Tymon\JWTAuth\Providers\Storage\StorageInterface'); $this->blacklist = new Blacklist($this->storage); $this->validator = Mockery::mock('Tymon\JWTAuth\Validators\PayloadValidator'); $this->validator->shouldReceive('setRefreshFlow->check'); } public function tearDown() { Mockery::close(); } /** @test */ public function it_should_add_a_valid_token_to_the_blacklist() { $claims = [ new Subject(1), new Issuer('http://example.com'), new Expiration(123 + 3600), new NotBefore(123), new IssuedAt(123), new JwtId('foo') ]; $payload = new Payload($claims, $this->validator); $this->storage->shouldReceive('add')->with('foo', [], 61); $this->blacklist->add($payload); } /** @test */ public function it_should_return_false_when_adding_an_expired_token_to_the_blacklist() { $claims = [ new Subject(1), new Issuer('http://example.com'), new Expiration(123 - 3600), new NotBefore(123), new IssuedAt(123), new JwtId('foo') ]; $payload = new Payload($claims, $this->validator, true); $this->storage->shouldReceive('add')->never(); $this->assertFalse($this->blacklist->add($payload)); } /** @test */ public function it_should_check_whether_a_token_has_been_blacklisted() { $claims = [ new Subject(1), new Issuer('http://example.com'), new Expiration(123 + 3600), new NotBefore(123), new IssuedAt(123), new JwtId('foobar') ]; $payload = new Payload($claims, $this->validator); $this->storage->shouldReceive('has')->with('foobar')->andReturn(true); $this->assertTrue($this->blacklist->has($payload)); } /** @test */ public function it_should_remove_a_token_from_the_blacklist() { $claims = [ new Subject(1), new Issuer('http://example.com'), new Expiration(123 + 3600), new NotBefore(123), new IssuedAt(123), new JwtId('foobar') ]; $payload = new Payload($claims, $this->validator); $this->storage->shouldReceive('destroy')->with('foobar')->andReturn(true); $this->assertTrue($this->blacklist->remove($payload)); } /** @test */ public function it_should_empty_the_blacklist() { $this->storage->shouldReceive('flush'); $this->assertTrue($this->blacklist->clear()); } }