/** * @param User $user * @param string $name * * @return ApiToken */ public function create(User $user, $name) { $apiToken = new ApiToken(); $apiToken->setToken($this->generateToken()); $apiToken->setUser($user); $apiToken->setName($name); $entityManager = $this->registry->getManager(); $entityManager->persist($apiToken); $entityManager->flush(); return $apiToken; }
public function testGetOrCreate() { $registry = M::mock(ManagerRegistry::class); $user = new User(); $token1 = new ApiToken(); $token1->setName('token1'); $token2 = new ApiToken(); $token2->setName('token2'); $user->setApiTokens([$token1, $token2]); $manager = M::mock(ObjectManager::class); $registry->shouldReceive('getManager')->withNoArgs()->andReturn($manager); $manager->shouldReceive('persist')->withAnyArgs()->andReturn(); $manager->shouldReceive('flush')->withNoArgs(); $tm = new ApiTokenManager($registry); $token = $tm->getOrCreate($user, 'token3'); $this->assertInstanceOf(ApiToken::class, $token); $this->assertNotSame($token1, $token); $this->assertNotSame($token2, $token); $this->assertSame($user, $token->getUser()); $this->assertSame('token3', $token->getName()); }