Completed
Push — master ( 517664...b17efa )
by
unknown
02:24
created

BuiltInFunctionsExtensionTest::testToday()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 13
Code Lines 8

Duplication

Lines 0
Ratio 0 %

Importance

Changes 3
Bugs 1 Features 1
Metric Value
c 3
b 1
f 1
dl 0
loc 13
rs 9.4286
cc 1
eloc 8
nc 1
nop 0
1
<?php
2
namespace Netdudes\DataSourceryBundle\Tests\Extension;
3
4
use Netdudes\DataSourceryBundle\Extension\BuiltInFunctionsExtension;
5
use Netdudes\DataSourceryBundle\Util\CurrentDateTimeProvider;
6
use Symfony\Component\Security\Core\Authentication\Token\Storage\TokenStorageInterface;
7
8
class BuiltInFunctionsExtensionTest extends \PHPUnit_Framework_TestCase
9
{
10
    /**
11
     * This is just used to manually test the function
12
     */
13
    public function testNow()
14
    {
15
        $extension = $this->getExtension();
16
17
        $todayResult = $extension->now(null);
18
        $this->assertSame("2012-06-03T22:22:22+0200", $todayResult, 'The today function result did not produce the expected  with no offset');
19
20
        $offset = "+5 days";
21
        $todayResult = $extension->now($offset);
22
        $this->assertSame("2012-06-08T22:22:22+0200", $todayResult, 'The today function result did not produce the expected result with ofset ' . $offset);
23
24
        $offset = "-3 days";
25
        $todayResult = $extension->now($offset);
26
        $this->assertSame("2012-05-31T22:22:22+0200", $todayResult, 'The today function result did not produce the expected result with ofset ' . $offset);
27
28
        $offset = "-6 days - 3 minutes";
29
        $todayResult = $extension->now($offset);
30
        $this->assertSame("2012-05-28T22:19:22+0200", $todayResult, 'The today function result did not produce the expected result with ofset ' . $offset);
31
32
        $offset = "-30 minutes";
33
        $todayResult = $extension->now($offset);
34
        $this->assertSame("2012-06-03T21:52:22+0200", $todayResult, 'The today function result did not produce the expected result with ofset ' . $offset);
35
    }
36
37
    public function testStartOfDay()
38
    {
39
        $extension = $this->getExtension();
40
41
        $startOfDayResult = $extension->startOfDay();
42
        $this->assertSame('2012-06-03T00:00:00+0200', $startOfDayResult, 'The startOfDay function result did not produce the expected result');
43
44
        $startOfDayResult = $extension->startOfDay('+2 hours');
45
        $this->assertSame('2012-06-04T00:00:00+0200', $startOfDayResult, 'The startOfDay function result did not produce the expected result');
46
47
        $startOfDayResult = $extension->startOfDay('-5 days');
48
        $this->assertSame('2012-05-29T00:00:00+0200', $startOfDayResult, 'The startOfDay function result did not produce the expected result');
49
50
        $startOfDayResult = $extension->startOfDay('+1 month');
51
        $this->assertSame('2012-07-03T00:00:00+0200', $startOfDayResult, 'The startOfDay function result did not produce the expected result');
52
53
        $startOfDayResult = $extension->startOfDay('15-05-2012');
54
        $this->assertSame('2012-05-15T00:00:00+0200', $startOfDayResult, 'The startOfDay function result did not produce the expected result');
55
56
        $startOfDayResult = $extension->startOfDay('2012-05-15');
57
        $this->assertSame('2012-05-15T00:00:00+0200', $startOfDayResult, 'The startOfDay function result did not produce the expected result');
58
59
        $startOfDayResult = $extension->startOfDay('15.05.2012');
60
        $this->assertSame('2012-05-15T00:00:00+0200', $startOfDayResult, 'The startOfDay function result did not produce the expected result');
61
    }
62
63
64
    /**
65
     * @return BuiltInFunctionsExtension
66
     */
67
    private function getExtension()
68
    {
69
        $now = new \DateTime("2012-06-03T22:22:22+0200");
70
71
        $tokenStorage = $this->prophesize(TokenStorageInterface::class);
72
        $provider = $this->prophesize(CurrentDateTimeProvider::class);
73
        $provider->get()->willReturn($now);
74
        $extension = new BuiltInFunctionsExtension($tokenStorage->reveal(), $provider->reveal());
75
76
        return $extension;
77
    }
78
}
79