added user-specific rates (#1455)

This commit is contained in:
Kevin Papst
2020-02-10 20:29:43 +01:00
committed by GitHub
parent 465d7166d4
commit 52c7437076
83 changed files with 2054 additions and 520 deletions

View File

@@ -0,0 +1,55 @@
<?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\Entity;
use App\Entity\Activity;
use App\Entity\ActivityRate;
use App\Entity\User;
use PHPUnit\Framework\TestCase;
/**
* @covers \App\Entity\ActivityRate
* @covers \App\Entity\Rate
*/
class ActivityRateTest extends TestCase
{
public function testDefaultValues()
{
$sut = new ActivityRate();
self::assertNull($sut->getId());
self::assertEquals(0.00, $sut->getRate());
self::assertNull($sut->getActivity());
self::assertNull($sut->getUser());
self::assertEquals(5, $sut->getScore());
self::assertFalse($sut->isFixed());
}
public function testSetterAndGetter()
{
$sut = new ActivityRate();
self::assertInstanceOf(ActivityRate::class, $sut->setIsFixed(true));
self::assertTrue($sut->isFixed());
self::assertInstanceOf(ActivityRate::class, $sut->setRate(12.34));
self::assertEquals(12.34, $sut->getRate());
$user = new User();
$user->setAlias('foo');
$user->setUsername('bar');
self::assertInstanceOf(ActivityRate::class, $sut->setUser($user));
self::assertSame($user, $sut->getUser());
$entity = new Activity();
$entity->setName('foo');
self::assertInstanceOf(ActivityRate::class, $sut->setActivity($entity));
self::assertSame($entity, $sut->getActivity());
}
}

View File

@@ -11,6 +11,7 @@ namespace App\Tests\Entity;
use App\Entity\Activity;
use App\Entity\ActivityMeta;
use App\Entity\Project;
use Doctrine\Common\Collections\Collection;
use PHPUnit\Framework\TestCase;
@@ -27,8 +28,7 @@ class ActivityTest extends TestCase
$this->assertNull($sut->getName());
$this->assertNull($sut->getComment());
$this->assertTrue($sut->getVisible());
$this->assertNull($sut->getFixedRate());
$this->assertNull($sut->getHourlyRate());
$this->assertTrue($sut->isGlobal());
$this->assertNull($sut->getColor());
$this->assertEquals(0.0, $sut->getBudget());
$this->assertEquals(0, $sut->getTimeBudget());
@@ -53,17 +53,15 @@ class ActivityTest extends TestCase
$this->assertInstanceOf(Activity::class, $sut->setColor('#fffccc'));
$this->assertEquals('#fffccc', $sut->getColor());
$this->assertInstanceOf(Activity::class, $sut->setFixedRate(13.47));
$this->assertEquals(13.47, $sut->getFixedRate());
$this->assertInstanceOf(Activity::class, $sut->setHourlyRate(99));
$this->assertEquals(99, $sut->getHourlyRate());
$this->assertInstanceOf(Activity::class, $sut->setBudget(12345.67));
$this->assertEquals(12345.67, $sut->getBudget());
$this->assertInstanceOf(Activity::class, $sut->setTimeBudget(937321));
$this->assertEquals(937321, $sut->getTimeBudget());
$this->assertTrue($sut->isGlobal());
$this->assertInstanceOf(Activity::class, $sut->setProject(new Project()));
$this->assertFalse($sut->isGlobal());
}
public function testMetaFields()

View File

@@ -0,0 +1,55 @@
<?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\Entity;
use App\Entity\Customer;
use App\Entity\CustomerRate;
use App\Entity\User;
use PHPUnit\Framework\TestCase;
/**
* @covers \App\Entity\CustomerRate
* @covers \App\Entity\Rate
*/
class CustomerRateTest extends TestCase
{
public function testDefaultValues()
{
$sut = new CustomerRate();
self::assertNull($sut->getId());
self::assertEquals(0.00, $sut->getRate());
self::assertNull($sut->getCustomer());
self::assertNull($sut->getUser());
self::assertEquals(1, $sut->getScore());
self::assertFalse($sut->isFixed());
}
public function testSetterAndGetter()
{
$sut = new CustomerRate();
self::assertInstanceOf(CustomerRate::class, $sut->setIsFixed(true));
self::assertTrue($sut->isFixed());
self::assertInstanceOf(CustomerRate::class, $sut->setRate(12.34));
self::assertEquals(12.34, $sut->getRate());
$user = new User();
$user->setAlias('foo');
$user->setUsername('bar');
self::assertInstanceOf(CustomerRate::class, $sut->setUser($user));
self::assertSame($user, $sut->getUser());
$entity = new Customer();
$entity->setName('foo');
self::assertInstanceOf(CustomerRate::class, $sut->setCustomer($entity));
self::assertSame($entity, $sut->getCustomer());
}
}

