예제 #1
0
 /**
  * @param TokenDefinition $definition
  * @return Token
  */
 public function build(TokenDefinition $definition)
 {
     $token = $this->getToken($definition->getClass());
     $token->setType($definition->getType());
     $token->setHash($this->generateHash($definition->getHashAlgorithm()));
     $token->setUsages($definition->getUsages());
     $token->setExpiresAt($this->calculateExpirationDate($definition->getTtl()));
     return $token;
 }
예제 #2
0
 function it_does_not_merge_token_definition_if_values_were_already_set(TokenDefinition $definition)
 {
     $class = 'My\\Class';
     $hashAlgorithm = 'my_alg';
     $usages = 3;
     $ttl = '3 days';
     $this->setClass($class);
     $this->setHashAlgorithm($hashAlgorithm);
     $this->setUsages($usages);
     $this->setTtl($ttl);
     $definition->getClass()->willReturn('My\\Class2');
     $definition->getHashAlgorithm()->willReturn('test_alg');
     $definition->getUsages()->willReturn(0);
     $definition->getTtl()->willReturn('1 day');
     $token = $this->merge($definition);
     $token->getClass()->shouldReturn($class);
     $token->getHashAlgorithm()->shouldReturn($hashAlgorithm);
     $token->getUsages()->shouldReturn($usages);
     $token->getTtl()->shouldReturn($ttl);
 }
예제 #3
0
 function it_throws_an_exception_if_token_class_is_not_an_instance_of_DevhelpTokenToken(TokenDefinition $definition)
 {
     $definition->getClass()->willReturn('\\stdClass');
     $this->shouldThrow('\\InvalidArgumentException')->duringBuild($definition);
 }