/** * @dataProvider parametersProvider * * @param array $arguments * @param string $result */ public function testParameters(array $arguments, $result) { $command = $this->application->find($arguments['command']); $commandTester = new CommandTester($command); $commandTester->execute($arguments); $businessUnit = isset($arguments['--user-business-unit']) && isset($this->businessUnits[$arguments['--user-business-unit']]) ? $this->businessUnits[$arguments['--user-business-unit']] : null; if (!empty($result)) { $this->assertStringStartsWith($result, $commandTester->getDisplay()); return; } $this->assertEmpty($commandTester->getDisplay()); /** @var User $user */ $user = $this->userManager->findUserByUsername($arguments['--user-name']); $this->assertNotEmpty($user); if ($businessUnit) { $this->assertSame($user->getOrganization(), $businessUnit->getOrganization()); $this->assertContains($businessUnit, $user->getBusinessUnits()); } $this->assertTrue($user->isEnabled()); $this->assertEquals($arguments['--user-name'], $user->getUsername()); $this->assertEquals($arguments['--user-email'], $user->getEmail()); $this->assertEquals($arguments['--user-firstname'], $user->getFirstName()); $this->assertEquals($arguments['--user-lastname'], $user->getLastName()); $userOrganizations = $user->getOrganizations(); foreach ($arguments['--user-organizations'] as $organizationName) { $this->assertContains($this->organizations[$organizationName], $userOrganizations); } }
/** * @param string $author * * @return string */ protected function normalizeAuthor($author) { if (!isset($this->authorCache[$author])) { $user = $this->userManager->findUserByUsername($author); if (null === $user) { $userName = sprintf('%s - %s', $author, $this->translator->trans('Removed user')); } else { $userName = sprintf('%s %s - %s', $user->getFirstName(), $user->getLastName(), $user->getEmail()); } $this->authorCache[$author] = $userName; } return $this->authorCache[$author]; }
/** * {@inheritdoc} */ protected function convertValue($value) { if (!isset($this->cachedResults[$value['author']])) { $user = $this->userManager->findUserByUsername($value['author']); if (null === $user) { $result = sprintf('%s - %s', $value['author'], $this->translator->trans('Removed user')); } else { $result = sprintf('%s %s - %s', $user->getFirstName(), $user->getLastName(), $user->getEmail()); } if (!empty($value['context'])) { $result .= sprintf(' (%s)', $value['context']); } $this->cachedResults[$value['author']] = $result; } return $this->cachedResults[$value['author']]; }