All Data Structures Functions Variables Pages
DateTimeCalculatorUtilTest.php
1 <?php
2  /*********************************************************************************
3  * Zurmo is a customer relationship management program developed by
4  * Zurmo, Inc. Copyright (C) 2017 Zurmo Inc.
5  *
6  * Zurmo is free software; you can redistribute it and/or modify it under
7  * the terms of the GNU Affero General Public License version 3 as published by the
8  * Free Software Foundation with the addition of the following permission added
9  * to Section 15 as permitted in Section 7(a): FOR ANY PART OF THE COVERED WORK
10  * IN WHICH THE COPYRIGHT IS OWNED BY ZURMO, ZURMO DISCLAIMS THE WARRANTY
11  * OF NON INFRINGEMENT OF THIRD PARTY RIGHTS.
12  *
13  * Zurmo is distributed in the hope that it will be useful, but WITHOUT
14  * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
15  * FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more
16  * details.
17  *
18  * You should have received a copy of the GNU Affero General Public License along with
19  * this program; if not, see http://www.gnu.org/licenses or write to the Free
20  * Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
21  * 02110-1301 USA.
22  *
23  * You can contact Zurmo, Inc. with a mailing address at 27 North Wacker Drive
24  * Suite 370 Chicago, IL 60606. or at email address contact@zurmo.com.
25  *
26  * The interactive user interfaces in original and modified versions
27  * of this program must display Appropriate Legal Notices, as required under
28  * Section 5 of the GNU Affero General Public License version 3.
29  *
30  * In accordance with Section 7(b) of the GNU Affero General Public License version 3,
31  * these Appropriate Legal Notices must retain the display of the Zurmo
32  * logo and Zurmo copyright notice. If the display of the logo is not reasonably
33  * feasible for technical reasons, the Appropriate Legal Notices must display the words
34  * "Copyright Zurmo Inc. 2017. All rights reserved".
35  ********************************************************************************/
36 
38  {
39  public function testCalculateNew()
40  {
41  //Test Today.
43  new DateTime(null, new DateTimeZone(Yii::app()->timeZoneHelper->getForCurrentUser())));
44  $todayDateTime = new DateTime(null, new DateTimeZone(Yii::app()->timeZoneHelper->getForCurrentUser()));
45  $today = Yii::app()->dateFormatter->format(DatabaseCompatibilityUtil::getDateFormat(),
46  $todayDateTime->getTimeStamp());
47  $this->assertEquals($today, $todayDateStamp);
48  //Test Tomorrow.
50  new DateTime(null, new DateTimeZone(Yii::app()->timeZoneHelper->getForCurrentUser())));
51  $tomorrowDateTime = new DateTime(null, new DateTimeZone(Yii::app()->timeZoneHelper->getForCurrentUser()));
52  $tomorrow = Yii::app()->dateFormatter->format(DatabaseCompatibilityUtil::getDateFormat(),
53  $tomorrowDateTime->getTimeStamp() + (60 * 60 *24));
54  $this->assertEquals($tomorrow, $tomorrowDateStamp);
55  //Test Yesterday.
57  new DateTime(null, new DateTimeZone(Yii::app()->timeZoneHelper->getForCurrentUser())));
58  $yesterdayDateTime = new DateTime(null, new DateTimeZone(Yii::app()->timeZoneHelper->getForCurrentUser()));
59  $yesterday = Yii::app()->dateFormatter->format(DatabaseCompatibilityUtil::getDateFormat(),
60  $yesterdayDateTime->getTimeStamp() - (60 * 60 *24));
61  $this->assertEquals($yesterday, $yesterdayDateStamp);
62  //Test Now.
64  new DateTime(null, new DateTimeZone(Yii::app()->timeZoneHelper->getForCurrentUser())));
65  $nowDateTime = new DateTime(null, new DateTimeZone(Yii::app()->timeZoneHelper->getForCurrentUser()));
66  $this->assertWithinTolerance($nowDateTime->getTimeStamp(),
67  DateTimeUtil::convertDbFormatDateTimeToTimestamp($nowDateTimeStamp), 1);
68 
69  //Now test all calculations using a different time zone.
70  $this->assertNotEquals('Europe/Malta', Yii::app()->timeZoneHelper->getForCurrentUser());
71  //Test Today.
73  new DateTime(null, new DateTimeZone('Europe/Malta')));
74  $todayDateTime = new DateTime(null, new DateTimeZone('Europe/Malta'));
75  $today = Yii::app()->dateFormatter->format(DatabaseCompatibilityUtil::getDateFormat(),
76  $todayDateTime->getTimeStamp());
77  $this->assertEquals($today, $todayDateStamp);
78  //Test Tomorrow.
80  new DateTime(null, new DateTimeZone('Europe/Malta')));
81  $tomorrowDateTime = new DateTime(null, new DateTimeZone('Europe/Malta'));
82  $tomorrow = Yii::app()->dateFormatter->format(DatabaseCompatibilityUtil::getDateFormat(),
83  $tomorrowDateTime->getTimeStamp() + (60 * 60 *24));
84  $this->assertEquals($tomorrow, $tomorrowDateStamp);
85  //Test Yesterday.
87  new DateTime(null, new DateTimeZone('Europe/Malta')));
88  $yesterdayDateTime = new DateTime(null, new DateTimeZone('Europe/Malta'));
89  $yesterday = Yii::app()->dateFormatter->format(DatabaseCompatibilityUtil::getDateFormat(),
90  $yesterdayDateTime->getTimeStamp() - (60 * 60 *24));
91  $this->assertEquals($yesterday, $yesterdayDateStamp);
92  //Test Now.
94  new DateTime(null, new DateTimeZone('Europe/Malta')));
95  $nowDateTime = new DateTime(null, new DateTimeZone('Europe/Malta'));
96  $this->assertWithinTolerance($nowDateTime->getTimeStamp(),
97  DateTimeUtil::convertDbFormatDateTimeToTimestamp($nowDateTimeStamp), 1);
98  }
99 
104  {
105  DateTimeCalculatorUtil::calculateNew(1231, new DateTime());
106  }
107  }
108 ?>
static calculateNew($calculation, DateTime $dateTime)
Generated on Fri May 29 2020 07:10:26