~tcuthbert/wordpress/openstack-objectstorage

« back to all changes in this revision

Viewing changes to vendor/sebastian/comparator/tests/DateTimeComparatorTest.php

  • Committer: Jacek Nykis
  • Date: 2015-02-11 15:35:31 UTC
  • Revision ID: jacek.nykis@canonical.com-20150211153531-hmy6zi0ov2qfkl0b
Initial commit

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
<?php
 
2
/*
 
3
 * This file is part of the Comparator package.
 
4
 *
 
5
 * (c) Sebastian Bergmann <sebastian@phpunit.de>
 
6
 *
 
7
 * For the full copyright and license information, please view the LICENSE
 
8
 * file that was distributed with this source code.
 
9
 */
 
10
 
 
11
namespace SebastianBergmann\Comparator;
 
12
 
 
13
use DateTime;
 
14
use DateTimeZone;
 
15
 
 
16
/**
 
17
 * @coversDefaultClass SebastianBergmann\Comparator\DateTimeComparator
 
18
 *
 
19
 * @package    Comparator
 
20
 * @author     Jeff Welch <whatthejeff@gmail.com>
 
21
 * @copyright  Sebastian Bergmann <sebastian@phpunit.de>
 
22
 * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
 
23
 * @link       http://www.github.com/sebastianbergmann/comparator
 
24
 */
 
25
class DateTimeComparatorTest extends \PHPUnit_Framework_TestCase
 