View File

@@ -43,8 +43,6 @@ class CustomerTest extends TestCase
self::assertNull($sut->getHomepage());
self::assertNull($sut->getTimezone());
self::assertNull($sut->getFixedRate());
self::assertNull($sut->getHourlyRate());
self::assertNull($sut->getColor());
self::assertEquals(0.0, $sut->getBudget());
self::assertEquals(0, $sut->getTimeBudget());
@@ -92,12 +90,6 @@ class CustomerTest extends TestCase
self::assertInstanceOf(Customer::class, $sut->setHomepage('https://www.example.com'));
self::assertEquals('https://www.example.com', $sut->getHomepage());
self::assertInstanceOf(Customer::class, $sut->setFixedRate(13.47));
self::assertEquals(13.47, $sut->getFixedRate());
self::assertInstanceOf(Customer::class, $sut->setHourlyRate(99));
self::assertEquals(99, $sut->getHourlyRate());
self::assertInstanceOf(Customer::class, $sut->setBudget(12345.67));
self::assertEquals(12345.67, $sut->getBudget());

View File

@@ -0,0 +1,55 @@
<?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\Entity;
use App\Entity\Project;
use App\Entity\ProjectRate;
use App\Entity\User;
use PHPUnit\Framework\TestCase;
/**
* @covers \App\Entity\ProjectRate
* @covers \App\Entity\Rate
*/
class ProjectRateTest extends TestCase
{
public function testDefaultValues()
{
$sut = new ProjectRate();
self::assertNull($sut->getId());
self::assertEquals(0.00, $sut->getRate());
self::assertNull($sut->getProject());
self::assertNull($sut->getUser());
self::assertEquals(3, $sut->getScore());
self::assertFalse($sut->isFixed());
}
public function testSetterAndGetter()
{
$sut = new ProjectRate();
self::assertInstanceOf(ProjectRate::class, $sut->setIsFixed(true));
self::assertTrue($sut->isFixed());
self::assertInstanceOf(ProjectRate::class, $sut->setRate(12.34));
self::assertEquals(12.34, $sut->getRate());
$user = new User();
$user->setAlias('foo');
$user->setUsername('bar');
self::assertInstanceOf(ProjectRate::class, $sut->setUser($user));
self::assertSame($user, $sut->getUser());
$entity = new Project();
$entity->setName('foo');
self::assertInstanceOf(ProjectRate::class, $sut->setProject($entity));
self::assertSame($entity, $sut->getProject());
}
}

View File

@@ -34,8 +34,6 @@ class ProjectTest extends TestCase
self::assertNull($sut->getComment());
self::assertTrue($sut->getVisible());
self::assertTrue($sut->isVisible());
self::assertNull($sut->getFixedRate());
self::assertNull($sut->getHourlyRate());
self::assertNull($sut->getColor());
self::assertEquals(0.0, $sut->getBudget());
self::assertEquals(0, $sut->getTimeBudget());
@@ -85,12 +83,6 @@ class ProjectTest extends TestCase
self::assertInstanceOf(Project::class, $sut->setVisible(false));
self::assertFalse($sut->getVisible());
self::assertInstanceOf(Project::class, $sut->setFixedRate(13.47));
self::assertEquals(13.47, $sut->getFixedRate());
self::assertInstanceOf(Project::class, $sut->setHourlyRate(99));
self::assertEquals(99, $sut->getHourlyRate());
self::assertInstanceOf(Project::class, $sut->setBudget(12345.67));
self::assertEquals(12345.67, $sut->getBudget());