/** * @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; }
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); }
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); }