26
{
 
27
    private $comparator;
 
28
 
 
29
    protected function setUp()
 
30
    {
 
31
        $this->comparator = new DateTimeComparator;
 
32
    }
 
33
 
 
34
    public function acceptsFailsProvider()
 
35
    {
 
36
        $datetime = new DateTime;
 
37
 
 
38
        return array(
 
39
          array($datetime, null),
 
40
          array(null, $datetime),
 
41
          array(null, null)
 
42
        );
 
43
    }
 
44
 
 
45
    public function assertEqualsSucceedsProvider()
 
46
    {
 
47
        return array(
 
48
          array(
 
49
            new DateTime('2013-03-29 04:13:35', new DateTimeZone('America/New_York')),
 
50
            new DateTime('2013-03-29 04:13:35', new DateTimeZone('America/New_York'))
 
51
          ),
 
52
          array(
 
53
            new DateTime('2013-03-29 04:13:35', new DateTimeZone('America/New_York')),
 
54
            new DateTime('2013-03-29 04:13:25', new DateTimeZone('America/New_York')),
 
55
            10
 
56
          ),
 
57
          array(
 
58
            new DateTime('2013-03-29 04:13:35', new DateTimeZone('America/New_York')),
 
59
            new DateTime('2013-03-29 04:14:40', new DateTimeZone('America/New_York')),
 
60
            65
 
61
          ),
 
62
          array(
 
63
            new DateTime('2013-03-29', new DateTimeZone('America/New_York')),
 
64
            new DateTime('2013-03-29', new DateTimeZone('America/New_York'))
 
65
          ),
 
66
          array(
 
67
            new DateTime('2013-03-29 04:13:35', new DateTimeZone('America/New_York')),
 
68
            new DateTime('2013-03-29 03:13:35', new DateTimeZone('America/Chicago'))
 
69
          ),
 
70
          array(
 
71
            new DateTime('2013-03-29 04:13:35', new DateTimeZone('America/New_York')),
 
72
            new DateTime('2013-03-29 03:13:49', new DateTimeZone('America/Chicago')),
 
73
            15
 
74
          ),
 
75
          array(
 
76
            new DateTime('2013-03-30', new DateTimeZone('America/New_York')),
 
77
            new DateTime('2013-03-29 23:00:00', new DateTimeZone('America/Chicago'))
 
78
          ),
 
79
          array(
 
80
            new DateTime('2013-03-30', new DateTimeZone('America/New_York')),
 
81
            new DateTime('2013-03-29 23:01:30', new DateTimeZone('America/Chicago')),
 
82
            100
 
83
          ),
 
84
          array(
 
85
            new DateTime('@1364616000'),
 
86
            new DateTime('2013-03-29 23:00:00', new DateTimeZone('America/Chicago'))
 
87
          ),
 
88
          array(
 
89
            new DateTime('2013-03-29T05:13:35-0500'),
 
90
            new DateTime('2013-03-29T04:13:35-0600')
 
91
          )
 
92
        );
 
93
    }
 
94
 
 
95
    public function assertEqualsFailsProvider()
 
96
    {
 
97
        return array(
 
98
          array(
 
99
            new DateTime('2013-03-29 04:13:35', new DateTimeZone('America/New_York')),
 
100
            new DateTime('2013-03-29 03:13:35', new DateTimeZone('America/New_York'))
 
101
          ),
 
102
          array(
 
103
            new DateTime('2013-03-29 04:13:35', new DateTimeZone('America/New_York')),
 
104
            new DateTime('2013-03-29 03:13:35', new DateTimeZone('America/New_York')),
 
105
            3500
 
106
          ),
 
107
          array(
 
108
            new DateTime('2013-03-29 04:13:35', new DateTimeZone('America/New_York')),
 
109
            new DateTime('2013-03-29 05:13:35', new DateTimeZone('America/New_York')),
 
110
            3500
 
111
          ),
 
112
          array(
 
113
            new DateTime('2013-03-29', new DateTimeZone('America/New_York')),
 
114
            new DateTime('2013-03-30', new DateTimeZone('America/New_York'))
 
115
          ),
 
116
          array(
 
117
            new DateTime('2013-03-29', new DateTimeZone('America/New_York')),
 
118
            new DateTime('2013-03-30', new DateTimeZone('America/New_York')),
 
119
            43200
 
120
          ),
 
121
          array(
 
122
            new DateTime('2013-03-29 04:13:35', new DateTimeZone('America/New_York')),
 
123
            new DateTime('2013-03-29 04:13:35', new DateTimeZone('America/Chicago')),
 
124
          ),
 
125
          array(
 
126
            new DateTime('2013-03-29 04:13:35', new DateTimeZone('America/New_York')),
 
127
            new DateTime('2013-03-29 04:13:35', new DateTimeZone('America/Chicago')),
 
128
            3500
 
129
          ),
 
130
          array(
 
131
            new DateTime('2013-03-30', new DateTimeZone('America/New_York')),
 
132
            new DateTime('2013-03-30', new DateTimeZone('America/Chicago'))
 
133
          ),
 
134
          array(
 
135
            new DateTime('2013-03-29T05:13:35-0600'),
 
136
            new DateTime('2013-03-29T04:13:35-0600')
 
137
          ),
 
138
          array(
 
139
            new DateTime('2013-03-29T05:13:35-0600'),
 
140
            new DateTime('2013-03-29T05:13:35-0500')
 
141
          ),
 
142
        );
 
143
    }
 
144
 
 
145
    /**
 
146
     * @covers  ::accepts
 
147
     */
 
148
    public function testAcceptsSucceeds()
 
149
    {
 
150
        $this->assertTrue(
 
151
          $this->comparator->accepts(
 
152
            new DateTime,
 
153
            new DateTime
 
154
          )
 
155
        );
 
156
    }
 
157
 
 
158
    /**
 
159
     * @covers       ::accepts
 
160
     * @dataProvider acceptsFailsProvider
 
161
     */
 
162
    public function testAcceptsFails($expected, $actual)
 
163
    {
 
164
        $this->assertFalse(
 
165
          $this->comparator->accepts($expected, $actual)
 
166
        );
 
167
    }
 
168
 
 
169
    /**
 
170
     * @covers       ::assertEquals
 
171
     * @dataProvider assertEqualsSucceedsProvider
 
172
     */
 
173
    public function testAssertEqualsSucceeds($expected, $actual, $delta = 0.0)
 
174
    {
 
175
        $exception = null;
 
176
 
 
177
        try {
 
178
            $this->comparator->assertEquals($expected, $actual, $delta);
 
179
        }
 
180
 
 
181
        catch (ComparisonFailure $exception) {
 
182
        }
 
183
 
 
184
        $this->assertNull($exception, 'Unexpected ComparisonFailure');
 
185
    }
 
186
 
 
187
    /**
 
188
     * @covers       ::assertEquals
 
189
     * @dataProvider assertEqualsFailsProvider
 
190
     */
 
191
    public function testAssertEqualsFails($expected, $actual, $delta = 0.0)
 
192
    {
 
193
        $this->setExpectedException(
 
194
          'SebastianBergmann\\Comparator\\ComparisonFailure',
 
195
          'Failed asserting that two DateTime objects are equal.'
 
196
        );
 
197
        $this->comparator->assertEquals($expected, $actual, $delta);
 
198
    }
 
199
}