@@ 36-51 (lines=16) @@ | ||
33 | $this->engine = new FormulaEngine(); |
|
34 | } |
|
35 | ||
36 | public function testSimpleDiscount() |
|
37 | { |
|
38 | $date = '2018-08-01'; |
|
39 | $rate = '2'; |
|
40 | $reason = 'test reason'; |
|
41 | $formula = $this->engine->build("discount.fixed('$rate%').since('$date').reason('$reason')"); |
|
42 | ||
43 | $this->assertInstanceOf(FixedDiscount::class, $formula); |
|
44 | $this->assertSame($rate, $formula->getValue()->getValue()); |
|
45 | $this->assertTrue($formula->isRelative()); |
|
46 | $this->assertInstanceOf(Since::class, $formula->getSince()); |
|
47 | $this->assertEquals(new DateTimeImmutable($date), $formula->getSince()->getValue()); |
|
48 | $this->assertInstanceOf(Reason::class, $formula->getReason()); |
|
49 | $this->assertSame($reason, $formula->getReason()->getValue()); |
|
50 | $this->assertNull($formula->getTill()); |
|
51 | } |
|
52 | ||
53 | public function testSimpleLeasing() |
|
54 | { |
|
@@ 53-68 (lines=16) @@ | ||
50 | $this->assertNull($formula->getTill()); |
|
51 | } |
|
52 | ||
53 | public function testSimpleLeasing() |
|
54 | { |
|
55 | $date = '2018-08-01'; |
|
56 | $num = 2; |
|
57 | $reason = 'test reason'; |
|
58 | $formula = $this->engine->build("leasing.since('$date').lasts('$num months').reason('$reason')"); |
|
59 | ||
60 | $this->assertInstanceOf(Leasing::class, $formula); |
|
61 | $this->assertInstanceOf(MonthPeriod::class, $formula->getTerm()); |
|
62 | $this->assertSame($num, $formula->getTerm()->getValue()); |
|
63 | $this->assertInstanceOf(Since::class, $formula->getSince()); |
|
64 | $this->assertEquals(new DateTimeImmutable($date), $formula->getSince()->getValue()); |
|
65 | $this->assertInstanceOf(Reason::class, $formula->getReason()); |
|
66 | $this->assertSame($reason, $formula->getReason()->getValue()); |
|
67 | $this->assertNull($formula->getTill()); |
|
68 | } |
|
69 | ||
70 | public function normalizeDataProvider() |
|
71 | { |