added global activities (#259)
This commit is contained in:
@@ -35,14 +35,14 @@ abstract class AbstractEntityTest extends KernelTestCase
|
||||
$expected = count($fieldNames);
|
||||
$actual = $violations->count();
|
||||
|
||||
$this->assertEquals($expected, $actual, sprintf('Expected %s violations, found %s.', $expected, $actual));
|
||||
|
||||
$violatedFields = [];
|
||||
/** @var ConstraintViolationInterface $validation */
|
||||
foreach ($violations as $validation) {
|
||||
$violatedFields[$validation->getPropertyPath()] = $validation->getPropertyPath();
|
||||
}
|
||||
|
||||
$this->assertEquals($expected, count($violatedFields), sprintf('Expected %s violations, found %s in %s.', $expected, $actual, implode(', ', array_keys($violatedFields))));
|
||||
|
||||
foreach ($fieldNames as $id => $propertyPath) {
|
||||
$foundField = false;
|
||||
if (in_array($propertyPath, $violatedFields)) {
|
||||
|
||||
@@ -12,6 +12,7 @@ namespace App\Tests\Entity;
|
||||
use App\Entity\Activity;
|
||||
use App\Entity\Customer;
|
||||
use App\Entity\Project;
|
||||
use App\Entity\Timesheet;
|
||||
|
||||
/**
|
||||
* @covers \App\Entity\Project
|
||||
@@ -31,6 +32,7 @@ class ProjectTest extends AbstractEntityTest
|
||||
// activities
|
||||
$this->assertNull($sut->getFixedRate());
|
||||
$this->assertNull($sut->getHourlyRate());
|
||||
$this->assertNull($sut->getTimesheets());
|
||||
}
|
||||
|
||||
public function testSetterAndGetter()
|
||||
@@ -64,5 +66,9 @@ class ProjectTest extends AbstractEntityTest
|
||||
$this->assertEquals(13.47, $sut->getFixedRate());
|
||||
$this->assertInstanceOf(Project::class, $sut->setHourlyRate(99));
|
||||
$this->assertEquals(99, $sut->getHourlyRate());
|
||||
|
||||
$timesheets = [(new Timesheet())->setDescription('foo'), (new Timesheet())->setDescription('bar')];
|
||||
$this->assertInstanceOf(Project::class, $sut->setTimesheets($timesheets));
|
||||
$this->assertSame($timesheets, $sut->getTimesheets());
|
||||
}
|
||||
}
|
||||
|
||||
@@ -29,6 +29,7 @@ class TimesheetTest extends AbstractEntityTest
|
||||
$this->assertSame(0, $sut->getDuration());
|
||||
$this->assertNull($sut->getUser());
|
||||
$this->assertNull($sut->getActivity());
|
||||
$this->assertNull($sut->getProject());
|
||||
$this->assertNull($sut->getDescription());
|
||||
$this->assertSame(0.00, $sut->getRate());
|
||||
$this->assertNull($sut->getFixedRate());
|
||||
@@ -56,10 +57,52 @@ class TimesheetTest extends AbstractEntityTest
|
||||
$entity = new Timesheet();
|
||||
$entity->setUser(new User());
|
||||
$entity->setActivity($activity);
|
||||
$entity->setProject($project);
|
||||
|
||||
return $entity;
|
||||
}
|
||||
|
||||
public function testValidationNeedsActivity()
|
||||
{
|
||||
$entity = new Timesheet();
|
||||
$entity
|
||||
->setUser(new User())
|
||||
->setProject(new Project())
|
||||
->setBegin(new \DateTime())
|
||||
;
|
||||
|
||||
$this->assertHasViolationForField($entity, 'activity');
|
||||
}
|
||||
|
||||
public function testValidationNeedsProject()
|
||||
{
|
||||
$entity = new Timesheet();
|
||||
$entity
|
||||
->setUser(new User())
|
||||
->setActivity(new Activity())
|
||||
->setBegin(new \DateTime())
|
||||
;
|
||||
|
||||
$this->assertHasViolationForField($entity, 'project');
|
||||
}
|
||||
|
||||
public function testValidationProjectMismatch()
|
||||
{
|
||||
$project = (new Project())->setName('foo');
|
||||
$project2 = (new Project())->setName('bar');
|
||||
$activity = (new Activity())->setName('hello-world')->setProject($project);
|
||||
|
||||
$entity = new Timesheet();
|
||||
$entity
|
||||
->setUser(new User())
|
||||
->setActivity($activity)
|
||||
->setProject($project2)
|
||||
->setBegin(new \DateTime())
|
||||
;
|
||||
|
||||
$this->assertHasViolationForField($entity, 'project');
|
||||
}
|
||||
|
||||
public function testValidationEndNotEarlierThanBegin()
|
||||
{
|
||||
$entity = $this->getEntity();
|
||||
|
||||
Reference in New Issue
Block a user