added multi-select for customer, project and activity (#1557)
This commit is contained in:
@@ -92,9 +92,10 @@ class ActivityControllerTest extends APIControllerBaseTest
|
||||
yield ['/api/activities', ['globals' => 'true', 'visible' => '2'], [[false]]];
|
||||
yield ['/api/activities', ['globals' => 'true', 'visible' => 1], [[false], [false]]];
|
||||
yield ['/api/activities', ['project' => '1'], [[false], [false], [true, 1]]];
|
||||
yield ['/api/activities', ['project' => '2', 'visible' => 1], [[false], [true, 2], [true, 2], [false]]];
|
||||
yield ['/api/activities', ['project' => '2', 'visible' => '3'], [[false], [true, 2], [true, 2], [true, 2], [false], [false]]];
|
||||
yield ['/api/activities', ['project' => '2', 'visible' => 2], [[true, 2], [false]]];
|
||||
yield ['/api/activities', ['project' => '2', 'projects' => '2', 'visible' => 1], [[false], [true, 2], [true, 2], [false]]];
|
||||
yield ['/api/activities', ['project' => '2', 'projects' => '2,2', 'visible' => '3'], [[false], [true, 2], [true, 2], [true, 2], [false], [false]]];
|
||||
yield ['/api/activities', ['projects' => '2,2', 'visible' => 2], [[true, 2], [false]]];
|
||||
yield ['/api/activities', ['projects' => '2', 'visible' => 2], [[true, 2], [false]]];
|
||||
}
|
||||
|
||||
public function testGetCollectionWithQuery()
|
||||
|
||||
@@ -104,8 +104,12 @@ class ProjectControllerTest extends APIControllerBaseTest
|
||||
// customer is invisible, so nothing should be returned
|
||||
yield ['/api/projects', ['customer' => '2', 'visible' => VisibilityInterface::SHOW_VISIBLE], []];
|
||||
yield ['/api/projects', ['customer' => '2', 'visible' => VisibilityInterface::SHOW_BOTH], [[false, 2], [false, 2]]];
|
||||
yield ['/api/projects', ['customer' => '2', 'customers' => '2', 'visible' => VisibilityInterface::SHOW_BOTH], [[false, 2], [false, 2]]];
|
||||
yield ['/api/projects', ['customer' => '2', 'customers' => '2,2', 'visible' => VisibilityInterface::SHOW_BOTH], [[false, 2], [false, 2]]];
|
||||
// customer is invisible, so nothing should be returned
|
||||
yield ['/api/projects', ['customer' => '2', 'visible' => VisibilityInterface::SHOW_HIDDEN, 'start' => '2010-12-11T23:59:59', 'end' => '2030-12-11T23:59:59'], []];
|
||||
yield ['/api/projects', ['customers' => '2', 'visible' => VisibilityInterface::SHOW_HIDDEN, 'start' => '2010-12-11T23:59:59', 'end' => '2030-12-11T23:59:59'], []];
|
||||
yield ['/api/projects', ['customers' => '2,2', 'visible' => VisibilityInterface::SHOW_HIDDEN, 'start' => '2010-12-11T23:59:59', 'end' => '2030-12-11T23:59:59'], []];
|
||||
}
|
||||
|
||||
public function testGetEntity()
|
||||
|
||||
@@ -158,9 +158,40 @@ class TimesheetControllerTest extends APIControllerBaseTest
|
||||
$end->setTime(23, 59, 59);
|
||||
|
||||
$query = [
|
||||
'customer' => 1,
|
||||
'project' => 1,
|
||||
'activity' => 1,
|
||||
'customers' => '1',
|
||||
'projects' => '1',
|
||||
'activities' => '1',
|
||||
'page' => 2,
|
||||
'size' => 5,
|
||||
'order' => 'DESC',
|
||||
'orderBy' => 'rate',
|
||||
'active' => 0,
|
||||
'begin' => $begin->format(self::DATE_FORMAT_HTML5),
|
||||
'end' => $end->format(self::DATE_FORMAT_HTML5),
|
||||
'exported' => 0,
|
||||
];
|
||||
|
||||
$client = $this->getClientForAuthenticatedUser(User::ROLE_USER);
|
||||
$this->assertAccessIsGranted($client, '/api/timesheets', 'GET', $query);
|
||||
$result = json_decode($client->getResponse()->getContent(), true);
|
||||
|
||||
$this->assertIsArray($result);
|
||||
$this->assertNotEmpty($result);
|
||||
$this->assertEquals(5, count($result));
|
||||
$this->assertDefaultStructure($result[0], false);
|
||||
}
|
||||
|
||||
public function testGetCollectionWithDeprecatedQuery()
|
||||
{
|
||||
$begin = new \DateTime('first day of this month');
|
||||
$begin->setTime(0, 0, 0);
|
||||
$end = new \DateTime('last day of this month');
|
||||
$end->setTime(23, 59, 59);
|
||||
|
||||
$query = [
|
||||
'customer' => '1',
|
||||
'project' => '1',
|
||||
'activity' => '1',
|
||||
'page' => 2,
|
||||
'size' => 5,
|
||||
'order' => 'DESC',
|
||||
|
||||
@@ -60,6 +60,8 @@ class ActivityControllerTest extends ControllerBaseTest
|
||||
'searchTerm' => 'feature:timetracking foo',
|
||||
'visibility' => 1,
|
||||
'pageSize' => 50,
|
||||
'customers' => [1],
|
||||
'projects' => [1],
|
||||
'page' => 1,
|
||||
]);
|
||||
|
||||
|
||||
@@ -194,7 +194,7 @@ class InvoiceControllerTest extends ControllerBaseTest
|
||||
'template' => 1,
|
||||
'daterange' => $dateRange,
|
||||
'customer' => 1,
|
||||
'project' => 1,
|
||||
'projects' => [1],
|
||||
'markAsExported' => 1,
|
||||
]);
|
||||
|
||||
@@ -260,7 +260,7 @@ class InvoiceControllerTest extends ControllerBaseTest
|
||||
'template' => 1,
|
||||
'daterange' => $dateRange,
|
||||
'customer' => 1,
|
||||
'project' => 1,
|
||||
'projects' => [1],
|
||||
'markAsExported' => 1,
|
||||
]);
|
||||
|
||||
|
||||
@@ -67,6 +67,7 @@ class ProjectControllerTest extends ControllerBaseTest
|
||||
$client->submit($form, [
|
||||
'searchTerm' => 'feature:timetracking foo',
|
||||
'visibility' => 1,
|
||||
'customers' => [1],
|
||||
'pageSize' => 50,
|
||||
'page' => 1,
|
||||
]);
|
||||
|
||||
@@ -69,7 +69,9 @@ class TimesheetControllerTest extends ControllerBaseTest
|
||||
'state' => 1,
|
||||
'pageSize' => 25,
|
||||
'daterange' => $dateRange,
|
||||
'customer' => null,
|
||||
'customers' => [1],
|
||||
'projects' => [1],
|
||||
'activities' => [1],
|
||||
]);
|
||||
|
||||
$this->assertTrue($client->getResponse()->isSuccessful());
|
||||
@@ -141,7 +143,7 @@ class TimesheetControllerTest extends ControllerBaseTest
|
||||
'state' => 1,
|
||||
'pageSize' => 25,
|
||||
'daterange' => $dateRange,
|
||||
'customer' => null,
|
||||
'customers' => [],
|
||||
]);
|
||||
|
||||
$this->assertTrue($client->getResponse()->isSuccessful());
|
||||
|
||||
@@ -74,7 +74,7 @@ class TimesheetTeamControllerTest extends ControllerBaseTest
|
||||
'users' => [$user->getId()],
|
||||
'pageSize' => 25,
|
||||
'daterange' => $dateRange,
|
||||
'customer' => null,
|
||||
'customers' => [],
|
||||
]);
|
||||
|
||||
$this->assertTrue($client->getResponse()->isSuccessful());
|
||||
@@ -151,7 +151,7 @@ class TimesheetTeamControllerTest extends ControllerBaseTest
|
||||
'state' => 1,
|
||||
'pageSize' => 25,
|
||||
'daterange' => $dateRange,
|
||||
'customer' => null,
|
||||
'customers' => [],
|
||||
]);
|
||||
|
||||
$this->assertTrue($client->getResponse()->isSuccessful());
|
||||
|
||||
@@ -167,10 +167,10 @@ abstract class AbstractRendererTest extends KernelTestCase
|
||||
$entries = [$timesheet, $timesheet2, $timesheet3, $timesheet4, $timesheet5];
|
||||
|
||||
$query = new TimesheetQuery();
|
||||
$query->setActivity($activity);
|
||||
$query->setActivities([$activity]);
|
||||
$query->setBegin(new \DateTime());
|
||||
$query->setEnd(new \DateTime());
|
||||
$query->setProject($project);
|
||||
$query->setProjects([$project]);
|
||||
|
||||
return $renderer->render($entries, $query);
|
||||
}
|
||||
|
||||
@@ -167,10 +167,10 @@ abstract class AbstractRendererTest extends KernelTestCase
|
||||
$entries = [$timesheet, $timesheet2, $timesheet3, $timesheet4, $timesheet5];
|
||||
|
||||
$query = new TimesheetQuery();
|
||||
$query->setActivity($activity);
|
||||
$query->setActivities([$activity]);
|
||||
$query->setBegin(new \DateTime());
|
||||
$query->setEnd(new \DateTime());
|
||||
$query->setProject($project);
|
||||
$query->setProjects([$project]);
|
||||
|
||||
return $renderer->render($entries, $query);
|
||||
}
|
||||
|
||||
@@ -73,9 +73,9 @@ abstract class AbstractCalculatorTest extends TestCase
|
||||
|
||||
$query = new InvoiceQuery();
|
||||
if ($addProject === true) {
|
||||
$query->setProject($project);
|
||||
$query->setProjects([$project]);
|
||||
} elseif ($addActivity === true) {
|
||||
$query->setActivity($activity);
|
||||
$query->setActivities([$activity]);
|
||||
}
|
||||
|
||||
$timesheet = new Timesheet();
|
||||
|
||||
@@ -105,7 +105,7 @@ class DateInvoiceCalculatorTest extends AbstractCalculatorTest
|
||||
$entries = [$timesheet, $timesheet2, $timesheet3, $timesheet4, $timesheet5];
|
||||
|
||||
$query = new InvoiceQuery();
|
||||
$query->setProject($project1);
|
||||
$query->setProjects([$project1]);
|
||||
|
||||
$model = new InvoiceModel(new DebugFormatter());
|
||||
$model->setCustomer($customer);
|
||||
|
||||
@@ -105,7 +105,7 @@ class ProjectInvoiceCalculatorTest extends AbstractCalculatorTest
|
||||
$entries = [$timesheet, $timesheet2, $timesheet3, $timesheet4, $timesheet5];
|
||||
|
||||
$query = new InvoiceQuery();
|
||||
$query->setProject($project1);
|
||||
$query->setProjects([$project1]);
|
||||
|
||||
$model = new InvoiceModel(new DebugFormatter());
|
||||
$model->setCustomer($customer);
|
||||
|
||||
@@ -29,7 +29,7 @@ class InvoiceModelActivityHydratorTest extends TestCase
|
||||
$result = $sut->hydrate($model);
|
||||
$this->assertModelStructure($result);
|
||||
|
||||
$model->getQuery()->setActivity(null);
|
||||
$model->getQuery()->setActivities([]);
|
||||
$result = $sut->hydrate($model);
|
||||
self::assertEmpty($result);
|
||||
}
|
||||
@@ -41,6 +41,10 @@ class InvoiceModelActivityHydratorTest extends TestCase
|
||||
'activity.name',
|
||||
'activity.comment',
|
||||
'activity.meta.foo-activity',
|
||||
'activity.1.id',
|
||||
'activity.1.name',
|
||||
'activity.1.comment',
|
||||
'activity.1.meta.foo-activity',
|
||||
];
|
||||
|
||||
$givenKeys = array_keys($model);
|
||||
|
||||
@@ -29,7 +29,7 @@ class InvoiceModelProjectHydratorTest extends TestCase
|
||||
$result = $sut->hydrate($model);
|
||||
$this->assertModelStructure($result);
|
||||
|
||||
$model->getQuery()->setProject(null);
|
||||
$model->getQuery()->setProjects([]);
|
||||
$result = $sut->hydrate($model);
|
||||
self::assertEmpty($result);
|
||||
}
|
||||
@@ -51,6 +51,20 @@ class InvoiceModelProjectHydratorTest extends TestCase
|
||||
'project.budget_time',
|
||||
'project.budget_time_decimal',
|
||||
'project.budget_time_minutes',
|
||||
'project.1.id',
|
||||
'project.1.name',
|
||||
'project.1.comment',
|
||||
'project.1.order_date',
|
||||
'project.1.order_number',
|
||||
'project.1.meta.foo-project',
|
||||
'project.1.start_date',
|
||||
'project.1.end_date',
|
||||
'project.1.budget_money',
|
||||
'project.1.budget_money_nc',
|
||||
'project.1.budget_money_plain',
|
||||
'project.1.budget_time',
|
||||
'project.1.budget_time_decimal',
|
||||
'project.1.budget_time_minutes',
|
||||
];
|
||||
|
||||
$givenKeys = array_keys($model);
|
||||
|
||||
@@ -41,7 +41,7 @@ class CsvRendererTest extends TestCase
|
||||
|
||||
public function getTestModel()
|
||||
{
|
||||
yield [$this->getInvoiceModel(), '€1,947.99', 6, 5, 1, 2, 2];
|
||||
yield [$this->getInvoiceModel(), '€1,947.99', 6, 4, 1, 2, 2];
|
||||
yield [$this->getInvoiceModelOneEntry(), '$293.27', 2, 1, 0, 1, 0];
|
||||
}
|
||||
|
||||
|
||||
@@ -58,7 +58,7 @@ class DebugRendererTest extends TestCase
|
||||
$response = $sut->render($document, $model);
|
||||
$data = json_decode($response->getContent(), true);
|
||||
|
||||
$this->assertModelStructure($data['model'], $hasProject);
|
||||
$this->assertModelStructure($data['model'], count($model->getQuery()->getProjects()), count($model->getQuery()->getActivities()));
|
||||
$rows = $data['entries'];
|
||||
$this->assertEquals($expectedRows, count($rows));
|
||||
|
||||
@@ -74,7 +74,7 @@ class DebugRendererTest extends TestCase
|
||||
// TODO check values or formats?
|
||||
}
|
||||
|
||||
protected function assertModelStructure(array $model, $hasProject = true)
|
||||
protected function assertModelStructure(array $model, int $projectCounter = 0, int $activityCounter = 0)
|
||||
{
|
||||
$keys = [
|
||||
'invoice.due_date',
|
||||
@@ -133,7 +133,16 @@ class DebugRendererTest extends TestCase
|
||||
'testFromModelHydrator'
|
||||
];
|
||||
|
||||
if ($hasProject) {
|
||||
if ($activityCounter > 1) {
|
||||
$keys = array_merge($keys, [
|
||||
'activity.1.id',
|
||||
'activity.1.name',
|
||||
'activity.1.comment',
|
||||
'activity.1.meta.foo-activity',
|
||||
]);
|
||||
}
|
||||
|
||||
if ($projectCounter > 0) {
|
||||
$keys = array_merge($keys, [
|
||||
'project.id',
|
||||
'project.name',
|
||||
@@ -150,6 +159,24 @@ class DebugRendererTest extends TestCase
|
||||
'project.budget_time_decimal',
|
||||
'project.budget_time_minutes',
|
||||
]);
|
||||
if ($projectCounter > 1) {
|
||||
$keys = array_merge($keys, [
|
||||
'project.1.id',
|
||||
'project.1.name',
|
||||
'project.1.comment',
|
||||
'project.1.order_date',
|
||||
'project.1.order_number',
|
||||
'project.1.meta.foo-project',
|
||||
'project.1.start_date',
|
||||
'project.1.end_date',
|
||||
'project.1.budget_money',
|
||||
'project.1.budget_money_nc',
|
||||
'project.1.budget_money_plain',
|
||||
'project.1.budget_time',
|
||||
'project.1.budget_time_decimal',
|
||||
'project.1.budget_time_minutes',
|
||||
]);
|
||||
}
|
||||
}
|
||||
|
||||
$givenKeys = array_keys($model);
|
||||
|
||||
@@ -126,6 +126,16 @@ trait RendererTestTrait
|
||||
$activity->setProject($project);
|
||||
$activity->setMetaField((new ActivityMeta())->setName('foo-activity')->setValue('bar-activity')->setIsVisible(true));
|
||||
|
||||
$project2 = new Project();
|
||||
$project2->setName('project 2 name');
|
||||
$project2->setCustomer($customer);
|
||||
$project2->setMetaField((new ProjectMeta())->setName('foo-project')->setValue('bar-project2')->setIsVisible(true));
|
||||
|
||||
$activity2 = new Activity();
|
||||
$activity2->setName('activity 1 description');
|
||||
$activity2->setProject($project2);
|
||||
$activity2->setMetaField((new ActivityMeta())->setName('foo-activity')->setValue('bar-activity2')->setIsVisible(true));
|
||||
|
||||
$userMethods = ['getId', 'getPreferenceValue', 'getUsername'];
|
||||
$user1 = $this->getMockBuilder(User::class)->onlyMethods($userMethods)->disableOriginalConstructor()->getMock();
|
||||
$user1->method('getId')->willReturn(1);
|
||||
@@ -165,8 +175,8 @@ trait RendererTestTrait
|
||||
->setDuration(1800)
|
||||
->setRate(111.11)
|
||||
->setUser($user1)
|
||||
->setActivity($activity)
|
||||
->setProject($project)
|
||||
->setActivity($activity2)
|
||||
->setProject($project2)
|
||||
->setBegin(new \DateTime())
|
||||
->setEnd(new \DateTime())
|
||||
->setMetaField((new TimesheetMeta())->setName('foo-timesheet')->setValue('bar-timesheet1')->setIsVisible(true))
|
||||
@@ -198,10 +208,10 @@ trait RendererTestTrait
|
||||
$entries = [$timesheet, $timesheet2, $timesheet3, $timesheet4, $timesheet5];
|
||||
|
||||
$query = new InvoiceQuery();
|
||||
$query->setActivity($activity);
|
||||
$query->setActivities([$activity, $activity2]);
|
||||
$query->setBegin(new \DateTime());
|
||||
$query->setEnd(new \DateTime());
|
||||
$query->setProject($project);
|
||||
$query->setProjects([$project, $project2]);
|
||||
|
||||
$model = new InvoiceModel($this->getFormatter());
|
||||
$model->setCustomer($customer);
|
||||
@@ -272,7 +282,7 @@ trait RendererTestTrait
|
||||
$entries = [$timesheet];
|
||||
|
||||
$query = new InvoiceQuery();
|
||||
$query->setActivity($activity);
|
||||
$query->addActivity($activity);
|
||||
$query->setBegin(new \DateTime());
|
||||
$query->setEnd(new \DateTime());
|
||||
|
||||
|
||||
@@ -67,6 +67,6 @@ class TwigRendererTest extends KernelTestCase
|
||||
$this->assertStringContainsString('<h2 class="page-header">
|
||||
<span contenteditable="true">a very *long* test invoice / template title with [special] character</span>
|
||||
</h2>', $content);
|
||||
$this->assertEquals(5, substr_count($content, 'activity description'));
|
||||
$this->assertEquals(4, substr_count($content, 'activity description'));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -10,13 +10,13 @@
|
||||
namespace App\Tests\Repository\Query;
|
||||
|
||||
use App\Entity\Activity;
|
||||
use App\Entity\Project;
|
||||
use App\Repository\Query\ActivityFormTypeQuery;
|
||||
|
||||
/**
|
||||
* @covers \App\Repository\Query\ActivityFormTypeQuery
|
||||
* @covers \App\Repository\Query\BaseFormTypeQuery
|
||||
*/
|
||||
class ActivityFormTypeQueryTest extends BaseQueryTest
|
||||
class ActivityFormTypeQueryTest extends BaseFormTypeQueryTest
|
||||
{
|
||||
public function testQuery()
|
||||
{
|
||||
@@ -24,15 +24,7 @@ class ActivityFormTypeQueryTest extends BaseQueryTest
|
||||
|
||||
self::assertTrue($sut->isGlobalsOnly());
|
||||
|
||||
$project = new Project();
|
||||
self::assertNull($sut->getProject());
|
||||
self::assertInstanceOf(ActivityFormTypeQuery::class, $sut->setProject($project));
|
||||
self::assertSame($project, $sut->getProject());
|
||||
|
||||
$activity = new Activity();
|
||||
self::assertNull($sut->getActivity());
|
||||
self::assertInstanceOf(ActivityFormTypeQuery::class, $sut->setActivity($activity));
|
||||
self::assertSame($activity, $sut->getActivity());
|
||||
$this->assertBaseQuery($sut);
|
||||
|
||||
self::assertFalse($sut->isGlobalsOnly());
|
||||
|
||||
|
||||
@@ -9,13 +9,12 @@
|
||||
|
||||
namespace App\Tests\Repository\Query;
|
||||
|
||||
use App\Entity\Customer;
|
||||
use App\Entity\Project;
|
||||
use App\Repository\Query\ActivityQuery;
|
||||
use App\Repository\Query\VisibilityInterface;
|
||||
|
||||
/**
|
||||
* @covers \App\Repository\Query\ActivityQuery
|
||||
* @covers \App\Repository\Query\BaseQuery
|
||||
*/
|
||||
class ActivityQueryTest extends BaseQueryTest
|
||||
{
|
||||
@@ -26,27 +25,8 @@ class ActivityQueryTest extends BaseQueryTest
|
||||
$this->assertBaseQuery($sut, 'name');
|
||||
$this->assertInstanceOf(VisibilityInterface::class, $sut);
|
||||
|
||||
$this->assertNull($sut->getCustomer());
|
||||
$this->assertNull($sut->getProject());
|
||||
|
||||
$expected = new Customer();
|
||||
$expected->setName('foo-bar');
|
||||
$sut->setCustomer($expected);
|
||||
|
||||
$this->assertEquals($expected, $sut->getCustomer());
|
||||
|
||||
$expected = new Project();
|
||||
$expected->setName('foo-bar');
|
||||
$sut->setProject($expected);
|
||||
|
||||
$this->assertEquals($expected, $sut->getProject());
|
||||
|
||||
// make sure int is allowed as well
|
||||
$sut->setProject(99);
|
||||
$this->assertEquals(99, $sut->getProject());
|
||||
|
||||
$sut->setCustomer(99);
|
||||
$this->assertEquals(99, $sut->getCustomer());
|
||||
$this->assertCustomer($sut);
|
||||
$this->assertProject($sut);
|
||||
|
||||
$this->assertResetByFormError(new ActivityQuery(), 'name');
|
||||
}
|
||||
|
||||
159
tests/Repository/Query/BaseFormTypeQueryTest.php
Normal file
159
tests/Repository/Query/BaseFormTypeQueryTest.php
Normal file
@@ -0,0 +1,159 @@
|
||||
<?php
|
||||
|
||||
/*
|
||||
* This file is part of the Kimai time-tracking app.
|
||||
*
|
||||
* For the full copyright and license information, please view the LICENSE
|
||||
* file that was distributed with this source code.
|
||||
*/
|
||||
|
||||
namespace App\Tests\Repository\Query;
|
||||
|
||||
use App\Entity\Activity;
|
||||
use App\Entity\Customer;
|
||||
use App\Entity\Project;
|
||||
use App\Entity\Team;
|
||||
use App\Entity\User;
|
||||
use App\Repository\Query\BaseFormTypeQuery;
|
||||
use PHPUnit\Framework\TestCase;
|
||||
|
||||
/**
|
||||
* @covers \App\Repository\Query\BaseQuery
|
||||
*/
|
||||
abstract class BaseFormTypeQueryTest extends TestCase
|
||||
{
|
||||
protected function assertBaseQuery(BaseFormTypeQuery $sut)
|
||||
{
|
||||
$this->assertActivity($sut);
|
||||
$this->assertProject($sut);
|
||||
$this->assertCustomer($sut);
|
||||
$this->assertTeams($sut);
|
||||
$this->assertUser($sut);
|
||||
}
|
||||
|
||||
protected function assertUser(BaseFormTypeQuery $sut)
|
||||
{
|
||||
self::assertEmpty($sut->getUser());
|
||||
$user = new User();
|
||||
self::assertInstanceOf(BaseFormTypeQuery::class, $sut->setUser($user));
|
||||
self::assertSame($user, $sut->getUser());
|
||||
}
|
||||
|
||||
protected function assertTeams(BaseFormTypeQuery $sut)
|
||||
{
|
||||
self::assertEmpty($sut->getTeams());
|
||||
|
||||
self::assertInstanceOf(BaseFormTypeQuery::class, $sut->addTeam(new Team()));
|
||||
self::assertEquals(1, count($sut->getTeams()));
|
||||
|
||||
$team = new Team();
|
||||
self::assertInstanceOf(BaseFormTypeQuery::class, $sut->addTeam($team));
|
||||
self::assertEquals(1, count($sut->getTeams()));
|
||||
self::assertSame($team, $sut->getTeams()[0]);
|
||||
}
|
||||
|
||||
protected function assertActivity(BaseFormTypeQuery $sut)
|
||||
{
|
||||
$this->assertNull($sut->getActivity());
|
||||
$this->assertEquals([], $sut->getActivities());
|
||||
$this->assertFalse($sut->hasActivities());
|
||||
|
||||
$expected = new Activity();
|
||||
$expected->setName('foo-bar');
|
||||
|
||||
$sut->setActivity($expected);
|
||||
$this->assertEquals($expected, $sut->getActivity());
|
||||
|
||||
$sut->setActivities([]);
|
||||
$this->assertEquals([], $sut->getActivities());
|
||||
|
||||
$sut->addActivity($expected);
|
||||
$this->assertEquals([$expected], $sut->getActivities());
|
||||
$this->assertTrue($sut->hasActivities());
|
||||
|
||||
$expected2 = new Activity();
|
||||
$expected2->setName('foo-bar2');
|
||||
|
||||
$sut->addActivity($expected2);
|
||||
$this->assertEquals([$expected, $expected2], $sut->getActivities());
|
||||
|
||||
$sut->setActivity(null);
|
||||
$this->assertNull($sut->getActivity());
|
||||
$this->assertFalse($sut->hasActivities());
|
||||
|
||||
// make sure int is allowed as well
|
||||
$sut->setActivities([99]);
|
||||
$this->assertEquals(99, $sut->getActivity());
|
||||
$this->assertEquals([99], $sut->getActivities());
|
||||
}
|
||||
|
||||
protected function assertCustomer(BaseFormTypeQuery $sut)
|
||||
{
|
||||
$this->assertNull($sut->getCustomer());
|
||||
$this->assertEquals([], $sut->getCustomers());
|
||||
$this->assertFalse($sut->hasCustomers());
|
||||
|
||||
$expected = new Customer();
|
||||
$expected->setName('foo-bar');
|
||||
|
||||
$sut->setCustomer($expected);
|
||||
$this->assertEquals($expected, $sut->getCustomer());
|
||||
|
||||
$sut->setCustomers([]);
|
||||
$this->assertEquals([], $sut->getCustomers());
|
||||
|
||||
$sut->addCustomer($expected);
|
||||
$this->assertEquals([$expected], $sut->getCustomers());
|
||||
$this->assertTrue($sut->hasCustomers());
|
||||
|
||||
$expected2 = new Customer();
|
||||
$expected2->setName('foo-bar2');
|
||||
|
||||
$sut->addCustomer($expected2);
|
||||
$this->assertEquals([$expected, $expected2], $sut->getCustomers());
|
||||
|
||||
$sut->setCustomer(null);
|
||||
$this->assertNull($sut->getCustomer());
|
||||
$this->assertFalse($sut->hasCustomers());
|
||||
|
||||
// make sure int is allowed as well
|
||||
$sut->setCustomers([99]);
|
||||
$this->assertEquals(99, $sut->getCustomer());
|
||||
$this->assertEquals([99], $sut->getCustomers());
|
||||
}
|
||||
|
||||
protected function assertProject(BaseFormTypeQuery $sut)
|
||||
{
|
||||
$this->assertNull($sut->getProject());
|
||||
$this->assertEquals([], $sut->getProjects());
|
||||
$this->assertFalse($sut->hasProjects());
|
||||
|
||||
$expected = new Project();
|
||||
$expected->setName('foo-bar');
|
||||
|
||||
$sut->setProject($expected);
|
||||
$this->assertEquals($expected, $sut->getProject());
|
||||
|
||||
$sut->setProjects([]);
|
||||
$this->assertEquals([], $sut->getProjects());
|
||||
|
||||
$sut->addProject($expected);
|
||||
$this->assertEquals([$expected], $sut->getProjects());
|
||||
$this->assertTrue($sut->hasProjects());
|
||||
|
||||
$expected2 = new Project();
|
||||
$expected2->setName('foo-bar2');
|
||||
|
||||
$sut->addProject($expected2);
|
||||
$this->assertEquals([$expected, $expected2], $sut->getProjects());
|
||||
|
||||
$sut->setProject(null);
|
||||
$this->assertNull($sut->getProject());
|
||||
$this->assertFalse($sut->hasProjects());
|
||||
|
||||
// make sure int is allowed as well
|
||||
$sut->setProjects([99]);
|
||||
$this->assertEquals(99, $sut->getProject());
|
||||
$this->assertEquals([99], $sut->getProjects());
|
||||
}
|
||||
}
|
||||
@@ -9,8 +9,14 @@
|
||||
|
||||
namespace App\Tests\Repository\Query;
|
||||
|
||||
use App\Entity\Activity;
|
||||
use App\Entity\Customer;
|
||||
use App\Entity\Project;
|
||||
use App\Entity\Team;
|
||||
use App\Repository\Query\ActivityQuery;
|
||||
use App\Repository\Query\BaseQuery;
|
||||
use App\Repository\Query\ProjectQuery;
|
||||
use App\Repository\Query\TimesheetQuery;
|
||||
use App\Utils\SearchTerm;
|
||||
use PHPUnit\Framework\TestCase;
|
||||
use Symfony\Component\EventDispatcher\EventDispatcher;
|
||||
@@ -164,4 +170,109 @@ class BaseQueryTest extends TestCase
|
||||
self::assertEquals('foo bar', $term->getOriginalSearch());
|
||||
self::assertSame($term, $sut->getSearchTerm());
|
||||
}
|
||||
|
||||
protected function assertActivity(TimesheetQuery $sut)
|
||||
{
|
||||
$this->assertNull($sut->getActivity());
|
||||
$this->assertEquals([], $sut->getActivities());
|
||||
$this->assertFalse($sut->hasActivities());
|
||||
|
||||
$expected = new Activity();
|
||||
$expected->setName('foo-bar');
|
||||
|
||||
$sut->setActivity($expected);
|
||||
$this->assertEquals($expected, $sut->getActivity());
|
||||
|
||||
$sut->setActivities([]);
|
||||
$this->assertEquals([], $sut->getActivities());
|
||||
|
||||
$sut->addActivity($expected);
|
||||
$this->assertEquals([$expected], $sut->getActivities());
|
||||
$this->assertTrue($sut->hasActivities());
|
||||
|
||||
$expected2 = new Activity();
|
||||
$expected2->setName('foo-bar2');
|
||||
|
||||
$sut->addActivity($expected2);
|
||||
$this->assertEquals([$expected, $expected2], $sut->getActivities());
|
||||
|
||||
$sut->setActivity(null);
|
||||
$this->assertNull($sut->getActivity());
|
||||
$this->assertFalse($sut->hasActivities());
|
||||
|
||||
// make sure int is allowed as well
|
||||
$sut->setActivities([99]);
|
||||
$this->assertEquals(99, $sut->getActivity());
|
||||
$this->assertEquals([99], $sut->getActivities());
|
||||
}
|
||||
|
||||
protected function assertCustomer(ProjectQuery $sut)
|
||||
{
|
||||
$this->assertNull($sut->getCustomer());
|
||||
$this->assertEquals([], $sut->getCustomers());
|
||||
$this->assertFalse($sut->hasCustomers());
|
||||
|
||||
$expected = new Customer();
|
||||
$expected->setName('foo-bar');
|
||||
|
||||
$sut->setCustomer($expected);
|
||||
$this->assertEquals($expected, $sut->getCustomer());
|
||||
|
||||
$sut->setCustomers([]);
|
||||
$this->assertEquals([], $sut->getCustomers());
|
||||
|
||||
$sut->addCustomer($expected);
|
||||
$this->assertEquals([$expected], $sut->getCustomers());
|
||||
$this->assertTrue($sut->hasCustomers());
|
||||
|
||||
$expected2 = new Customer();
|
||||
$expected2->setName('foo-bar2');
|
||||
|
||||
$sut->addCustomer($expected2);
|
||||
$this->assertEquals([$expected, $expected2], $sut->getCustomers());
|
||||
|
||||
$sut->setCustomer(null);
|
||||
$this->assertNull($sut->getCustomer());
|
||||
$this->assertFalse($sut->hasCustomers());
|
||||
|
||||
// make sure int is allowed as well
|
||||
$sut->setCustomers([99]);
|
||||
$this->assertEquals(99, $sut->getCustomer());
|
||||
$this->assertEquals([99], $sut->getCustomers());
|
||||
}
|
||||
|
||||
protected function assertProject(ActivityQuery $sut)
|
||||
{
|
||||
$this->assertNull($sut->getProject());
|
||||
$this->assertEquals([], $sut->getProjects());
|
||||
$this->assertFalse($sut->hasProjects());
|
||||
|
||||
$expected = new Project();
|
||||
$expected->setName('foo-bar');
|
||||
|
||||
$sut->setProject($expected);
|
||||
$this->assertEquals($expected, $sut->getProject());
|
||||
|
||||
$sut->setProjects([]);
|
||||
$this->assertEquals([], $sut->getProjects());
|
||||
|
||||
$sut->addProject($expected);
|
||||
$this->assertEquals([$expected], $sut->getProjects());
|
||||
$this->assertTrue($sut->hasProjects());
|
||||
|
||||
$expected2 = new Project();
|
||||
$expected2->setName('foo-bar2');
|
||||
|
||||
$sut->addProject($expected2);
|
||||
$this->assertEquals([$expected, $expected2], $sut->getProjects());
|
||||
|
||||
$sut->setProject(null);
|
||||
$this->assertNull($sut->getProject());
|
||||
$this->assertFalse($sut->hasProjects());
|
||||
|
||||
// make sure int is allowed as well
|
||||
$sut->setProjects([99]);
|
||||
$this->assertEquals(99, $sut->getProject());
|
||||
$this->assertEquals([99], $sut->getProjects());
|
||||
}
|
||||
}
|
||||
|
||||
@@ -10,36 +10,23 @@
|
||||
namespace App\Tests\Repository\Query;
|
||||
|
||||
use App\Entity\Customer;
|
||||
use App\Entity\Team;
|
||||
use App\Entity\User;
|
||||
use App\Repository\Query\CustomerFormTypeQuery;
|
||||
|
||||
/**
|
||||
* @covers \App\Repository\Query\CustomerFormTypeQuery
|
||||
* @covers \App\Repository\Query\BaseFormTypeQuery
|
||||
*/
|
||||
class CustomerFormTypeQueryTest extends BaseQueryTest
|
||||
class CustomerFormTypeQueryTest extends BaseFormTypeQueryTest
|
||||
{
|
||||
public function testQuery()
|
||||
{
|
||||
$sut = new CustomerFormTypeQuery();
|
||||
|
||||
self::assertEmpty($sut->getTeams());
|
||||
self::assertInstanceOf(CustomerFormTypeQuery::class, $sut->addTeam(new Team()));
|
||||
self::assertCount(1, $sut->getTeams());
|
||||
|
||||
$customer = new Customer();
|
||||
self::assertNull($sut->getCustomer());
|
||||
self::assertInstanceOf(CustomerFormTypeQuery::class, $sut->setCustomer($customer));
|
||||
self::assertSame($customer, $sut->getCustomer());
|
||||
$this->assertBaseQuery($sut);
|
||||
|
||||
$customer = new Customer();
|
||||
self::assertNull($sut->getCustomerToIgnore());
|
||||
self::assertInstanceOf(CustomerFormTypeQuery::class, $sut->setCustomerToIgnore($customer));
|
||||
self::assertSame($customer, $sut->getCustomerToIgnore());
|
||||
|
||||
$user = new User();
|
||||
self::assertNull($sut->getUser());
|
||||
self::assertInstanceOf(CustomerFormTypeQuery::class, $sut->setUser($user));
|
||||
self::assertSame($user, $sut->getUser());
|
||||
}
|
||||
}
|
||||
|
||||
@@ -9,16 +9,13 @@
|
||||
|
||||
namespace App\Tests\Repository\Query;
|
||||
|
||||
use App\Entity\Activity;
|
||||
use App\Entity\Customer;
|
||||
use App\Entity\Project;
|
||||
use App\Entity\User;
|
||||
use App\Repository\Query\ExportQuery;
|
||||
|
||||
/**
|
||||
* @covers \App\Repository\Query\ExportQuery
|
||||
* @covers \App\Repository\Query\TimesheetQuery
|
||||
*/
|
||||
class ExportQueryTest extends BaseQueryTest
|
||||
class ExportQueryTest extends TimesheetQueryTest
|
||||
{
|
||||
public function testQuery()
|
||||
{
|
||||
@@ -47,80 +44,6 @@ class ExportQueryTest extends BaseQueryTest
|
||||
$this->assertTrue($sut->isMarkAsExported());
|
||||
}
|
||||
|
||||
protected function assertUser(ExportQuery $sut)
|
||||
{
|
||||
$this->assertNull($sut->getUser());
|
||||
|
||||
$expected = new User();
|
||||
$expected->setUsername('foo-bar');
|
||||
$sut->setUser($expected);
|
||||
$this->assertEquals($expected, $sut->getUser());
|
||||
}
|
||||
|
||||
protected function assertCustomer(ExportQuery $sut)
|
||||
{
|
||||
$this->assertNull($sut->getCustomer());
|
||||
|
||||
$expected = new Customer();
|
||||
$expected->setName('foo-bar');
|
||||
$sut->setCustomer($expected);
|
||||
$this->assertEquals($expected, $sut->getCustomer());
|
||||
}
|
||||
|
||||
protected function assertProject(ExportQuery $sut)
|
||||
{
|
||||
$this->assertNull($sut->getProject());
|
||||
|
||||
$expected = new Project();
|
||||
$expected->setName('foo-bar');
|
||||
$sut->setProject($expected);
|
||||
$this->assertEquals($expected, $sut->getProject());
|
||||
}
|
||||
|
||||
protected function assertActivity(ExportQuery $sut)
|
||||
{
|
||||
$this->assertNull($sut->getActivity());
|
||||
|
||||
$expected = new Activity();
|
||||
$expected->setName('foo-bar');
|
||||
$sut->setActivity($expected);
|
||||
$this->assertEquals($expected, $sut->getActivity());
|
||||
}
|
||||
|
||||
protected function assertState(ExportQuery $sut)
|
||||
{
|
||||
$this->assertEquals(ExportQuery::STATE_ALL, $sut->getState());
|
||||
|
||||
$sut->setState(PHP_INT_MAX);
|
||||
$this->assertEquals(ExportQuery::STATE_ALL, $sut->getState());
|
||||
|
||||
$sut->setState(ExportQuery::STATE_STOPPED);
|
||||
$this->assertEquals(ExportQuery::STATE_STOPPED, $sut->getState());
|
||||
|
||||
$sut->setState(ExportQuery::STATE_RUNNING);
|
||||
$this->assertEquals(ExportQuery::STATE_RUNNING, $sut->getState());
|
||||
|
||||
$sut->setState(ExportQuery::STATE_ALL);
|
||||
$this->assertEquals(ExportQuery::STATE_ALL, $sut->getState());
|
||||
}
|
||||
|
||||
protected function assertExported(ExportQuery $sut)
|
||||
{
|
||||
$this->assertEquals(ExportQuery::STATE_ALL, $sut->getExported());
|
||||
|
||||
$sut->setExported(PHP_INT_MAX);
|
||||
$this->assertEquals(ExportQuery::STATE_ALL, $sut->getExported());
|
||||
|
||||
$sut->setExported(ExportQuery::STATE_EXPORTED);
|
||||
$this->assertEquals(ExportQuery::STATE_EXPORTED, $sut->getExported());
|
||||
|
||||
$sut->setExported(ExportQuery::STATE_NOT_EXPORTED);
|
||||
$this->assertEquals(ExportQuery::STATE_NOT_EXPORTED, $sut->getExported());
|
||||
|
||||
$sut->setExported(ExportQuery::STATE_ALL);
|
||||
$this->assertEquals(ExportQuery::STATE_ALL, $sut->getExported());
|
||||
}
|
||||
|
||||
protected function assertType(ExportQuery $sut)
|
||||
{
|
||||
$this->assertNull($sut->getType());
|
||||
|
||||
@@ -9,16 +9,13 @@
|
||||
|
||||
namespace App\Tests\Repository\Query;
|
||||
|
||||
use App\Entity\Activity;
|
||||
use App\Entity\Customer;
|
||||
use App\Entity\Project;
|
||||
use App\Entity\User;
|
||||
use App\Repository\Query\InvoiceQuery;
|
||||
|
||||
/**
|
||||
* @covers \App\Repository\Query\InvoiceQuery
|
||||
* @covers \App\Repository\Query\TimesheetQuery
|
||||
*/
|
||||
class InvoiceQueryTest extends BaseQueryTest
|
||||
class InvoiceQueryTest extends TimesheetQueryTest
|
||||
{
|
||||
public function testQuery()
|
||||
{
|
||||
@@ -45,78 +42,4 @@ class InvoiceQueryTest extends BaseQueryTest
|
||||
$sut->setMarkAsExported(true);
|
||||
$this->assertTrue($sut->isMarkAsExported());
|
||||
}
|
||||
|
||||
protected function assertUser(InvoiceQuery $sut)
|
||||
{
|
||||
$this->assertNull($sut->getUser());
|
||||
|
||||
$expected = new User();
|
||||
$expected->setUsername('foo-bar');
|
||||
$sut->setUser($expected);
|
||||
$this->assertEquals($expected, $sut->getUser());
|
||||
}
|
||||
|
||||
protected function assertCustomer(InvoiceQuery $sut)
|
||||
{
|
||||
$this->assertNull($sut->getCustomer());
|
||||
|
||||
$expected = new Customer();
|
||||
$expected->setName('foo-bar');
|
||||
$sut->setCustomer($expected);
|
||||
$this->assertEquals($expected, $sut->getCustomer());
|
||||
}
|
||||
|
||||
protected function assertProject(InvoiceQuery $sut)
|
||||
{
|
||||
$this->assertNull($sut->getProject());
|
||||
|
||||
$expected = new Project();
|
||||
$expected->setName('foo-bar');
|
||||
$sut->setProject($expected);
|
||||
$this->assertEquals($expected, $sut->getProject());
|
||||
}
|
||||
|
||||
protected function assertActivity(InvoiceQuery $sut)
|
||||
{
|
||||
$this->assertNull($sut->getActivity());
|
||||
|
||||
$expected = new Activity();
|
||||
$expected->setName('foo-bar');
|
||||
$sut->setActivity($expected);
|
||||
$this->assertEquals($expected, $sut->getActivity());
|
||||
}
|
||||
|
||||
protected function assertState(InvoiceQuery $sut)
|
||||
{
|
||||
$this->assertEquals(InvoiceQuery::STATE_ALL, $sut->getState());
|
||||
|
||||
$sut->setState(PHP_INT_MAX);
|
||||
$this->assertEquals(InvoiceQuery::STATE_ALL, $sut->getState());
|
||||
|
||||
$sut->setState(InvoiceQuery::STATE_STOPPED);
|
||||
$this->assertEquals(InvoiceQuery::STATE_STOPPED, $sut->getState());
|
||||
|
||||
$sut->setState(InvoiceQuery::STATE_RUNNING);
|
||||
$this->assertEquals(InvoiceQuery::STATE_RUNNING, $sut->getState());
|
||||
|
||||
$sut->setState(InvoiceQuery::STATE_ALL);
|
||||
$this->assertEquals(InvoiceQuery::STATE_ALL, $sut->getState());
|
||||
}
|
||||
|
||||
protected function assertExported(InvoiceQuery $sut)
|
||||
{
|
||||
$this->assertEquals(InvoiceQuery::STATE_ALL, $sut->getExported());
|
||||
|
||||
$sut->setExported(PHP_INT_MAX);
|
||||
$this->assertEquals(InvoiceQuery::STATE_ALL, $sut->getExported());
|
||||
|
||||
$sut->setExported(InvoiceQuery::STATE_EXPORTED);
|
||||
$this->assertEquals(InvoiceQuery::STATE_EXPORTED, $sut->getExported());
|
||||
|
||||
$sut->setExported(InvoiceQuery::STATE_NOT_EXPORTED);
|
||||
$this->assertEquals(InvoiceQuery::STATE_NOT_EXPORTED, $sut->getExported());
|
||||
|
||||
$sut->setExported(InvoiceQuery::STATE_ALL);
|
||||
$this->assertEquals(InvoiceQuery::STATE_ALL, $sut->getExported());
|
||||
}
|
||||
}
|
||||
|
||||
@@ -9,43 +9,24 @@
|
||||
|
||||
namespace App\Tests\Repository\Query;
|
||||
|
||||
use App\Entity\Customer;
|
||||
use App\Entity\Project;
|
||||
use App\Entity\Team;
|
||||
use App\Entity\User;
|
||||
use App\Repository\Query\ProjectFormTypeQuery;
|
||||
|
||||
/**
|
||||
* @covers \App\Repository\Query\ProjectFormTypeQuery
|
||||
* @covers \App\Repository\Query\BaseFormTypeQuery
|
||||
*/
|
||||
class ProjectFormTypeQueryTest extends BaseQueryTest
|
||||
class ProjectFormTypeQueryTest extends BaseFormTypeQueryTest
|
||||
{
|
||||
public function testQuery()
|
||||
{
|
||||
$sut = new ProjectFormTypeQuery();
|
||||
|
||||
self::assertEmpty($sut->getTeams());
|
||||
self::assertInstanceOf(ProjectFormTypeQuery::class, $sut->addTeam(new Team()));
|
||||
self::assertCount(1, $sut->getTeams());
|
||||
|
||||
$project = new Project();
|
||||
self::assertNull($sut->getProject());
|
||||
self::assertInstanceOf(ProjectFormTypeQuery::class, $sut->setProject($project));
|
||||
self::assertSame($project, $sut->getProject());
|
||||
$this->assertBaseQuery($sut);
|
||||
|
||||
$project = new Project();
|
||||
self::assertNull($sut->getProjectToIgnore());
|
||||
self::assertInstanceOf(ProjectFormTypeQuery::class, $sut->setProjectToIgnore($project));
|
||||
self::assertSame($project, $sut->getProjectToIgnore());
|
||||
|
||||
$customer = new Customer();
|
||||
self::assertNull($sut->getCustomer());
|
||||
self::assertInstanceOf(ProjectFormTypeQuery::class, $sut->setCustomer($customer));
|
||||
self::assertSame($customer, $sut->getCustomer());
|
||||
|
||||
$user = new User();
|
||||
self::assertNull($sut->getUser());
|
||||
self::assertInstanceOf(ProjectFormTypeQuery::class, $sut->setUser($user));
|
||||
self::assertSame($user, $sut->getUser());
|
||||
}
|
||||
}
|
||||
|
||||
@@ -9,12 +9,12 @@
|
||||
|
||||
namespace App\Tests\Repository\Query;
|
||||
|
||||
use App\Entity\Customer;
|
||||
use App\Repository\Query\ProjectQuery;
|
||||
use App\Repository\Query\VisibilityInterface;
|
||||
|
||||
/**
|
||||
* @covers \App\Repository\Query\ProjectQuery
|
||||
* @covers \App\Repository\Query\BaseQuery
|
||||
*/
|
||||
class ProjectQueryTest extends BaseQueryTest
|
||||
{
|
||||
@@ -25,17 +25,7 @@ class ProjectQueryTest extends BaseQueryTest
|
||||
$this->assertBaseQuery($sut, 'name');
|
||||
$this->assertInstanceOf(VisibilityInterface::class, $sut);
|
||||
|
||||
$this->assertNull($sut->getCustomer());
|
||||
|
||||
$expected = new Customer();
|
||||
$expected->setName('foo-bar');
|
||||
$sut->setCustomer($expected);
|
||||
|
||||
$this->assertEquals($expected, $sut->getCustomer());
|
||||
|
||||
// make sure int is allowed as well
|
||||
$sut->setCustomer(99);
|
||||
$this->assertEquals(99, $sut->getCustomer());
|
||||
$this->assertCustomer($sut);
|
||||
|
||||
$this->assertResetByFormError(new ProjectQuery(), 'name');
|
||||
|
||||
|
||||
@@ -9,21 +9,18 @@
|
||||
|
||||
namespace App\Tests\Repository\Query;
|
||||
|
||||
use App\Entity\User;
|
||||
use App\Repository\Query\TagFormTypeQuery;
|
||||
|
||||
/**
|
||||
* @covers \App\Repository\Query\TagFormTypeQuery
|
||||
* @covers \App\Repository\Query\BaseFormTypeQuery
|
||||
*/
|
||||
class TagFormTypeQueryTest extends BaseQueryTest
|
||||
class TagFormTypeQueryTest extends BaseFormTypeQueryTest
|
||||
{
|
||||
public function testQuery()
|
||||
{
|
||||
$sut = new TagFormTypeQuery();
|
||||
|
||||
$user = new User();
|
||||
self::assertNull($sut->getUser());
|
||||
self::assertInstanceOf(TagFormTypeQuery::class, $sut->setUser($user));
|
||||
self::assertSame($user, $sut->getUser());
|
||||
$this->assertBaseQuery($sut);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -9,6 +9,7 @@
|
||||
|
||||
namespace App\Tests\Repository\Query;
|
||||
|
||||
use App\Entity\User;
|
||||
use App\Repository\Query\TeamQuery;
|
||||
|
||||
/**
|
||||
@@ -23,6 +24,32 @@ class TeamQueryTest extends BaseQueryTest
|
||||
$this->assertBaseQuery($sut, 'name');
|
||||
$this->assertInstanceOf(TeamQuery::class, $sut);
|
||||
|
||||
$this->assertUsers($sut);
|
||||
|
||||
$this->assertResetByFormError(new TeamQuery(), 'name');
|
||||
}
|
||||
|
||||
protected function assertUsers(TeamQuery $sut)
|
||||
{
|
||||
$this->assertEmpty($sut->getUsers());
|
||||
|
||||
$user = $this->createMock(User::class);
|
||||
$user->method('getId')->willReturn(1);
|
||||
$sut->addUser($user);
|
||||
|
||||
$user = $this->createMock(User::class);
|
||||
$user->method('getId')->willReturn(1);
|
||||
$sut->addUser($user);
|
||||
|
||||
$user = $this->createMock(User::class);
|
||||
$user->method('getId')->willReturn(13);
|
||||
$sut->addUser($user);
|
||||
|
||||
$user = $this->createMock(User::class);
|
||||
$user->method('getId')->willReturn(27);
|
||||
$sut->addUser($user);
|
||||
$sut->removeUser($user);
|
||||
|
||||
$this->assertCount(2, $sut->getUsers());
|
||||
}
|
||||
}
|
||||
|
||||
@@ -9,9 +9,6 @@
|
||||
|
||||
namespace App\Tests\Repository\Query;
|
||||
|
||||
use App\Entity\Activity;
|
||||
use App\Entity\Customer;
|
||||
use App\Entity\Project;
|
||||
use App\Entity\User;
|
||||
use App\Repository\Query\TimesheetQuery;
|
||||
|
||||
@@ -76,36 +73,6 @@ class TimesheetQueryTest extends BaseQueryTest
|
||||
$this->assertCount(2, $sut->getUsers());
|
||||
}
|
||||
|
||||
protected function assertCustomer(TimesheetQuery $sut)
|
||||
{
|
||||
$this->assertNull($sut->getCustomer());
|
||||
|
||||
$expected = new Customer();
|
||||
$expected->setName('foo-bar');
|
||||
$sut->setCustomer($expected);
|
||||
$this->assertEquals($expected, $sut->getCustomer());
|
||||
}
|
||||
|
||||
protected function assertProject(TimesheetQuery $sut)
|
||||
{
|
||||
$this->assertNull($sut->getProject());
|
||||
|
||||
$expected = new Project();
|
||||
$expected->setName('foo-bar');
|
||||
$sut->setProject($expected);
|
||||
$this->assertEquals($expected, $sut->getProject());
|
||||
}
|
||||
|
||||
protected function assertActivity(TimesheetQuery $sut)
|
||||
{
|
||||
$this->assertNull($sut->getActivity());
|
||||
|
||||
$expected = new Activity();
|
||||
$expected->setName('foo-bar');
|
||||
$sut->setActivity($expected);
|
||||
$this->assertEquals($expected, $sut->getActivity());
|
||||
}
|
||||
|
||||
protected function assertState(TimesheetQuery $sut)
|
||||
{
|
||||
$this->assertEquals(TimesheetQuery::STATE_ALL, $sut->getState());
|
||||
|
||||
@@ -9,26 +9,18 @@
|
||||
|
||||
namespace App\Tests\Repository\Query;
|
||||
|
||||
use App\Entity\Team;
|
||||
use App\Entity\User;
|
||||
use App\Repository\Query\UserFormTypeQuery;
|
||||
|
||||
/**
|
||||
* @covers \App\Repository\Query\UserFormTypeQuery
|
||||
* @covers \App\Repository\Query\BaseFormTypeQuery
|
||||
*/
|
||||
class UserFormTypeQueryTest extends BaseQueryTest
|
||||
class UserFormTypeQueryTest extends BaseFormTypeQueryTest
|
||||
{
|
||||
public function testQuery()
|
||||
{
|
||||
$sut = new UserFormTypeQuery();
|
||||
|
||||
self::assertEmpty($sut->getTeams());
|
||||
self::assertInstanceOf(UserFormTypeQuery::class, $sut->addTeam(new Team()));
|
||||
self::assertCount(1, $sut->getTeams());
|
||||
|
||||
$user = new User();
|
||||
self::assertNull($sut->getUser());
|
||||
self::assertInstanceOf(UserFormTypeQuery::class, $sut->setUser($user));
|
||||
self::assertSame($user, $sut->getUser());
|
||||
$this->assertBaseQuery($sut);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user