Next major version 2 with PHP 8.1, Symfony 6, Tabler UI, 2FA ... (#2902)
This commit is contained in:
@@ -49,7 +49,7 @@ class ActivityRateTest extends TestCase
|
||||
|
||||
$user = new User();
|
||||
$user->setAlias('foo');
|
||||
$user->setUsername('bar');
|
||||
$user->setUserIdentifier('bar');
|
||||
self::assertInstanceOf(ActivityRate::class, $sut->setUser($user));
|
||||
self::assertSame($user, $sut->getUser());
|
||||
$sut->setUser(null);
|
||||
|
||||
@@ -16,7 +16,6 @@ use App\Entity\Project;
|
||||
use App\Entity\Team;
|
||||
use App\Export\Spreadsheet\ColumnDefinition;
|
||||
use App\Export\Spreadsheet\Extractor\AnnotationExtractor;
|
||||
use Doctrine\Common\Annotations\AnnotationReader;
|
||||
use Doctrine\Common\Collections\Collection;
|
||||
|
||||
/**
|
||||
@@ -40,7 +39,6 @@ class ActivityTest extends AbstractEntityTest
|
||||
$this->assertInstanceOf(Collection::class, $sut->getMetaFields());
|
||||
$this->assertEquals(0, $sut->getMetaFields()->count());
|
||||
$this->assertNull($sut->getMetaField('foo'));
|
||||
$this->assertNull($sut->getMetaFieldValue('foo'));
|
||||
$this->assertInstanceOf(Collection::class, $sut->getTeams());
|
||||
}
|
||||
|
||||
@@ -95,7 +93,6 @@ class ActivityTest extends AbstractEntityTest
|
||||
self::assertSame($result, $meta);
|
||||
self::assertEquals('test', $result->getType());
|
||||
self::assertEquals('bar2', $result->getValue());
|
||||
self::assertEquals('bar2', $sut->getMetaFieldValue('foo'));
|
||||
|
||||
$meta2 = new ActivityMeta();
|
||||
$meta2->setName('foo')->setValue('bar')->setType('test2');
|
||||
@@ -106,7 +103,6 @@ class ActivityTest extends AbstractEntityTest
|
||||
$result = $sut->getMetaField('foo');
|
||||
self::assertSame($result, $meta);
|
||||
self::assertEquals('test2', $result->getType());
|
||||
self::assertEquals('bar2', $sut->getMetaFieldValue('foo'));
|
||||
|
||||
$sut->setMetaField((new ActivityMeta())->setName('blub')->setIsVisible(true));
|
||||
$sut->setMetaField((new ActivityMeta())->setName('blab')->setIsVisible(true));
|
||||
@@ -117,7 +113,7 @@ class ActivityTest extends AbstractEntityTest
|
||||
public function testTeams()
|
||||
{
|
||||
$sut = new Activity();
|
||||
$team = new Team();
|
||||
$team = new Team('foo');
|
||||
self::assertEmpty($sut->getTeams());
|
||||
self::assertEmpty($team->getActivities());
|
||||
|
||||
@@ -128,7 +124,7 @@ class ActivityTest extends AbstractEntityTest
|
||||
self::assertSame($sut, $team->getActivities()[0]);
|
||||
|
||||
// test remove unknown team doesn't do anything
|
||||
$sut->removeTeam(new Team());
|
||||
$sut->removeTeam(new Team('foo'));
|
||||
self::assertCount(1, $sut->getTeams());
|
||||
self::assertCount(1, $team->getActivities());
|
||||
|
||||
@@ -139,23 +135,23 @@ class ActivityTest extends AbstractEntityTest
|
||||
|
||||
public function testExportAnnotations()
|
||||
{
|
||||
$sut = new AnnotationExtractor(new AnnotationReader());
|
||||
$sut = new AnnotationExtractor();
|
||||
|
||||
$columns = $sut->extract(Activity::class);
|
||||
|
||||
self::assertIsArray($columns);
|
||||
|
||||
$expected = [
|
||||
['label.id', 'integer'],
|
||||
['label.name', 'string'],
|
||||
['label.project', 'string'],
|
||||
['label.budget', 'float'],
|
||||
['label.timeBudget', 'duration'],
|
||||
['label.budgetType', 'string'],
|
||||
['label.color', 'string'],
|
||||
['label.visible', 'boolean'],
|
||||
['label.comment', 'string'],
|
||||
['label.billable', 'boolean'],
|
||||
['id', 'integer'],
|
||||
['name', 'string'],
|
||||
['project', 'string'],
|
||||
['budget', 'float'],
|
||||
['timeBudget', 'duration'],
|
||||
['budgetType', 'string'],
|
||||
['color', 'string'],
|
||||
['visible', 'boolean'],
|
||||
['comment', 'string'],
|
||||
['billable', 'boolean'],
|
||||
];
|
||||
|
||||
self::assertCount(\count($expected), $columns);
|
||||
@@ -190,7 +186,7 @@ class ActivityTest extends AbstractEntityTest
|
||||
|
||||
$sut->setProject($project);
|
||||
|
||||
$team = new Team();
|
||||
$team = new Team('foo');
|
||||
$sut->addTeam($team);
|
||||
|
||||
$meta = new ActivityMeta();
|
||||
@@ -205,7 +201,6 @@ class ActivityTest extends AbstractEntityTest
|
||||
foreach ($sut->getMetaFields() as $metaField) {
|
||||
$cloneMeta = $clone->getMetaField($metaField->getName());
|
||||
self::assertEquals($cloneMeta->getValue(), $metaField->getValue());
|
||||
self::assertEquals($metaField->getValue(), $clone->getMetaFieldValue($metaField->getName()));
|
||||
}
|
||||
self::assertEquals($clone->getBudget(), $sut->getBudget());
|
||||
self::assertEquals($clone->getTimeBudget(), $sut->getTimeBudget());
|
||||
|
||||
@@ -9,7 +9,6 @@
|
||||
|
||||
namespace App\Tests\Entity;
|
||||
|
||||
use App\Entity\CommentInterface;
|
||||
use App\Entity\Customer;
|
||||
use App\Entity\CustomerComment;
|
||||
|
||||
@@ -19,18 +18,14 @@ use App\Entity\CustomerComment;
|
||||
*/
|
||||
class CustomerCommentTest extends AbstractCommentEntityTest
|
||||
{
|
||||
protected function getEntity(): CommentInterface
|
||||
protected function getEntity(): CustomerComment
|
||||
{
|
||||
return new CustomerComment();
|
||||
return new CustomerComment(new Customer('foo'));
|
||||
}
|
||||
|
||||
public function testEntitySpecificMethods()
|
||||
{
|
||||
$sut = new CustomerComment();
|
||||
self::assertNull($sut->getCustomer());
|
||||
|
||||
$customer = new Customer();
|
||||
self::assertInstanceOf(CustomerComment::class, $sut->setCustomer($customer));
|
||||
self::assertSame($customer, $sut->getCustomer());
|
||||
$sut = $this->getEntity();
|
||||
self::assertNotNull($sut->getCustomer());
|
||||
}
|
||||
}
|
||||
|
||||
@@ -22,7 +22,7 @@ class CustomerMetaTest extends AbstractMetaEntityTest
|
||||
{
|
||||
protected function getEntity(): EntityWithMetaFields
|
||||
{
|
||||
return new Customer();
|
||||
return new Customer('foo');
|
||||
}
|
||||
|
||||
protected function getMetaEntity(): MetaTableTypeInterface
|
||||
|
||||
@@ -49,14 +49,13 @@ class CustomerRateTest extends TestCase
|
||||
|
||||
$user = new User();
|
||||
$user->setAlias('foo');
|
||||
$user->setUsername('bar');
|
||||
$user->setUserIdentifier('bar');
|
||||
self::assertInstanceOf(CustomerRate::class, $sut->setUser($user));
|
||||
self::assertSame($user, $sut->getUser());
|
||||
$sut->setUser(null);
|
||||
self::assertNull($sut->getUser());
|
||||
|
||||
$entity = new Customer();
|
||||
$entity->setName('foo');
|
||||
$entity = new Customer('foo');
|
||||
self::assertInstanceOf(CustomerRate::class, $sut->setCustomer($entity));
|
||||
self::assertSame($entity, $sut->getCustomer());
|
||||
}
|
||||
|
||||
@@ -15,7 +15,6 @@ use App\Entity\CustomerMeta;
|
||||
use App\Entity\Team;
|
||||
use App\Export\Spreadsheet\ColumnDefinition;
|
||||
use App\Export\Spreadsheet\Extractor\AnnotationExtractor;
|
||||
use Doctrine\Common\Annotations\AnnotationReader;
|
||||
use Doctrine\Common\Collections\Collection;
|
||||
|
||||
/**
|
||||
@@ -25,9 +24,8 @@ class CustomerTest extends AbstractEntityTest
|
||||
{
|
||||
public function testDefaultValues()
|
||||
{
|
||||
$sut = new Customer();
|
||||
$sut = new Customer('foo');
|
||||
self::assertNull($sut->getId());
|
||||
self::assertNull($sut->getName());
|
||||
self::assertNull($sut->getNumber());
|
||||
self::assertNull($sut->getComment());
|
||||
self::assertTrue($sut->isVisible());
|
||||
@@ -52,20 +50,18 @@ class CustomerTest extends AbstractEntityTest
|
||||
self::assertInstanceOf(Collection::class, $sut->getMetaFields());
|
||||
self::assertEquals(0, $sut->getMetaFields()->count());
|
||||
self::assertNull($sut->getMetaField('foo'));
|
||||
self::assertNull($sut->getMetaFieldValue('foo'));
|
||||
self::assertInstanceOf(Collection::class, $sut->getTeams());
|
||||
self::assertEquals(0, $sut->getTeams()->count());
|
||||
}
|
||||
|
||||
public function testBudgets()
|
||||
{
|
||||
$this->assertBudget(new Customer());
|
||||
$this->assertBudget(new Customer('foo'));
|
||||
}
|
||||
|
||||
public function testSetterAndGetter()
|
||||
{
|
||||
$sut = new Customer();
|
||||
self::assertInstanceOf(Customer::class, $sut->setName('foo-bar'));
|
||||
$sut = new Customer('foo-bar');
|
||||
self::assertEquals('foo-bar', $sut->getName());
|
||||
self::assertEquals('foo-bar', (string) $sut);
|
||||
|
||||
@@ -116,13 +112,13 @@ class CustomerTest extends AbstractEntityTest
|
||||
self::assertInstanceOf(Customer::class, $sut->setCountry(null));
|
||||
self::assertNull($sut->getCountry());
|
||||
|
||||
self::assertInstanceOf(Customer::class, $sut->setCurrency(null));
|
||||
self::assertNull($sut->getCurrency());
|
||||
self::assertInstanceOf(Customer::class, $sut->setCurrency('USD'));
|
||||
self::assertEquals('USD', $sut->getCurrency());
|
||||
}
|
||||
|
||||
public function testMetaFields()
|
||||
{
|
||||
$sut = new Customer();
|
||||
$sut = new Customer('foo');
|
||||
$meta = new CustomerMeta();
|
||||
$meta->setName('foo')->setValue('bar2')->setType('test');
|
||||
self::assertInstanceOf(Customer::class, $sut->setMetaField($meta));
|
||||
@@ -131,7 +127,6 @@ class CustomerTest extends AbstractEntityTest
|
||||
self::assertSame($result, $meta);
|
||||
self::assertEquals('test', $result->getType());
|
||||
self::assertEquals('bar2', $result->getValue());
|
||||
self::assertEquals('bar2', $sut->getMetaFieldValue('foo'));
|
||||
|
||||
$meta2 = new CustomerMeta();
|
||||
$meta2->setName('foo')->setValue('bar')->setType('test2');
|
||||
@@ -142,7 +137,6 @@ class CustomerTest extends AbstractEntityTest
|
||||
$result = $sut->getMetaField('foo');
|
||||
self::assertSame($result, $meta);
|
||||
self::assertEquals('test2', $result->getType());
|
||||
self::assertEquals('bar2', $sut->getMetaFieldValue('foo'));
|
||||
|
||||
$sut->setMetaField((new CustomerMeta())->setName('blub')->setIsVisible(true));
|
||||
$sut->setMetaField((new CustomerMeta())->setName('blab')->setIsVisible(true));
|
||||
@@ -152,8 +146,8 @@ class CustomerTest extends AbstractEntityTest
|
||||
|
||||
public function testTeams()
|
||||
{
|
||||
$sut = new Customer();
|
||||
$team = new Team();
|
||||
$sut = new Customer('foo');
|
||||
$team = new Team('foo');
|
||||
self::assertEmpty($sut->getTeams());
|
||||
self::assertEmpty($team->getCustomers());
|
||||
|
||||
@@ -164,11 +158,11 @@ class CustomerTest extends AbstractEntityTest
|
||||
self::assertSame($sut, $team->getCustomers()[0]);
|
||||
|
||||
// test remove unknown team doesn't do anything
|
||||
$sut->removeTeam(new Team());
|
||||
$sut->removeTeam(new Team('foo'));
|
||||
self::assertCount(1, $sut->getTeams());
|
||||
self::assertCount(1, $team->getCustomers());
|
||||
|
||||
$sut->removeTeam(new Team());
|
||||
$sut->removeTeam(new Team('foo'));
|
||||
$sut->removeTeam($team);
|
||||
self::assertCount(0, $sut->getTeams());
|
||||
self::assertCount(0, $team->getCustomers());
|
||||
@@ -176,35 +170,35 @@ class CustomerTest extends AbstractEntityTest
|
||||
|
||||
public function testExportAnnotations()
|
||||
{
|
||||
$sut = new AnnotationExtractor(new AnnotationReader());
|
||||
$sut = new AnnotationExtractor();
|
||||
|
||||
$columns = $sut->extract(Customer::class);
|
||||
|
||||
self::assertIsArray($columns);
|
||||
|
||||
$expected = [
|
||||
['label.id', 'integer'],
|
||||
['label.name', 'string'],
|
||||
['label.company', 'string'],
|
||||
['label.number', 'string'],
|
||||
['label.vat_id', 'string'],
|
||||
['label.address', 'string'],
|
||||
['label.contact', 'string'],
|
||||
['label.email', 'string'],
|
||||
['label.phone', 'string'],
|
||||
['label.mobile', 'string'],
|
||||
['label.fax', 'string'],
|
||||
['label.homepage', 'string'],
|
||||
['label.country', 'string'],
|
||||
['label.currency', 'string'],
|
||||
['label.timezone', 'string'],
|
||||
['label.budget', 'float'],
|
||||
['label.timeBudget', 'duration'],
|
||||
['label.budgetType', 'string'],
|
||||
['label.color', 'string'],
|
||||
['label.visible', 'boolean'],
|
||||
['label.comment', 'string'],
|
||||
['label.billable', 'boolean'],
|
||||
['id', 'integer'],
|
||||
['name', 'string'],
|
||||
['company', 'string'],
|
||||
['number', 'string'],
|
||||
['vat_id', 'string'],
|
||||
['address', 'string'],
|
||||
['contact', 'string'],
|
||||
['email', 'string'],
|
||||
['phone', 'string'],
|
||||
['mobile', 'string'],
|
||||
['fax', 'string'],
|
||||
['homepage', 'string'],
|
||||
['country', 'string'],
|
||||
['currency', 'string'],
|
||||
['timezone', 'string'],
|
||||
['budget', 'float'],
|
||||
['timeBudget', 'duration'],
|
||||
['budgetType', 'string'],
|
||||
['color', 'string'],
|
||||
['visible', 'boolean'],
|
||||
['comment', 'string'],
|
||||
['billable', 'boolean'],
|
||||
];
|
||||
|
||||
self::assertCount(\count($expected), $columns);
|
||||
@@ -224,13 +218,12 @@ class CustomerTest extends AbstractEntityTest
|
||||
|
||||
public function testClone()
|
||||
{
|
||||
$sut = new Customer();
|
||||
$sut->setName('mycustomer');
|
||||
$sut = new Customer('mycustomer');
|
||||
$sut->setVatId('DE-0123456789');
|
||||
$sut->setTimeBudget(123456);
|
||||
$sut->setBudget(1234.56);
|
||||
|
||||
$team = new Team();
|
||||
$team = new Team('foo');
|
||||
$sut->addTeam($team);
|
||||
|
||||
$meta = new CustomerMeta();
|
||||
@@ -245,7 +238,6 @@ class CustomerTest extends AbstractEntityTest
|
||||
foreach ($sut->getMetaFields() as $metaField) {
|
||||
$cloneMeta = $clone->getMetaField($metaField->getName());
|
||||
self::assertEquals($cloneMeta->getValue(), $metaField->getValue());
|
||||
self::assertEquals($metaField->getValue(), $clone->getMetaFieldValue($metaField->getName()));
|
||||
}
|
||||
self::assertEquals($clone->getBudget(), $sut->getBudget());
|
||||
self::assertEquals($clone->getTimeBudget(), $sut->getTimeBudget());
|
||||
|
||||
@@ -25,7 +25,7 @@ trait EntityValidationTestTrait
|
||||
{
|
||||
self::bootKernel();
|
||||
/** @var ValidatorInterface $validator */
|
||||
$validator = static::$kernel->getContainer()->get('validator');
|
||||
$validator = self::getContainer()->get('validator');
|
||||
$violations = $validator->validate($entity, null, $groups);
|
||||
|
||||
if (!\is_array($fieldNames)) {
|
||||
@@ -60,7 +60,7 @@ trait EntityValidationTestTrait
|
||||
{
|
||||
self::bootKernel();
|
||||
/** @var ValidatorInterface $validator */
|
||||
$validator = static::$kernel->getContainer()->get('validator');
|
||||
$validator = self::getContainer()->get('validator');
|
||||
|
||||
$violations = $validator->validate($entity, null, $groups);
|
||||
$actual = $violations->count();
|
||||
|
||||
@@ -9,31 +9,35 @@
|
||||
|
||||
namespace App\Tests\Entity;
|
||||
|
||||
use App\Entity\InvoiceDocument;
|
||||
use App\Model\InvoiceDocument;
|
||||
use PHPUnit\Framework\TestCase;
|
||||
|
||||
/**
|
||||
* @covers \App\Entity\InvoiceDocument
|
||||
* @covers \App\Model\InvoiceDocument
|
||||
*/
|
||||
class InvoiceDocumentTest extends TestCase
|
||||
{
|
||||
public function testDefaultValues()
|
||||
public function testDefaultValues(): void
|
||||
{
|
||||
$dir = realpath(__DIR__ . '/../../templates/invoice/renderer');
|
||||
$sut = new InvoiceDocument(new \SplFileInfo($dir . '/default.html.twig'));
|
||||
$sut = new InvoiceDocument(new \SplFileInfo($dir . '/invoice.html.twig'));
|
||||
|
||||
self::assertEquals('twig', $sut->getFileExtension());
|
||||
self::assertStringContainsString('templates/invoice/renderer/default.html.twig', $sut->getFilename());
|
||||
self::assertEquals('default', $sut->getId());
|
||||
self::assertEquals('default.html.twig', $sut->getName());
|
||||
self::assertStringContainsString('templates/invoice/renderer/invoice.html.twig', $sut->getFilename());
|
||||
self::assertEquals('invoice', $sut->getId());
|
||||
self::assertEquals('invoice.html.twig', $sut->getName());
|
||||
self::assertIsInt($sut->getLastChange());
|
||||
}
|
||||
|
||||
public function testThrowsOnDeletedFile()
|
||||
public function testThrowsOnDeletedFile(): void
|
||||
{
|
||||
$catchedException = false;
|
||||
|
||||
$dir = realpath(__DIR__ . '/../../templates/invoice/renderer');
|
||||
if ($dir === false) {
|
||||
throw new \Exception('Directory for invoice renderer could not be accessed');
|
||||
}
|
||||
|
||||
$file = tempnam($dir, 'invoice-renderer');
|
||||
|
||||
if ($file !== false) {
|
||||
|
||||
@@ -36,6 +36,6 @@ class InvoiceMetaTest extends AbstractMetaEntityTest
|
||||
$this->expectExceptionMessage('Expected instanceof Invoice, received "App\Entity\Customer"');
|
||||
|
||||
$sut = new InvoiceMeta();
|
||||
$sut->setEntity(new Customer());
|
||||
$sut->setEntity(new Customer('foo'));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -35,8 +35,7 @@ class InvoiceTemplateTest extends TestCase
|
||||
self::assertEquals('default', $sut->getNumberGenerator());
|
||||
self::assertEquals('default', $sut->getRenderer());
|
||||
self::assertEquals(30, $sut->getDueDays());
|
||||
self::assertFalse($sut->isDecimalDuration());
|
||||
self::assertNull($sut->getLanguage());
|
||||
self::assertTrue($sut->isDecimalDuration());
|
||||
}
|
||||
|
||||
public function testSetNullForOptionalValues()
|
||||
@@ -48,7 +47,6 @@ class InvoiceTemplateTest extends TestCase
|
||||
self::assertInstanceOf(InvoiceTemplate::class, $sut->setContact(null));
|
||||
self::assertInstanceOf(InvoiceTemplate::class, $sut->setAddress(null));
|
||||
self::assertInstanceOf(InvoiceTemplate::class, $sut->setPaymentTerms(null));
|
||||
self::assertInstanceOf(InvoiceTemplate::class, $sut->setLanguage(null));
|
||||
}
|
||||
|
||||
public function testSetterAndGetter()
|
||||
@@ -70,9 +68,6 @@ class InvoiceTemplateTest extends TestCase
|
||||
self::assertInstanceOf(InvoiceTemplate::class, $sut->setVatId('1234567890'));
|
||||
self::assertEquals('1234567890', $sut->getVatId());
|
||||
|
||||
self::assertInstanceOf(InvoiceTemplate::class, $sut->setDecimalDuration(true));
|
||||
self::assertTrue($sut->isDecimalDuration());
|
||||
|
||||
self::assertInstanceOf(InvoiceTemplate::class, $sut->setLanguage('de'));
|
||||
self::assertEquals('de', $sut->getLanguage());
|
||||
|
||||
|
||||
@@ -139,15 +139,14 @@ class InvoiceTest extends TestCase
|
||||
protected function getInvoiceModel(\DateTime $created): InvoiceModel
|
||||
{
|
||||
$user = new User();
|
||||
$user->setUsername('one-user');
|
||||
$user->setUserIdentifier('one-user');
|
||||
$user->setTitle('user title');
|
||||
$user->setAlias('genious alias');
|
||||
$user->setEmail('fantastic@four');
|
||||
$user->addPreference((new UserPreference())->setName('kitty')->setValue('kat'));
|
||||
$user->addPreference((new UserPreference())->setName('hello')->setValue('world'));
|
||||
$user->addPreference(new UserPreference('kitty', 'kat'));
|
||||
$user->addPreference(new UserPreference('hello', 'world'));
|
||||
|
||||
$customer = new Customer();
|
||||
$customer->setName('customer,with/special#name');
|
||||
$customer = new Customer('customer,with/special#name');
|
||||
$customer->setCurrency('USD');
|
||||
$customer->setMetaField((new CustomerMeta())->setName('foo-customer')->setValue('bar-customer')->setIsVisible(true));
|
||||
$customer->setVatId('kjuo8967');
|
||||
@@ -187,7 +186,7 @@ class InvoiceTest extends TestCase
|
||||
$entries = [$timesheet];
|
||||
|
||||
$query = new InvoiceQuery();
|
||||
$query->setActivity($activity);
|
||||
$query->addActivity($activity);
|
||||
$query->setBegin(new \DateTime());
|
||||
$query->setEnd(new \DateTime());
|
||||
|
||||
@@ -250,8 +249,6 @@ class InvoiceTest extends TestCase
|
||||
{
|
||||
$sut = new Invoice();
|
||||
|
||||
self::assertNull($sut->getMetaFieldValue('foo'));
|
||||
|
||||
$meta = new InvoiceMeta();
|
||||
$meta->setName('foo')->setValue('bar2')->setType('test');
|
||||
self::assertInstanceOf(Invoice::class, $sut->setMetaField($meta));
|
||||
@@ -260,7 +257,6 @@ class InvoiceTest extends TestCase
|
||||
self::assertSame($result, $meta);
|
||||
self::assertEquals('test', $result->getType());
|
||||
self::assertEquals('bar2', $result->getValue());
|
||||
self::assertEquals('bar2', $sut->getMetaFieldValue('foo'));
|
||||
|
||||
$meta2 = new InvoiceMeta();
|
||||
$meta2->setName('foo')->setValue('bar')->setType('test2');
|
||||
@@ -271,7 +267,6 @@ class InvoiceTest extends TestCase
|
||||
$result = $sut->getMetaField('foo');
|
||||
self::assertSame($result, $meta);
|
||||
self::assertEquals('test2', $result->getType());
|
||||
self::assertEquals('bar2', $sut->getMetaFieldValue('foo'));
|
||||
|
||||
$sut->setMetaField((new InvoiceMeta())->setName('blub')->setIsVisible(true));
|
||||
$sut->setMetaField((new InvoiceMeta())->setName('blab')->setIsVisible(true));
|
||||
|
||||
@@ -9,7 +9,6 @@
|
||||
|
||||
namespace App\Tests\Entity;
|
||||
|
||||
use App\Entity\CommentInterface;
|
||||
use App\Entity\Project;
|
||||
use App\Entity\ProjectComment;
|
||||
|
||||
@@ -19,18 +18,14 @@ use App\Entity\ProjectComment;
|
||||
*/
|
||||
class ProjectCommentTest extends AbstractCommentEntityTest
|
||||
{
|
||||
protected function getEntity(): CommentInterface
|
||||
protected function getEntity(): ProjectComment
|
||||
{
|
||||
return new ProjectComment();
|
||||
return new ProjectComment(new Project());
|
||||
}
|
||||
|
||||
public function testEntitySpecificMethods()
|
||||
{
|
||||
$sut = new ProjectComment();
|
||||
self::assertNull($sut->getProject());
|
||||
|
||||
$project = new Project();
|
||||
self::assertInstanceOf(ProjectComment::class, $sut->setProject($project));
|
||||
self::assertSame($project, $sut->getProject());
|
||||
$sut = $this->getEntity();
|
||||
self::assertNotNull($sut->getProject());
|
||||
}
|
||||
}
|
||||
|
||||
@@ -36,6 +36,6 @@ class ProjectMetaTest extends AbstractMetaEntityTest
|
||||
$this->expectExceptionMessage('Expected instanceof Project, received "App\Entity\Customer"');
|
||||
|
||||
$sut = new ProjectMeta();
|
||||
$sut->setEntity(new Customer());
|
||||
$sut->setEntity(new Customer('foo'));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -49,7 +49,7 @@ class ProjectRateTest extends TestCase
|
||||
|
||||
$user = new User();
|
||||
$user->setAlias('foo');
|
||||
$user->setUsername('bar');
|
||||
$user->setUserIdentifier('bar');
|
||||
self::assertInstanceOf(ProjectRate::class, $sut->setUser($user));
|
||||
self::assertSame($user, $sut->getUser());
|
||||
$sut->setUser(null);
|
||||
|
||||
@@ -16,7 +16,6 @@ use App\Entity\ProjectMeta;
|
||||
use App\Entity\Team;
|
||||
use App\Export\Spreadsheet\ColumnDefinition;
|
||||
use App\Export\Spreadsheet\Extractor\AnnotationExtractor;
|
||||
use Doctrine\Common\Annotations\AnnotationReader;
|
||||
use Doctrine\Common\Collections\Collection;
|
||||
|
||||
/**
|
||||
@@ -44,7 +43,6 @@ class ProjectTest extends AbstractEntityTest
|
||||
self::assertInstanceOf(Collection::class, $sut->getMetaFields());
|
||||
self::assertEquals(0, $sut->getMetaFields()->count());
|
||||
self::assertNull($sut->getMetaField('foo'));
|
||||
self::assertNull($sut->getMetaFieldValue('foo'));
|
||||
self::assertInstanceOf(Collection::class, $sut->getTeams());
|
||||
self::assertEquals(0, $sut->getTeams()->count());
|
||||
self::assertTrue($sut->isVisibleAtDate(new \DateTime()));
|
||||
@@ -59,7 +57,7 @@ class ProjectTest extends AbstractEntityTest
|
||||
{
|
||||
$sut = new Project();
|
||||
|
||||
$customer = (new Customer())->setName('customer');
|
||||
$customer = new Customer('customer');
|
||||
self::assertInstanceOf(Project::class, $sut->setCustomer($customer));
|
||||
self::assertSame($customer, $sut->getCustomer());
|
||||
|
||||
@@ -123,7 +121,6 @@ class ProjectTest extends AbstractEntityTest
|
||||
self::assertSame($result, $meta);
|
||||
self::assertEquals('test', $result->getType());
|
||||
self::assertEquals('bar2', $result->getValue());
|
||||
self::assertEquals('bar2', $sut->getMetaFieldValue('foo'));
|
||||
|
||||
$meta2 = new ProjectMeta();
|
||||
$meta2->setName('foo')->setValue('bar')->setType('test2');
|
||||
@@ -134,7 +131,6 @@ class ProjectTest extends AbstractEntityTest
|
||||
$result = $sut->getMetaField('foo');
|
||||
self::assertSame($result, $meta);
|
||||
self::assertEquals('test2', $result->getType());
|
||||
self::assertEquals('bar2', $sut->getMetaFieldValue('foo'));
|
||||
|
||||
$sut->setMetaField((new ProjectMeta())->setName('blub')->setIsVisible(true));
|
||||
$sut->setMetaField((new ProjectMeta())->setName('blab')->setIsVisible(true));
|
||||
@@ -145,7 +141,7 @@ class ProjectTest extends AbstractEntityTest
|
||||
public function testTeams()
|
||||
{
|
||||
$sut = new Project();
|
||||
$team = new Team();
|
||||
$team = new Team('foo');
|
||||
self::assertEmpty($sut->getTeams());
|
||||
self::assertEmpty($team->getProjects());
|
||||
|
||||
@@ -156,7 +152,7 @@ class ProjectTest extends AbstractEntityTest
|
||||
self::assertSame($sut, $team->getProjects()[0]);
|
||||
|
||||
// test remove unknown team doesn't do anything
|
||||
$sut->removeTeam(new Team());
|
||||
$sut->removeTeam(new Team('foo'));
|
||||
self::assertCount(1, $sut->getTeams());
|
||||
self::assertCount(1, $team->getProjects());
|
||||
|
||||
@@ -167,27 +163,27 @@ class ProjectTest extends AbstractEntityTest
|
||||
|
||||
public function testExportAnnotations()
|
||||
{
|
||||
$sut = new AnnotationExtractor(new AnnotationReader());
|
||||
$sut = new AnnotationExtractor();
|
||||
|
||||
$columns = $sut->extract(Project::class);
|
||||
|
||||
self::assertIsArray($columns);
|
||||
|
||||
$expected = [
|
||||
['label.id', 'integer'],
|
||||
['label.name', 'string'],
|
||||
['label.customer', 'string'],
|
||||
['label.orderNumber', 'string'],
|
||||
['label.orderDate', 'datetime'],
|
||||
['label.project_start', 'datetime'],
|
||||
['label.project_end', 'datetime'],
|
||||
['label.budget', 'float'],
|
||||
['label.timeBudget', 'duration'],
|
||||
['label.budgetType', 'string'],
|
||||
['label.color', 'string'],
|
||||
['label.visible', 'boolean'],
|
||||
['label.comment', 'string'],
|
||||
['label.billable', 'boolean'],
|
||||
['id', 'integer'],
|
||||
['name', 'string'],
|
||||
['customer', 'string'],
|
||||
['orderNumber', 'string'],
|
||||
['orderDate', 'datetime'],
|
||||
['project_start', 'datetime'],
|
||||
['project_end', 'datetime'],
|
||||
['budget', 'float'],
|
||||
['timeBudget', 'duration'],
|
||||
['budgetType', 'string'],
|
||||
['color', 'string'],
|
||||
['visible', 'boolean'],
|
||||
['comment', 'string'],
|
||||
['billable', 'boolean'],
|
||||
];
|
||||
|
||||
self::assertCount(\count($expected), $columns);
|
||||
@@ -207,8 +203,7 @@ class ProjectTest extends AbstractEntityTest
|
||||
|
||||
public function testClone()
|
||||
{
|
||||
$customer = new Customer();
|
||||
$customer->setName('prj-customer');
|
||||
$customer = new Customer('prj-customer');
|
||||
$customer->setVatId('DE-0123456789');
|
||||
|
||||
$sut = new Project();
|
||||
@@ -222,7 +217,7 @@ class ProjectTest extends AbstractEntityTest
|
||||
|
||||
$sut->setCustomer($customer);
|
||||
|
||||
$team = new Team();
|
||||
$team = new Team('foo');
|
||||
$sut->addTeam($team);
|
||||
|
||||
$meta = new ProjectMeta();
|
||||
@@ -237,7 +232,6 @@ class ProjectTest extends AbstractEntityTest
|
||||
foreach ($sut->getMetaFields() as $metaField) {
|
||||
$cloneMeta = $clone->getMetaField($metaField->getName());
|
||||
self::assertEquals($cloneMeta->getValue(), $metaField->getValue());
|
||||
self::assertEquals($metaField->getValue(), $clone->getMetaFieldValue($metaField->getName()));
|
||||
}
|
||||
self::assertEquals($clone->getBudget(), $sut->getBudget());
|
||||
self::assertEquals($clone->getTimeBudget(), $sut->getTimeBudget());
|
||||
@@ -251,7 +245,7 @@ class ProjectTest extends AbstractEntityTest
|
||||
{
|
||||
$now = new \DateTime();
|
||||
|
||||
$customer = new Customer();
|
||||
$customer = new Customer('foo');
|
||||
|
||||
$sut = new Project();
|
||||
$sut->setVisible(false);
|
||||
|
||||
@@ -17,18 +17,21 @@ use PHPUnit\Framework\TestCase;
|
||||
*/
|
||||
class RoleTest extends TestCase
|
||||
{
|
||||
public function testDefaultValues()
|
||||
public function testDefaultValues(): void
|
||||
{
|
||||
$sut = new Role();
|
||||
self::assertNull($sut->getId());
|
||||
self::assertNull($sut->getName());
|
||||
}
|
||||
|
||||
public function testSetterAndGetter()
|
||||
public function testSetterAndGetter(): void
|
||||
{
|
||||
$sut = new Role();
|
||||
|
||||
self::assertInstanceOf(Role::class, $sut->setName('foo'));
|
||||
self::assertEquals('foo', $sut->getName());
|
||||
$sut->setName('foo');
|
||||
self::assertEquals('FOO', $sut->getName());
|
||||
|
||||
$sut->setName('BAR');
|
||||
self::assertEquals('BAR', $sut->getName());
|
||||
}
|
||||
}
|
||||
|
||||
@@ -26,9 +26,8 @@ class TeamTest extends TestCase
|
||||
{
|
||||
public function testDefaultValues()
|
||||
{
|
||||
$sut = new Team();
|
||||
$sut = new Team('foo');
|
||||
self::assertNull($sut->getId());
|
||||
self::assertNull($sut->getName());
|
||||
self::assertFalse($sut->hasUsers());
|
||||
self::assertFalse($sut->hasTeamleads());
|
||||
self::assertIsArray($sut->getTeamleads());
|
||||
@@ -43,7 +42,7 @@ class TeamTest extends TestCase
|
||||
|
||||
public function testColor()
|
||||
{
|
||||
$sut = new Team();
|
||||
$sut = new Team('foo');
|
||||
self::assertNull($sut->getColor());
|
||||
self::assertFalse($sut->hasColor());
|
||||
|
||||
@@ -66,9 +65,9 @@ class TeamTest extends TestCase
|
||||
|
||||
$member2 = new TeamMember();
|
||||
$member2->setUser($user);
|
||||
$member2->setTeam(new Team());
|
||||
$member2->setTeam(new Team('foo'));
|
||||
|
||||
$sut = new Team();
|
||||
$sut = new Team('foo');
|
||||
self::assertFalse($sut->isTeamlead($user));
|
||||
self::assertCount(0, $sut->getTeamleads());
|
||||
self::assertCount(0, $sut->getMembers());
|
||||
@@ -119,16 +118,15 @@ class TeamTest extends TestCase
|
||||
public function testTeamMembershipsException()
|
||||
{
|
||||
$this->expectException(\InvalidArgumentException::class);
|
||||
$sut = new Team();
|
||||
$sut = new Team('foo');
|
||||
$member = new TeamMember();
|
||||
$member->setTeam(new Team());
|
||||
$member->setTeam(new Team('foo'));
|
||||
$sut->addMember($member);
|
||||
}
|
||||
|
||||
public function testSetterAndGetter()
|
||||
{
|
||||
$sut = new Team();
|
||||
self::assertInstanceOf(Team::class, $sut->setName('foo-bar'));
|
||||
$sut = new Team('foo-bar');
|
||||
self::assertEquals('foo-bar', $sut->getName());
|
||||
self::assertEquals('foo-bar', (string) $sut);
|
||||
|
||||
@@ -158,34 +156,12 @@ class TeamTest extends TestCase
|
||||
self::assertCount(2, $sut->getTeamleads());
|
||||
}
|
||||
|
||||
/**
|
||||
* @group legacy
|
||||
*/
|
||||
public function testSetterAndGetterDeprecated()
|
||||
{
|
||||
$sut = new Team();
|
||||
|
||||
self::assertNull($sut->getTeamlead());
|
||||
self::assertIsArray($sut->getUsers());
|
||||
self::assertEmpty($sut->getUsers());
|
||||
|
||||
$user = (new User())->setAlias('Foo!');
|
||||
self::assertCount(0, $sut->getUsers());
|
||||
$sut->setTeamlead($user);
|
||||
self::assertSame($user, $sut->getTeamlead());
|
||||
self::assertTrue($sut->hasTeamleads());
|
||||
self::assertCount(1, $sut->getUsers());
|
||||
self::assertCount(1, $sut->getTeamleads());
|
||||
self::assertCount(1, $sut->getMembers());
|
||||
}
|
||||
|
||||
public function testCustomer()
|
||||
{
|
||||
$customer = new Customer();
|
||||
$customer->setName('foo');
|
||||
$customer = new Customer('foo');
|
||||
self::assertEmpty($customer->getTeams());
|
||||
|
||||
$sut = new Team();
|
||||
$sut = new Team('foo');
|
||||
self::assertFalse($sut->hasCustomer($customer));
|
||||
$sut->addCustomer($customer);
|
||||
self::assertEquals(1, $sut->getCustomers()->count());
|
||||
@@ -193,7 +169,7 @@ class TeamTest extends TestCase
|
||||
$actual = $sut->getCustomers()[0];
|
||||
self::assertSame($actual, $customer);
|
||||
self::assertSame($sut, $customer->getTeams()[0]);
|
||||
$sut->removeCustomer(new Customer());
|
||||
$sut->removeCustomer(new Customer('foo'));
|
||||
self::assertEquals(1, $sut->getCustomers()->count());
|
||||
$sut->removeCustomer($customer);
|
||||
self::assertEquals(0, $sut->getCustomers()->count());
|
||||
@@ -205,7 +181,7 @@ class TeamTest extends TestCase
|
||||
$project->setName('foo');
|
||||
self::assertEmpty($project->getTeams());
|
||||
|
||||
$sut = new Team();
|
||||
$sut = new Team('foo');
|
||||
self::assertFalse($sut->hasProject($project));
|
||||
$sut->addProject($project);
|
||||
self::assertEquals(1, $sut->getProjects()->count());
|
||||
@@ -225,7 +201,7 @@ class TeamTest extends TestCase
|
||||
$activity->setName('foo');
|
||||
self::assertEmpty($activity->getTeams());
|
||||
|
||||
$sut = new Team();
|
||||
$sut = new Team('foo');
|
||||
self::assertFalse($sut->hasActivity($activity));
|
||||
$sut->addActivity($activity);
|
||||
self::assertEquals(1, $sut->getActivities()->count());
|
||||
@@ -245,7 +221,7 @@ class TeamTest extends TestCase
|
||||
$user->setAlias('foo');
|
||||
self::assertEmpty($user->getTeams());
|
||||
|
||||
$sut = new Team();
|
||||
$sut = new Team('foo');
|
||||
$sut->addUser($user);
|
||||
self::assertCount(1, $sut->getUsers());
|
||||
|
||||
@@ -267,8 +243,7 @@ class TeamTest extends TestCase
|
||||
|
||||
public function testClone()
|
||||
{
|
||||
$c = new Customer();
|
||||
$c->setName('Foo');
|
||||
$c = new Customer('Foo');
|
||||
$p = new Project();
|
||||
$p->setName('Bar');
|
||||
$a = new Activity();
|
||||
@@ -278,9 +253,9 @@ class TeamTest extends TestCase
|
||||
$member = new TeamMember();
|
||||
$member->setUser(new User());
|
||||
|
||||
$team = new Team();
|
||||
$team = new Team('foo');
|
||||
$team->addCustomer($c);
|
||||
$team->addCustomer(new Customer());
|
||||
$team->addCustomer(new Customer('foo'));
|
||||
$team->addProject($p);
|
||||
$team->addProject(new Project());
|
||||
$team->addActivity($a);
|
||||
|
||||
@@ -55,7 +55,6 @@ class TimesheetTest extends TestCase
|
||||
self::assertInstanceOf(Collection::class, $sut->getMetaFields());
|
||||
self::assertEquals(0, $sut->getMetaFields()->count());
|
||||
self::assertNull($sut->getMetaField('foo'));
|
||||
self::assertNull($sut->getMetaFieldValue('foo'));
|
||||
}
|
||||
|
||||
public function testValueCanBeNull()
|
||||
@@ -75,8 +74,7 @@ class TimesheetTest extends TestCase
|
||||
|
||||
protected function getEntity()
|
||||
{
|
||||
$customer = new Customer();
|
||||
$customer->setName('Test Customer');
|
||||
$customer = new Customer('Test Customer');
|
||||
|
||||
$project = new Project();
|
||||
$project->setName('Test Project');
|
||||
@@ -128,7 +126,6 @@ class TimesheetTest extends TestCase
|
||||
self::assertSame($result, $meta);
|
||||
self::assertEquals('test', $result->getType());
|
||||
self::assertEquals('bar2', $result->getValue());
|
||||
self::assertEquals('bar2', $sut->getMetaFieldValue('foo'));
|
||||
|
||||
$meta2 = new TimesheetMeta();
|
||||
$meta2->setName('foo')->setValue('bar')->setType('test2');
|
||||
@@ -139,7 +136,6 @@ class TimesheetTest extends TestCase
|
||||
$result = $sut->getMetaField('foo');
|
||||
self::assertSame($result, $meta);
|
||||
self::assertEquals('test2', $result->getType());
|
||||
self::assertEquals('bar2', $sut->getMetaFieldValue('foo'));
|
||||
|
||||
$sut->setMetaField((new TimesheetMeta())->setName('blub')->setIsVisible(true));
|
||||
$sut->setMetaField((new TimesheetMeta())->setName('blab')->setIsVisible(true));
|
||||
@@ -157,26 +153,6 @@ class TimesheetTest extends TestCase
|
||||
self::assertTrue($sut->isBillable());
|
||||
}
|
||||
|
||||
public function testResetRates()
|
||||
{
|
||||
$sut = new Timesheet();
|
||||
self::assertSame(0.00, $sut->getRate());
|
||||
self::assertNull($sut->getFixedRate());
|
||||
self::assertNull($sut->getInternalRate());
|
||||
self::assertNull($sut->getHourlyRate());
|
||||
|
||||
$sut->setRate(123.45);
|
||||
$sut->setFixedRate(42.32);
|
||||
$sut->setInternalRate(212);
|
||||
$sut->setHourlyRate(123);
|
||||
$sut->resetRates();
|
||||
|
||||
self::assertSame(0.00, $sut->getRate());
|
||||
self::assertNull($sut->getFixedRate());
|
||||
self::assertNull($sut->getInternalRate());
|
||||
self::assertNull($sut->getHourlyRate());
|
||||
}
|
||||
|
||||
public function testCategory()
|
||||
{
|
||||
$sut = new Timesheet();
|
||||
@@ -222,7 +198,6 @@ class TimesheetTest extends TestCase
|
||||
foreach ($sut->getMetaFields() as $metaField) {
|
||||
$cloneMeta = $clone->getMetaField($metaField->getName());
|
||||
self::assertEquals($cloneMeta->getValue(), $metaField->getValue());
|
||||
self::assertEquals($metaField->getValue(), $clone->getMetaFieldValue($metaField->getName()));
|
||||
}
|
||||
self::assertEquals($clone->getTags(), $sut->getTags());
|
||||
self::assertEquals($clone->getTags(), $sut->getTags());
|
||||
|
||||
@@ -26,8 +26,7 @@ class TimesheetValidationTest extends KernelTestCase
|
||||
|
||||
protected function getEntity()
|
||||
{
|
||||
$customer = new Customer();
|
||||
$customer->setName('Test Customer');
|
||||
$customer = new Customer('Test Customer');
|
||||
|
||||
$project = new Project();
|
||||
$project->setName('Test Project');
|
||||
@@ -47,10 +46,13 @@ class TimesheetValidationTest extends KernelTestCase
|
||||
|
||||
public function testValidationNeedsActivity()
|
||||
{
|
||||
$project = new Project();
|
||||
$project->setCustomer(new Customer('foo'));
|
||||
|
||||
$entity = new Timesheet();
|
||||
$entity
|
||||
->setUser(new User())
|
||||
->setProject(new Project())
|
||||
->setProject($project)
|
||||
->setBegin(new \DateTime())
|
||||
;
|
||||
|
||||
@@ -71,7 +73,7 @@ class TimesheetValidationTest extends KernelTestCase
|
||||
|
||||
public function testValidationProjectMismatch()
|
||||
{
|
||||
$customer = new Customer();
|
||||
$customer = new Customer('foo');
|
||||
$project = (new Project())->setName('foo')->setCustomer($customer);
|
||||
$project2 = (new Project())->setName('bar')->setCustomer($customer);
|
||||
$activity = (new Activity())->setName('hello-world')->setProject($project);
|
||||
@@ -89,7 +91,7 @@ class TimesheetValidationTest extends KernelTestCase
|
||||
|
||||
public function testValidationCustomerInvisible()
|
||||
{
|
||||
$customer = (new Customer())->setVisible(false);
|
||||
$customer = (new Customer('foo'))->setVisible(false);
|
||||
$project = (new Project())->setName('foo')->setCustomer($customer);
|
||||
$activity = (new Activity())->setName('hello-world')->setProject($project);
|
||||
|
||||
@@ -128,7 +130,7 @@ class TimesheetValidationTest extends KernelTestCase
|
||||
|
||||
public function testValidationCustomerInvisibleDoesNotTriggerOnStoppedEntities()
|
||||
{
|
||||
$customer = (new Customer())->setVisible(false);
|
||||
$customer = (new Customer('foo'))->setVisible(false);
|
||||
$project = (new Project())->setName('foo')->setCustomer($customer);
|
||||
$activity = (new Activity())->setName('hello-world')->setProject($project);
|
||||
|
||||
@@ -139,7 +141,7 @@ class TimesheetValidationTest extends KernelTestCase
|
||||
|
||||
public function testValidationCustomerInvisibleDoesTriggerOnNewEntities()
|
||||
{
|
||||
$customer = (new Customer())->setVisible(false);
|
||||
$customer = (new Customer('foo'))->setVisible(false);
|
||||
$project = (new Project())->setName('foo')->setCustomer($customer);
|
||||
$activity = (new Activity())->setName('hello-world')->setProject($project);
|
||||
|
||||
@@ -150,7 +152,7 @@ class TimesheetValidationTest extends KernelTestCase
|
||||
|
||||
public function testValidationProjectInvisible()
|
||||
{
|
||||
$customer = new Customer();
|
||||
$customer = new Customer('foo');
|
||||
$project = (new Project())->setName('foo')->setCustomer($customer)->setVisible(false);
|
||||
$activity = (new Activity())->setName('hello-world')->setProject($project);
|
||||
|
||||
@@ -167,7 +169,7 @@ class TimesheetValidationTest extends KernelTestCase
|
||||
|
||||
public function testValidationProjectInvisibleDoesNotTriggerOnStoppedEntities()
|
||||
{
|
||||
$customer = new Customer();
|
||||
$customer = new Customer('foo');
|
||||
$project = (new Project())->setName('foo')->setCustomer($customer)->setVisible(false);
|
||||
$activity = (new Activity())->setName('hello-world')->setProject($project);
|
||||
|
||||
@@ -178,7 +180,7 @@ class TimesheetValidationTest extends KernelTestCase
|
||||
|
||||
public function testValidationProjectInvisibleDoesTriggerOnNewEntities()
|
||||
{
|
||||
$customer = new Customer();
|
||||
$customer = new Customer('foo');
|
||||
$project = (new Project())->setName('foo')->setCustomer($customer)->setVisible(false);
|
||||
$activity = (new Activity())->setName('hello-world')->setProject($project);
|
||||
|
||||
@@ -189,7 +191,7 @@ class TimesheetValidationTest extends KernelTestCase
|
||||
|
||||
public function testValidationActivityInvisible()
|
||||
{
|
||||
$customer = new Customer();
|
||||
$customer = new Customer('foo');
|
||||
$project = (new Project())->setName('foo')->setCustomer($customer);
|
||||
$activity = (new Activity())->setName('hello-world')->setProject($project)->setVisible(false);
|
||||
|
||||
@@ -206,7 +208,7 @@ class TimesheetValidationTest extends KernelTestCase
|
||||
|
||||
public function testValidationActivityInvisibleDoesNotTriggerOnStoppedEntities()
|
||||
{
|
||||
$customer = new Customer();
|
||||
$customer = new Customer('foo');
|
||||
$project = (new Project())->setName('foo')->setCustomer($customer);
|
||||
$activity = (new Activity())->setName('hello-world')->setProject($project)->setVisible(false);
|
||||
|
||||
@@ -217,7 +219,7 @@ class TimesheetValidationTest extends KernelTestCase
|
||||
|
||||
public function testValidationActivityInvisibleDoesTriggerOnNewEntities()
|
||||
{
|
||||
$customer = new Customer();
|
||||
$customer = new Customer('foo');
|
||||
$project = (new Project())->setName('foo')->setCustomer($customer);
|
||||
$activity = (new Activity())->setName('hello-world')->setProject($project)->setVisible(false);
|
||||
|
||||
@@ -235,7 +237,7 @@ class TimesheetValidationTest extends KernelTestCase
|
||||
$entity->setBegin($begin);
|
||||
$entity->setEnd($end);
|
||||
|
||||
$this->assertHasViolationForField($entity, 'end');
|
||||
$this->assertHasViolationForField($entity, 'end_date');
|
||||
|
||||
// allow same begin and end
|
||||
$entity = $this->getEntity();
|
||||
|
||||
@@ -22,7 +22,7 @@ class UserPreferenceTest extends TestCase
|
||||
{
|
||||
public function testDefaultValues()
|
||||
{
|
||||
$sut = new UserPreference();
|
||||
$sut = new UserPreference('foo');
|
||||
self::assertTrue($sut->isEnabled());
|
||||
self::assertEquals('default', $sut->getSection());
|
||||
self::assertEquals(1000, $sut->getOrder());
|
||||
@@ -30,8 +30,8 @@ class UserPreferenceTest extends TestCase
|
||||
self::assertIsArray($sut->getConstraints());
|
||||
self::assertEmpty($sut->getConstraints());
|
||||
self::assertNull($sut->getId());
|
||||
self::assertNull($sut->getLabel());
|
||||
self::assertNull($sut->getName());
|
||||
self::assertEquals('foo', $sut->getLabel());
|
||||
self::assertEquals('foo', $sut->getName());
|
||||
self::assertIsArray($sut->getOptions());
|
||||
self::assertEmpty($sut->getOptions());
|
||||
self::assertNull($sut->getType());
|
||||
@@ -40,7 +40,7 @@ class UserPreferenceTest extends TestCase
|
||||
|
||||
public function testGetValueChangesReturnTypeOnOtherType()
|
||||
{
|
||||
$sut = new UserPreference();
|
||||
$sut = new UserPreference('foo');
|
||||
$sut->setValue('1');
|
||||
self::assertSame('1', $sut->getValue());
|
||||
$sut->setType(IntegerType::class);
|
||||
@@ -54,8 +54,7 @@ class UserPreferenceTest extends TestCase
|
||||
|
||||
public function testGetLabelWithLabelOption()
|
||||
{
|
||||
$sut = new UserPreference();
|
||||
$sut->setName('foo');
|
||||
$sut = new UserPreference('foo');
|
||||
self::assertEquals('foo', $sut->getLabel());
|
||||
$sut->setOptions(['label' => 'bar']);
|
||||
self::assertEquals('bar', $sut->getLabel());
|
||||
|
||||
@@ -17,7 +17,6 @@ use App\Entity\UserPreference;
|
||||
use App\Export\Spreadsheet\ColumnDefinition;
|
||||
use App\Export\Spreadsheet\Extractor\AnnotationExtractor;
|
||||
use App\Tests\Security\TestUserEntity;
|
||||
use Doctrine\Common\Annotations\AnnotationReader;
|
||||
use Doctrine\Common\Collections\ArrayCollection;
|
||||
use PHPUnit\Framework\TestCase;
|
||||
use Symfony\Component\Security\Core\User\EquatableInterface;
|
||||
@@ -31,12 +30,10 @@ class UserTest extends TestCase
|
||||
public function testDefaultValues()
|
||||
{
|
||||
$user = new User();
|
||||
self::assertInstanceOf(\Serializable::class, $user);
|
||||
self::assertInstanceOf(EquatableInterface::class, $user);
|
||||
self::assertInstanceOf(UserInterface::class, $user);
|
||||
$this->assertInstanceOf(ArrayCollection::class, $user->getPreferences());
|
||||
self::assertNull($user->getTitle());
|
||||
self::assertNull($user->getDisplayName());
|
||||
self::assertNull($user->getAvatar());
|
||||
self::assertNull($user->getAlias());
|
||||
self::assertNull($user->getId());
|
||||
@@ -47,10 +44,14 @@ class UserTest extends TestCase
|
||||
self::assertEquals(User::DEFAULT_LANGUAGE, $user->getLocale());
|
||||
self::assertFalse($user->hasTeamAssignment());
|
||||
self::assertFalse($user->canSeeAllData());
|
||||
self::assertFalse($user->isSmallLayout());
|
||||
self::assertFalse($user->isExportDecimal());
|
||||
self::assertFalse($user->isSystemAccount());
|
||||
self::assertTrue($user->is24Hour());
|
||||
|
||||
$user->setUserIdentifier('foo');
|
||||
self::assertEquals('foo', $user->getUserIdentifier());
|
||||
self::assertEquals('foo', $user->getDisplayName());
|
||||
$user->setAlias('BAR');
|
||||
self::assertEquals('BAR', $user->getDisplayName());
|
||||
|
||||
$user->setAvatar('https://www.gravatar.com/avatar/00000000000000000000000000000000?d=retro&f=y');
|
||||
self::assertEquals('https://www.gravatar.com/avatar/00000000000000000000000000000000?d=retro&f=y', $user->getAvatar());
|
||||
@@ -83,6 +84,22 @@ class UserTest extends TestCase
|
||||
self::assertTrue($sut->hasColor());
|
||||
}
|
||||
|
||||
public function testWizards()
|
||||
{
|
||||
$sut = new User();
|
||||
// internal name may not be changed
|
||||
self::assertNull($sut->getPreferenceValue('__wizards__'));
|
||||
self::assertFalse($sut->hasSeenWizard('intro'));
|
||||
$sut->setWizardAsSeen('intro');
|
||||
self::assertTrue($sut->hasSeenWizard('intro'));
|
||||
self::assertNotNull($sut->getPreferenceValue('__wizards__'));
|
||||
$sut->setWizardAsSeen('intro');
|
||||
self::assertTrue($sut->hasSeenWizard('intro'));
|
||||
self::assertFalse($sut->hasSeenWizard('profile'));
|
||||
$sut->setWizardAsSeen('profile');
|
||||
self::assertTrue($sut->hasSeenWizard('profile'));
|
||||
}
|
||||
|
||||
public function testAuth()
|
||||
{
|
||||
$user = new User();
|
||||
@@ -138,34 +155,21 @@ class UserTest extends TestCase
|
||||
$user = new User();
|
||||
self::assertNull($user->getPreference('test'));
|
||||
self::assertNull($user->getPreferenceValue('test'));
|
||||
self::assertNull($user->getMetaFieldValue('test'));
|
||||
self::assertEquals('foo', $user->getPreferenceValue('test', 'foo'));
|
||||
|
||||
$preference = new UserPreference();
|
||||
$preference
|
||||
->setName('test')
|
||||
->setValue('foobar');
|
||||
$preference = new UserPreference('test', 'foobar');
|
||||
$user->addPreference($preference);
|
||||
self::assertEquals('foobar', $user->getPreferenceValue('test', 'foo'));
|
||||
self::assertEquals('foobar', $user->getMetaFieldValue('test'));
|
||||
self::assertEquals($preference, $user->getPreference('test'));
|
||||
|
||||
$user->setPreferenceValue('test', 'Hello World');
|
||||
self::assertEquals('Hello World', $user->getPreferenceValue('test', 'foo'));
|
||||
self::assertEquals('Hello World', $user->getMetaFieldValue('test'));
|
||||
|
||||
self::assertNull($user->getPreferenceValue('test2'));
|
||||
self::assertNull($user->getMetaFieldValue('test2'));
|
||||
$user->setPreferenceValue('test2', 'I like rain');
|
||||
self::assertEquals('I like rain', $user->getPreferenceValue('test2'));
|
||||
self::assertEquals('I like rain', $user->getMetaFieldValue('test2'));
|
||||
|
||||
$user->setPreferenceValue('theme.layout', 'boxed');
|
||||
self::assertTrue($user->isSmallLayout());
|
||||
$user->setPreferenceValue('theme.layout', '12345');
|
||||
self::assertFalse($user->isSmallLayout());
|
||||
|
||||
$user->setPreferenceValue('timesheet.export_decimal', true);
|
||||
$user->setPreferenceValue('export_decimal', true);
|
||||
self::assertTrue($user->isExportDecimal());
|
||||
}
|
||||
|
||||
@@ -173,14 +177,30 @@ class UserTest extends TestCase
|
||||
{
|
||||
$user = new User();
|
||||
|
||||
$user->setUsername('bar');
|
||||
$user->setUserIdentifier('bar');
|
||||
self::assertEquals('bar', $user->getDisplayName());
|
||||
self::assertEquals('bar', $user->getUsername());
|
||||
self::assertEquals('bar', $user->getUserIdentifier());
|
||||
self::assertEquals('bar', (string) $user);
|
||||
|
||||
$user->setAlias('foo');
|
||||
self::assertEquals('foo', $user->getAlias());
|
||||
self::assertEquals('bar', $user->getUsername());
|
||||
self::assertEquals('bar', $user->getUserIdentifier());
|
||||
self::assertEquals('foo', $user->getDisplayName());
|
||||
self::assertEquals('foo', (string) $user);
|
||||
}
|
||||
|
||||
public function testGetUsername()
|
||||
{
|
||||
$user = new User();
|
||||
|
||||
$user->setUserIdentifier('bar');
|
||||
self::assertEquals('bar', $user->getDisplayName());
|
||||
self::assertEquals('bar', $user->getUserIdentifier());
|
||||
self::assertEquals('bar', (string) $user);
|
||||
|
||||
$user->setAlias('foo');
|
||||
self::assertEquals('foo', $user->getAlias());
|
||||
self::assertEquals('bar', $user->getUserIdentifier());
|
||||
self::assertEquals('foo', $user->getDisplayName());
|
||||
self::assertEquals('foo', (string) $user);
|
||||
}
|
||||
@@ -190,9 +210,7 @@ class UserTest extends TestCase
|
||||
$sut = new User();
|
||||
self::assertEquals(User::DEFAULT_LANGUAGE, $sut->getLocale());
|
||||
|
||||
$language = new UserPreference();
|
||||
$language->setName(UserPreference::LOCALE);
|
||||
$language->setValue('fr');
|
||||
$language = new UserPreference(UserPreference::LOCALE, 'fr');
|
||||
$sut->addPreference($language);
|
||||
|
||||
self::assertEquals('fr', $sut->getLocale());
|
||||
@@ -202,7 +220,7 @@ class UserTest extends TestCase
|
||||
{
|
||||
$sut = new User();
|
||||
$user = new User();
|
||||
$team = new Team();
|
||||
$team = new Team('foo');
|
||||
self::assertEmpty($sut->getTeams());
|
||||
self::assertEmpty($team->getUsers());
|
||||
|
||||
@@ -223,10 +241,10 @@ class UserTest extends TestCase
|
||||
self::assertFalse($sut->isTeamleadOf($team));
|
||||
self::assertTrue($sut->isInTeam($team));
|
||||
|
||||
$team2 = new Team();
|
||||
$team2 = new Team('foo');
|
||||
self::assertFalse($sut->isInTeam($team2));
|
||||
self::assertFalse($sut->isTeamleadOf($team2));
|
||||
$team2->setTeamLead($sut);
|
||||
$team2->addTeamLead($sut);
|
||||
self::assertTrue($sut->isTeamleadOf($team2));
|
||||
self::assertTrue($sut->isInTeam($team2));
|
||||
|
||||
@@ -305,10 +323,7 @@ class UserTest extends TestCase
|
||||
// lets keep it, as it occured during the work on SAML authentication
|
||||
$sut = new User();
|
||||
|
||||
$preference = new UserPreference();
|
||||
$preference
|
||||
->setName('test')
|
||||
->setValue('foobar');
|
||||
$preference = new UserPreference('test', 'foobar');
|
||||
|
||||
$property = new \ReflectionProperty(User::class, 'preferences');
|
||||
$property->setAccessible(true);
|
||||
@@ -330,28 +345,38 @@ class UserTest extends TestCase
|
||||
self::assertFalse($sut->initCanSeeAllData(true));
|
||||
}
|
||||
|
||||
public function testSystemAccount()
|
||||
{
|
||||
$sut = new User();
|
||||
self::assertFalse($sut->isSystemAccount());
|
||||
$sut->setSystemAccount(true);
|
||||
self::assertTrue($sut->isSystemAccount());
|
||||
$sut->setSystemAccount(false);
|
||||
self::assertFalse($sut->isSystemAccount());
|
||||
}
|
||||
|
||||
public function testExportAnnotations()
|
||||
{
|
||||
$sut = new AnnotationExtractor(new AnnotationReader());
|
||||
$sut = new AnnotationExtractor();
|
||||
|
||||
$columns = $sut->extract(User::class);
|
||||
|
||||
self::assertIsArray($columns);
|
||||
|
||||
$expected = [
|
||||
['label.id', 'integer'],
|
||||
['label.username', 'string'],
|
||||
['label.alias', 'string'],
|
||||
['label.title', 'string'],
|
||||
['label.email', 'string'],
|
||||
['label.lastLogin', 'datetime'],
|
||||
['label.language', 'string'],
|
||||
['label.timezone', 'string'],
|
||||
['label.active', 'boolean'],
|
||||
['id', 'integer'],
|
||||
['username', 'string'],
|
||||
['alias', 'string'],
|
||||
['title', 'string'],
|
||||
['email', 'string'],
|
||||
['lastLogin', 'datetime'],
|
||||
['language', 'string'],
|
||||
['timezone', 'string'],
|
||||
['active', 'boolean'],
|
||||
['profile.registration_date', 'datetime'],
|
||||
['label.roles', 'array'],
|
||||
['label.color', 'string'],
|
||||
['label.account_number', 'string'],
|
||||
['roles', 'array'],
|
||||
['color', 'string'],
|
||||
['account_number', 'string'],
|
||||
];
|
||||
|
||||
self::assertCount(\count($expected), $columns);
|
||||
@@ -372,6 +397,7 @@ class UserTest extends TestCase
|
||||
public function testEqualsTo()
|
||||
{
|
||||
$sut = new User();
|
||||
$sut->setUserIdentifier('foo');
|
||||
|
||||
$user = new TestUserEntity();
|
||||
self::assertFalse($sut->isEqualTo($user));
|
||||
@@ -389,11 +415,11 @@ class UserTest extends TestCase
|
||||
self::assertTrue($sut->isEqualTo($sut2));
|
||||
self::assertTrue($sut2->isEqualTo($sut));
|
||||
|
||||
$sut->setUsername('12345678');
|
||||
$sut->setUserIdentifier('12345678');
|
||||
self::assertFalse($sut->isEqualTo($sut2));
|
||||
self::assertFalse($sut2->isEqualTo($sut));
|
||||
|
||||
$sut2->setUsername('12345678');
|
||||
$sut2->setUserIdentifier('12345678');
|
||||
self::assertTrue($sut->isEqualTo($sut2));
|
||||
self::assertTrue($sut2->isEqualTo($sut));
|
||||
}
|
||||
@@ -402,7 +428,7 @@ class UserTest extends TestCase
|
||||
{
|
||||
$sut = new User();
|
||||
$sut->setPassword('ABC-1234567890');
|
||||
$sut->setUsername('foo-BAR');
|
||||
$sut->setUserIdentifier('foo-BAR');
|
||||
$sut->setEmail('hello@world.com');
|
||||
$sut->setEnabled(false);
|
||||
|
||||
@@ -415,10 +441,11 @@ class UserTest extends TestCase
|
||||
'hello@world.com',
|
||||
];
|
||||
|
||||
/** @var User $unserialized */
|
||||
$unserialized = unserialize($data);
|
||||
|
||||
$actual = [
|
||||
$unserialized->getUsername(),
|
||||
$unserialized->getUserIdentifier(),
|
||||
$unserialized->isEnabled(),
|
||||
$unserialized->getId(),
|
||||
$unserialized->getEmail(),
|
||||
@@ -429,8 +456,7 @@ class UserTest extends TestCase
|
||||
|
||||
public function testTeamMemberships()
|
||||
{
|
||||
$team = new Team();
|
||||
$team->setName('Foo');
|
||||
$team = new Team('Foo');
|
||||
|
||||
$member = new TeamMember();
|
||||
$member->setTeam($team);
|
||||
@@ -475,7 +501,7 @@ class UserTest extends TestCase
|
||||
self::assertCount(1, $sut->getMemberships());
|
||||
self::assertSame($sut, $member21->getUser());
|
||||
|
||||
$sut->addTeam(new Team());
|
||||
$sut->addTeam(new Team('foo'));
|
||||
self::assertCount(2, $sut->getTeams());
|
||||
self::assertCount(2, $sut->getMemberships());
|
||||
|
||||
@@ -491,15 +517,4 @@ class UserTest extends TestCase
|
||||
$member->setUser(new User());
|
||||
$sut->addMembership($member);
|
||||
}
|
||||
|
||||
public function test24Hour()
|
||||
{
|
||||
$user = new User();
|
||||
self::assertTrue($user->is24Hour());
|
||||
self::assertEquals('H:i', $user->getTimeFormat());
|
||||
|
||||
$user->setPreferenceValue(UserPreference::HOUR_24, false);
|
||||
self::assertFalse($user->is24Hour());
|
||||
self::assertEquals('h:i A', $user->getTimeFormat());
|
||||
}
|
||||
}
|
||||
|
||||
@@ -24,7 +24,6 @@ class UserValidationTest extends KernelTestCase
|
||||
{
|
||||
return [
|
||||
['', ''],
|
||||
[null, null],
|
||||
['x', 'test@'], // too short username
|
||||
[str_pad('#', 61, '-'), 'test@x.'], // too long username
|
||||
];
|
||||
@@ -40,7 +39,7 @@ class UserValidationTest extends KernelTestCase
|
||||
];
|
||||
|
||||
$user = new User();
|
||||
$user->setUsername($username);
|
||||
$user->setUserIdentifier($username);
|
||||
$user->setEmail($email);
|
||||
if (!empty($roles)) {
|
||||
$user->setRoles($roles);
|
||||
@@ -53,7 +52,7 @@ class UserValidationTest extends KernelTestCase
|
||||
public function testInvalidRoles()
|
||||
{
|
||||
$user = new User();
|
||||
$user->setUsername('foo');
|
||||
$user->setUserIdentifier('foo');
|
||||
$user->setEmail('foo@example.com');
|
||||
$user->setRoles(['xxxxxx']);
|
||||
|
||||
@@ -63,7 +62,7 @@ class UserValidationTest extends KernelTestCase
|
||||
public function testValidRoles()
|
||||
{
|
||||
$user = new User();
|
||||
$user->setUsername('foo');
|
||||
$user->setUserIdentifier('foo');
|
||||
$user->setEmail('foo@example.com');
|
||||
$user->setRoles(['ROLE_TEAMLEAD']);
|
||||
|
||||
@@ -84,7 +83,7 @@ class UserValidationTest extends KernelTestCase
|
||||
public function testValidValues($username, $email, $roles = [])
|
||||
{
|
||||
$user = new User();
|
||||
$user->setUsername($username);
|
||||
$user->setUserIdentifier($username);
|
||||
$user->setEmail($email);
|
||||
if (!empty($roles)) {
|
||||
$user->setRoles($roles);
|
||||
|
||||
Reference in New Issue
Block a user