monthly budget, monthly report, unified report calculation (#2684)
This commit is contained in:
48
tests/Entity/AbstractEntityTest.php
Normal file
48
tests/Entity/AbstractEntityTest.php
Normal file
@@ -0,0 +1,48 @@
|
||||
<?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\EntityWithBudget;
|
||||
use PHPUnit\Framework\TestCase;
|
||||
|
||||
abstract class AbstractEntityTest extends TestCase
|
||||
{
|
||||
protected function assertBudget(EntityWithBudget $entityWithBudget)
|
||||
{
|
||||
$this->assertEquals(0.0, $entityWithBudget->getBudget());
|
||||
$this->assertEquals(0, $entityWithBudget->getTimeBudget());
|
||||
$this->assertNull($entityWithBudget->getBudgetType());
|
||||
$this->assertFalse($entityWithBudget->isMonthlyBudget());
|
||||
|
||||
self::assertFalse($entityWithBudget->hasBudget());
|
||||
self::assertFalse($entityWithBudget->hasTimeBudget());
|
||||
|
||||
$entityWithBudget->setBudget(12345.67);
|
||||
$this->assertEquals(12345.67, $entityWithBudget->getBudget());
|
||||
self::assertTrue($entityWithBudget->hasBudget());
|
||||
self::assertFalse($entityWithBudget->hasTimeBudget());
|
||||
|
||||
$entityWithBudget->setTimeBudget(937321);
|
||||
$this->assertEquals(937321, $entityWithBudget->getTimeBudget());
|
||||
self::assertTrue($entityWithBudget->hasTimeBudget());
|
||||
|
||||
$entityWithBudget->setBudgetType('month');
|
||||
$this->assertTrue($entityWithBudget->isMonthlyBudget());
|
||||
$entityWithBudget->setBudgetType(null);
|
||||
$this->assertFalse($entityWithBudget->isMonthlyBudget());
|
||||
|
||||
try {
|
||||
$entityWithBudget->setBudgetType('foo');
|
||||
$this->fail('Budget type only allows "month"');
|
||||
} catch (\InvalidArgumentException $e) {
|
||||
self::assertEquals('Unknown budget type: foo', $e->getMessage());
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -18,12 +18,11 @@ use App\Export\Spreadsheet\ColumnDefinition;
|
||||
use App\Export\Spreadsheet\Extractor\AnnotationExtractor;
|
||||
use Doctrine\Common\Annotations\AnnotationReader;
|
||||
use Doctrine\Common\Collections\Collection;
|
||||
use PHPUnit\Framework\TestCase;
|
||||
|
||||
/**
|
||||
* @covers \App\Entity\Activity
|
||||
*/
|
||||
class ActivityTest extends TestCase
|
||||
class ActivityTest extends AbstractEntityTest
|
||||
{
|
||||
public function testDefaultValues()
|
||||
{
|
||||
@@ -36,16 +35,17 @@ class ActivityTest extends TestCase
|
||||
$this->assertTrue($sut->isGlobal());
|
||||
$this->assertNull($sut->getColor());
|
||||
self::assertFalse($sut->hasColor());
|
||||
$this->assertEquals(0.0, $sut->getBudget());
|
||||
$this->assertEquals(0, $sut->getTimeBudget());
|
||||
self::assertFalse($sut->hasBudget());
|
||||
self::assertFalse($sut->hasTimeBudget());
|
||||
$this->assertInstanceOf(Collection::class, $sut->getMetaFields());
|
||||
$this->assertEquals(0, $sut->getMetaFields()->count());
|
||||
$this->assertNull($sut->getMetaField('foo'));
|
||||
$this->assertInstanceOf(Collection::class, $sut->getTeams());
|
||||
}
|
||||
|
||||
public function testBudgets()
|
||||
{
|
||||
$this->assertBudget(new Activity());
|
||||
}
|
||||
|
||||
public function testSetterAndGetter()
|
||||
{
|
||||
$sut = new Activity();
|
||||
@@ -68,14 +68,6 @@ class ActivityTest extends TestCase
|
||||
$this->assertNull($sut->getColor());
|
||||
self::assertFalse($sut->hasColor());
|
||||
|
||||
$this->assertInstanceOf(Activity::class, $sut->setBudget(12345.67));
|
||||
$this->assertEquals(12345.67, $sut->getBudget());
|
||||
self::assertTrue($sut->hasBudget());
|
||||
|
||||
$this->assertInstanceOf(Activity::class, $sut->setTimeBudget(937321));
|
||||
$this->assertEquals(937321, $sut->getTimeBudget());
|
||||
self::assertTrue($sut->hasTimeBudget());
|
||||
|
||||
$this->assertTrue($sut->isGlobal());
|
||||
$this->assertInstanceOf(Activity::class, $sut->setProject(new Project()));
|
||||
$this->assertFalse($sut->isGlobal());
|
||||
|
||||
@@ -17,12 +17,11 @@ use App\Export\Spreadsheet\ColumnDefinition;
|
||||
use App\Export\Spreadsheet\Extractor\AnnotationExtractor;
|
||||
use Doctrine\Common\Annotations\AnnotationReader;
|
||||
use Doctrine\Common\Collections\Collection;
|
||||
use PHPUnit\Framework\TestCase;
|
||||
|
||||
/**
|
||||
* @covers \App\Entity\Customer
|
||||
*/
|
||||
class CustomerTest extends TestCase
|
||||
class CustomerTest extends AbstractEntityTest
|
||||
{
|
||||
public function testDefaultValues()
|
||||
{
|
||||
@@ -49,10 +48,6 @@ class CustomerTest extends TestCase
|
||||
|
||||
self::assertNull($sut->getColor());
|
||||
self::assertFalse($sut->hasColor());
|
||||
self::assertEquals(0.0, $sut->getBudget());
|
||||
self::assertEquals(0, $sut->getTimeBudget());
|
||||
self::assertFalse($sut->hasBudget());
|
||||
self::assertFalse($sut->hasTimeBudget());
|
||||
self::assertInstanceOf(Collection::class, $sut->getMetaFields());
|
||||
self::assertEquals(0, $sut->getMetaFields()->count());
|
||||
self::assertNull($sut->getMetaField('foo'));
|
||||
@@ -60,6 +55,11 @@ class CustomerTest extends TestCase
|
||||
self::assertEquals(0, $sut->getTeams()->count());
|
||||
}
|
||||
|
||||
public function testBudgets()
|
||||
{
|
||||
$this->assertBudget(new Customer());
|
||||
}
|
||||
|
||||
public function testSetterAndGetter()
|
||||
{
|
||||
$sut = new Customer();
|
||||
@@ -103,14 +103,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->setBudget(12345.67));
|
||||
self::assertEquals(12345.67, $sut->getBudget());
|
||||
self::assertTrue($sut->hasBudget());
|
||||
|
||||
self::assertInstanceOf(Customer::class, $sut->setTimeBudget(937321));
|
||||
self::assertEquals(937321, $sut->getTimeBudget());
|
||||
self::assertTrue($sut->hasTimeBudget());
|
||||
|
||||
self::assertInstanceOf(Customer::class, $sut->setVatId('ID 1234567890'));
|
||||
self::assertEquals('ID 1234567890', $sut->getVatId());
|
||||
|
||||
|
||||
@@ -18,12 +18,11 @@ use App\Export\Spreadsheet\ColumnDefinition;
|
||||
use App\Export\Spreadsheet\Extractor\AnnotationExtractor;
|
||||
use Doctrine\Common\Annotations\AnnotationReader;
|
||||
use Doctrine\Common\Collections\Collection;
|
||||
use PHPUnit\Framework\TestCase;
|
||||
|
||||
/**
|
||||
* @covers \App\Entity\Project
|
||||
*/
|
||||
class ProjectTest extends TestCase
|
||||
class ProjectTest extends AbstractEntityTest
|
||||
{
|
||||
public function testDefaultValues()
|
||||
{
|
||||
@@ -39,10 +38,6 @@ class ProjectTest extends TestCase
|
||||
self::assertTrue($sut->isVisible());
|
||||
self::assertNull($sut->getColor());
|
||||
self::assertFalse($sut->hasColor());
|
||||
self::assertEquals(0.0, $sut->getBudget());
|
||||
self::assertEquals(0, $sut->getTimeBudget());
|
||||
self::assertFalse($sut->hasBudget());
|
||||
self::assertFalse($sut->hasTimeBudget());
|
||||
self::assertInstanceOf(Collection::class, $sut->getMetaFields());
|
||||
self::assertEquals(0, $sut->getMetaFields()->count());
|
||||
self::assertNull($sut->getMetaField('foo'));
|
||||
@@ -51,6 +46,11 @@ class ProjectTest extends TestCase
|
||||
self::assertTrue($sut->isVisibleAtDate(new \DateTime()));
|
||||
}
|
||||
|
||||
public function testBudgets()
|
||||
{
|
||||
$this->assertBudget(new Project());
|
||||
}
|
||||
|
||||
public function testSetterAndGetter()
|
||||
{
|
||||
$sut = new Project();
|
||||
@@ -95,14 +95,6 @@ class ProjectTest extends TestCase
|
||||
|
||||
self::assertInstanceOf(Project::class, $sut->setVisible(false));
|
||||
self::assertFalse($sut->isVisible());
|
||||
|
||||
self::assertInstanceOf(Project::class, $sut->setBudget(12345.67));
|
||||
self::assertEquals(12345.67, $sut->getBudget());
|
||||
self::assertTrue($sut->hasBudget());
|
||||
|
||||
self::assertInstanceOf(Project::class, $sut->setTimeBudget(937321));
|
||||
self::assertEquals(937321, $sut->getTimeBudget());
|
||||
self::assertTrue($sut->hasTimeBudget());
|
||||
}
|
||||
|
||||
public function testMetaFields()
|
||||
|
||||
Reference in New Issue
Block a user