rounding rules via admin screen, round begin when starting record (#1229)
This commit is contained in:
@@ -10,11 +10,13 @@
|
||||
namespace App\Tests\Timesheet\Calculator;
|
||||
|
||||
use App\Entity\Timesheet;
|
||||
use App\Tests\Mocks\RoundingServiceFactory;
|
||||
use App\Timesheet\Calculator\DurationCalculator;
|
||||
use PHPUnit\Framework\TestCase;
|
||||
|
||||
/**
|
||||
* @covers \App\Timesheet\Calculator\DurationCalculator
|
||||
* @covers \App\Timesheet\RoundingService
|
||||
*/
|
||||
class DurationCalculatorTest extends TestCase
|
||||
{
|
||||
@@ -24,7 +26,7 @@ class DurationCalculatorTest extends TestCase
|
||||
$record->setBegin(new \DateTime());
|
||||
$this->assertEquals(0, $record->getDuration());
|
||||
|
||||
$sut = new DurationCalculator([]);
|
||||
$sut = new DurationCalculator((new RoundingServiceFactory($this))->create());
|
||||
$sut->calculate($record);
|
||||
$this->assertEquals(0, $record->getDuration());
|
||||
}
|
||||
@@ -39,7 +41,7 @@ class DurationCalculatorTest extends TestCase
|
||||
$record->setEnd($end);
|
||||
$this->assertEquals(0, $record->getDuration());
|
||||
|
||||
$sut = new DurationCalculator($rules);
|
||||
$sut = new DurationCalculator((new RoundingServiceFactory($this))->create($rules));
|
||||
$sut->calculate($record);
|
||||
$this->assertEquals($expectedDuration, $record->getDuration());
|
||||
}
|
||||
@@ -52,7 +54,7 @@ class DurationCalculatorTest extends TestCase
|
||||
|
||||
return [
|
||||
[
|
||||
[],
|
||||
null,
|
||||
$start,
|
||||
(clone $start)->setTimestamp($start->getTimestamp() + 1837),
|
||||
1837
|
||||
@@ -60,7 +62,7 @@ class DurationCalculatorTest extends TestCase
|
||||
[
|
||||
[
|
||||
'default' => [
|
||||
'days' => [$day],
|
||||
'days' => $day,
|
||||
'begin' => 15,
|
||||
'end' => 15,
|
||||
'duration' => 0,
|
||||
@@ -74,7 +76,7 @@ class DurationCalculatorTest extends TestCase
|
||||
[
|
||||
[
|
||||
'default' => [
|
||||
'days' => [$day],
|
||||
'days' => $day,
|
||||
'begin' => 0,
|
||||
'end' => 0,
|
||||
'duration' => 0,
|
||||
@@ -88,7 +90,7 @@ class DurationCalculatorTest extends TestCase
|
||||
[
|
||||
[
|
||||
'default' => [
|
||||
'days' => [$day],
|
||||
'days' => $day,
|
||||
'begin' => 1,
|
||||
'end' => 1,
|
||||
'duration' => 0,
|
||||
@@ -102,7 +104,7 @@ class DurationCalculatorTest extends TestCase
|
||||
[
|
||||
[
|
||||
'default' => [
|
||||
'days' => [$day],
|
||||
'days' => $day,
|
||||
'begin' => 0,
|
||||
'end' => 0,
|
||||
'duration' => 30,
|
||||
@@ -116,14 +118,14 @@ class DurationCalculatorTest extends TestCase
|
||||
[
|
||||
[
|
||||
'default' => [
|
||||
'days' => [$day],
|
||||
'days' => $day,
|
||||
'begin' => 15,
|
||||
'end' => 0,
|
||||
'duration' => 0,
|
||||
'mode' => 'default',
|
||||
],
|
||||
'weekdays' => [
|
||||
'days' => ['monday', 'tuesday', 'wednesday', 'thursday', 'friday', 'saturday', 'sunday'],
|
||||
'foo' => [
|
||||
'days' => 'monday,tuesday,wednesday,thursday,friday,saturday,sunday',
|
||||
'begin' => 0,
|
||||
'end' => 1,
|
||||
'duration' => 30,
|
||||
@@ -137,14 +139,14 @@ class DurationCalculatorTest extends TestCase
|
||||
[
|
||||
[
|
||||
'default' => [
|
||||
'days' => [$day],
|
||||
'days' => $day,
|
||||
'begin' => 15,
|
||||
'end' => 0,
|
||||
'duration' => 30,
|
||||
'mode' => 'default',
|
||||
],
|
||||
'weekdays' => [
|
||||
'days' => ['monday', 'tuesday', 'wednesday', 'thursday', 'friday', 'saturday', 'sunday'],
|
||||
'foo' => [
|
||||
'days' => 'monday,tuesday,wednesday,thursday,friday,saturday,sunday',
|
||||
'begin' => 0,
|
||||
'end' => 1,
|
||||
'duration' => 0,
|
||||
@@ -158,14 +160,14 @@ class DurationCalculatorTest extends TestCase
|
||||
[
|
||||
[
|
||||
'default' => [
|
||||
'days' => [$day],
|
||||
'days' => $day,
|
||||
'begin' => 0,
|
||||
'end' => 0,
|
||||
'duration' => 1,
|
||||
'mode' => 'default',
|
||||
],
|
||||
'weekdays' => [
|
||||
'days' => ['monday', 'tuesday', 'wednesday', 'thursday', 'friday', 'saturday', 'sunday'],
|
||||
'foo' => [
|
||||
'days' => 'monday,tuesday,wednesday,thursday,friday,saturday,sunday',
|
||||
'begin' => 0,
|
||||
'end' => 0,
|
||||
'duration' => 1,
|
||||
@@ -179,14 +181,14 @@ class DurationCalculatorTest extends TestCase
|
||||
[
|
||||
[
|
||||
'default' => [
|
||||
'days' => [$day],
|
||||
'days' => $day,
|
||||
'begin' => 1,
|
||||
'end' => 1,
|
||||
'duration' => 1,
|
||||
'mode' => 'default',
|
||||
],
|
||||
'weekdays' => [
|
||||
'days' => ['monday', 'tuesday', 'wednesday', 'thursday', 'friday', 'saturday', 'sunday'],
|
||||
'foo' => [
|
||||
'days' => 'monday,tuesday,wednesday,thursday,friday,saturday,sunday',
|
||||
'begin' => 1,
|
||||
'end' => 1,
|
||||
'duration' => 1,
|
||||
@@ -200,14 +202,14 @@ class DurationCalculatorTest extends TestCase
|
||||
[
|
||||
[
|
||||
'default' => [
|
||||
'days' => [$day],
|
||||
'days' => $day,
|
||||
'begin' => 0,
|
||||
'end' => 0,
|
||||
'duration' => 0,
|
||||
'mode' => 'default',
|
||||
],
|
||||
'weekdays' => [
|
||||
'days' => ['monday', 'tuesday', 'wednesday', 'thursday', 'friday', 'saturday', 'sunday'],
|
||||
'foo' => [
|
||||
'days' => 'monday,tuesday,wednesday,thursday,friday,saturday,sunday',
|
||||
'begin' => 0,
|
||||
'end' => 0,
|
||||
'duration' => 0,
|
||||
|
||||
Reference in New Issue
Block a user