calendarui/tsrc/unittest_calencommonutils/src/test_calendateutils.cpp
changeset 45 b6db4fd4947b
equal deleted inserted replaced
23:fd30d51f876b 45:b6db4fd4947b
       
     1 /*
       
     2 * Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
       
     3 * All rights reserved.
       
     4 * This component and the accompanying materials are made available
       
     5 * under the terms of "Eclipse Public License v1.0"
       
     6 * which accompanies this distribution, and is available
       
     7 * at the URL "http://www.eclipse.org/legal/epl-v10.html".
       
     8 *
       
     9 * Initial Contributors:
       
    10 * Nokia Corporation - initial contribution.
       
    11 *
       
    12 * Contributors:
       
    13 *
       
    14 * Description:
       
    15 *
       
    16 */
       
    17 
       
    18 #include <QtTest/QtTest>
       
    19 #include <QDateTime>
       
    20 
       
    21 #include "calendateutils.h"
       
    22 #include "test_calendateutils.h"
       
    23 
       
    24 /*!
       
    25 	\class TestCalenDateUtils
       
    26 
       
    27 	This is unittest class for CalenDateUtils apis.
       
    28  */
       
    29  
       
    30 TestCalenDateUtils::TestCalenDateUtils()
       
    31 {
       
    32     // No implementation yet
       
    33 }
       
    34 
       
    35 TestCalenDateUtils::~TestCalenDateUtils()
       
    36 {
       
    37     // No implementation yet
       
    38 }
       
    39 
       
    40 /*!
       
    41 	This function is called to before every testcase.
       
    42  */
       
    43 void TestCalenDateUtils::init()
       
    44 {
       
    45     // No implementation yet
       
    46 }
       
    47 
       
    48 /*!
       
    49 	This function is called after every testcase.
       
    50  */
       
    51 void TestCalenDateUtils::cleanup()
       
    52 {
       
    53     // No implementation yet
       
    54 }
       
    55 
       
    56 /*!
       
    57     This function is to test the api of CalenDateUtils::onSameDay.
       
    58  */
       
    59 void TestCalenDateUtils::test_onSameDay()
       
    60 {
       
    61 	QDateTime firstParam(QDate(2010, 10, 9));
       
    62 	QDateTime secondParam(QDate(2009, 22, 9));
       
    63 	QCOMPARE(CalenDateUtils::onSameDay(firstParam, secondParam), false);
       
    64 
       
    65 	firstParam = QDateTime(QDate(2010, 2, 30));
       
    66 	secondParam = QDateTime::currentDateTime();
       
    67 	QCOMPARE(CalenDateUtils::onSameDay(firstParam, secondParam), false);
       
    68 
       
    69 	firstParam = QDateTime(QDate(2010, 12, 5), QTime(6, 44));
       
    70 	secondParam = QDateTime(QDate(2010, 12, 5), QTime(9, 33));
       
    71 	QCOMPARE(CalenDateUtils::onSameDay(firstParam, secondParam), true);
       
    72 
       
    73 	firstParam = QDateTime(QDate(-1756, 12, 5));
       
    74 	secondParam = QDateTime(QDate(1900, 5, 9));
       
    75 	QCOMPARE(CalenDateUtils::onSameDay(firstParam, secondParam), false);
       
    76 
       
    77 }
       
    78 
       
    79 /*!
       
    80     This function is to test the api of CalenDateUtils::onSameMonth.
       
    81  */
       
    82 void TestCalenDateUtils::test_onSameMonth()
       
    83 {
       
    84 	QDateTime firstParam(QDate(2010, 10, 9));
       
    85 	QDateTime secondParam(QDate(2010, 22, 9));
       
    86 	QCOMPARE(CalenDateUtils::onSameMonth(firstParam, secondParam), false);
       
    87 
       
    88 	firstParam = QDateTime(QDate(2010, 2, 13));
       
    89 	secondParam = QDateTime(QDate(2009, 2, 3));
       
    90 	QCOMPARE(CalenDateUtils::onSameMonth(firstParam, secondParam), false);
       
    91 
       
    92 	firstParam = QDateTime(QDate(2010, 12, 5));
       
    93 	secondParam = QDateTime(QDate(2010, 12, 6));
       
    94 	QCOMPARE(CalenDateUtils::onSameMonth(firstParam, secondParam), true);
       
    95 
       
    96 	firstParam = QDateTime(QDate(2010, 13, 5));
       
    97 	secondParam = QDateTime(QDate(2010, 12, 9));
       
    98 	QCOMPARE(CalenDateUtils::onSameMonth(firstParam, secondParam), false);
       
    99 }
       
   100 
       
   101 /*!
       
   102     This function is to test the api of CalenDateUtils::beginningOfDay.
       
   103  */
       
   104 void TestCalenDateUtils::test_beginningOfDay()
       
   105 {
       
   106 	QDateTime expectedDate(QDate(2010, 5, 4), QTime(0, 0));
       
   107 	QDateTime param(QDate(2010, 5, 4), QTime(15, 44));
       
   108 	QCOMPARE(CalenDateUtils::beginningOfDay(param), expectedDate);
       
   109 
       
   110 	expectedDate = QDateTime(QDate(2010, 3, 3), QTime(0, 0));
       
   111 	param = QDateTime(QDate(2010, 3, 3), QTime(2, 33));
       
   112 	QCOMPARE(CalenDateUtils::beginningOfDay(param), expectedDate);
       
   113 
       
   114 	expectedDate = QDateTime(QDate(2010, 3, 5));
       
   115 	param = QDateTime(QDate(2010, 3, 5), QTime(23, 59, 59, 999));
       
   116 	QCOMPARE(CalenDateUtils::beginningOfDay(param), expectedDate);
       
   117 
       
   118 	expectedDate = QDateTime(QDate(2010, 12, 15), QTime(0, 0));
       
   119 	param = QDateTime(QDate(2010, 12, 15), QTime(24, 59));
       
   120 	QCOMPARE(CalenDateUtils::beginningOfDay(param), expectedDate);
       
   121 }
       
   122 
       
   123 /*!
       
   124     This function is to test the api of CalenDateUtils::displayTimeOnDay.
       
   125  */
       
   126 void TestCalenDateUtils::test_displayTimeOnDay()
       
   127 {
       
   128 	QDateTime firstParam(QDate(2010, 10, 9), QTime(12, 45));
       
   129 	QDateTime secondParam(QDate(2010, 10, 9));
       
   130 	QDateTime actualOutput;
       
   131 	QDateTime expectedOutput = firstParam;
       
   132 	
       
   133 	actualOutput = CalenDateUtils::displayTimeOnDay(firstParam, secondParam);
       
   134 	QCOMPARE(actualOutput, expectedOutput);
       
   135 
       
   136 	firstParam = QDateTime(QDate(2010, 2, 13));
       
   137 	secondParam = QDateTime(QDate(2009, 2, 3), QTime(23, 59));
       
   138 	actualOutput = QDateTime();
       
   139 	expectedOutput = CalenDateUtils::beginningOfDay(secondParam);
       
   140 	
       
   141 	actualOutput = CalenDateUtils::displayTimeOnDay(firstParam, secondParam);
       
   142 	QCOMPARE(actualOutput, expectedOutput);
       
   143 
       
   144 	firstParam = QDateTime(QDate(2010, 1, 5));
       
   145 	secondParam = QDateTime(QDate(2010, 13, 6));
       
   146 	actualOutput = QDateTime();
       
   147 	
       
   148 	actualOutput = CalenDateUtils::displayTimeOnDay(firstParam, secondParam);
       
   149 	QVERIFY(!actualOutput.isValid());
       
   150 
       
   151 }
       
   152 
       
   153 /*!
       
   154     This function is to test the api of CalenDateUtils::displayTimeOnDay.
       
   155  */
       
   156 void TestCalenDateUtils::test_timeRangesIntersect()
       
   157 {
       
   158 	QDateTime firstStartTime(QDate(2010, 10, 9), QTime(12, 45));
       
   159 	QDateTime firstEndTime(QDate(2010, 10, 10));
       
   160 	QDateTime secondStartTime(QDate(2010, 6, 5));
       
   161 	QDateTime secondEndTime(QDate(2010, 10, 9));
       
   162 
       
   163 	bool actualOutput = CalenDateUtils::timeRangesIntersect(firstStartTime,
       
   164 	                                                        firstEndTime,
       
   165 	                                                        secondStartTime,
       
   166 	                                                        secondEndTime);
       
   167 	QCOMPARE(actualOutput, false);
       
   168 
       
   169 	firstStartTime = QDateTime(QDate(2009, 5, 7));
       
   170 	firstEndTime = QDateTime(QDate(2009, 5, 6));
       
   171 	secondStartTime = QDateTime(QDate(2009, 5, 6));
       
   172 	secondEndTime = QDateTime(QDate(2009, 5, 6));
       
   173 	actualOutput = true;
       
   174 
       
   175 	actualOutput = CalenDateUtils::timeRangesIntersect(firstStartTime,
       
   176 	                                                   firstEndTime,
       
   177 	                                                   secondStartTime,
       
   178 	                                                   secondEndTime);
       
   179 	QCOMPARE(actualOutput, false);
       
   180 
       
   181 	firstStartTime = QDateTime(QDate(2009, 5, 7));
       
   182 	firstEndTime = QDateTime(QDate(2009, 6, 11));
       
   183 	secondStartTime = QDateTime(QDate(2009, 5, 7), QTime(2,0));
       
   184 	secondEndTime = QDateTime(QDate(2009, 5, 8));
       
   185 	actualOutput = false;
       
   186 
       
   187 	actualOutput = CalenDateUtils::timeRangesIntersect(firstStartTime,
       
   188 	                                                   firstEndTime,
       
   189 	                                                   secondStartTime,
       
   190 	                                                   secondEndTime);
       
   191 	QCOMPARE(actualOutput, true);
       
   192 
       
   193 }
       
   194 
       
   195 /*!
       
   196     This function is to test the api of CalenDateUtils::isValidDay.
       
   197  */
       
   198 void TestCalenDateUtils::test_isValidDay()
       
   199 {
       
   200 	QVERIFY(!CalenDateUtils::isValidDay(QDateTime(QDate(1899,12,28))));
       
   201 	
       
   202 	QVERIFY(CalenDateUtils::isValidDay(QDateTime(QDate(2100,12,31))));
       
   203 	
       
   204 	QVERIFY(CalenDateUtils::isValidDay(QDateTime(QDate(2100,12,30))));
       
   205 	
       
   206 	QVERIFY(!CalenDateUtils::isValidDay(QDateTime(QDate(2100,2,31))));
       
   207 
       
   208 }
       
   209 
       
   210 /*!
       
   211     This function is to test the api of CalenDateUtils::limitToValidTime.
       
   212  */
       
   213 void TestCalenDateUtils::test_limitToValidTime()
       
   214 {
       
   215 	QDateTime dateTime(QDate(1899, 12, 28));
       
   216 
       
   217 	QDateTime actualOutput = CalenDateUtils::limitToValidTime(dateTime);
       
   218 	QCOMPARE(actualOutput , QDateTime(QDate(1900,1,1)));
       
   219 
       
   220 	dateTime = QDateTime(QDate(2010, 10, 20));
       
   221 	actualOutput = CalenDateUtils::limitToValidTime(dateTime);
       
   222 	QCOMPARE(actualOutput, QDateTime(QDate(2010,10,20)));
       
   223 
       
   224 	dateTime = QDateTime();
       
   225 	actualOutput = CalenDateUtils::limitToValidTime(dateTime);
       
   226 	QCOMPARE(actualOutput, QDateTime(QDate(1900,1,1)));
       
   227 
       
   228 	dateTime = QDateTime(QDate(2101, 1, 1));
       
   229 	actualOutput = CalenDateUtils::limitToValidTime(dateTime);
       
   230 	QCOMPARE(actualOutput, QDateTime(QDate(2100,12,31)));
       
   231 
       
   232 	dateTime = QDateTime(QDate(2100, 12, 31), QTime(12,55));
       
   233 	actualOutput = CalenDateUtils::limitToValidTime(dateTime);
       
   234 	QCOMPARE(actualOutput, QDateTime(QDate(2100,12,31)));
       
   235 	
       
   236 	dateTime = QDateTime(QDate(2010,2,31));
       
   237 	actualOutput = CalenDateUtils::limitToValidTime(dateTime);
       
   238 	QCOMPARE(actualOutput, QDateTime(QDate(1900,1,1)));
       
   239 
       
   240 }
       
   241 
       
   242 /*!
       
   243     This function is to test the api of CalenDateUtils::maxTime.
       
   244  */
       
   245 void TestCalenDateUtils::test_maxTime()
       
   246 {
       
   247 	QCOMPARE(CalenDateUtils::maxTime() , QDateTime(QDate(2100,12,31)));
       
   248 }
       
   249 
       
   250 /*!
       
   251     This function is to test the api of CalenDateUtils::minTime.
       
   252  */
       
   253 void TestCalenDateUtils::test_minTime()
       
   254 {
       
   255 	QCOMPARE(CalenDateUtils::minTime() , QDateTime(QDate(1900,1,1)));
       
   256 }
       
   257 
       
   258 /*!
       
   259     This function is to test the api of CalenDateUtils::timeOfDay.
       
   260  */
       
   261 void TestCalenDateUtils::test_timeOfDay()
       
   262 {
       
   263 	QDateTime dateTime = QDateTime(QDate(1900, 1, 1));
       
   264 	int actulOutput = CalenDateUtils::timeOfDay(dateTime);
       
   265 	int expectedOutput = 0;
       
   266 	QCOMPARE(actulOutput, expectedOutput);
       
   267 
       
   268 	dateTime = QDateTime(QDate(2010, 12, 8), QTime(12, 30));
       
   269 	expectedOutput = 750;
       
   270 	actulOutput = CalenDateUtils::timeOfDay(dateTime);
       
   271 	QCOMPARE(actulOutput, expectedOutput);
       
   272 
       
   273 	dateTime = QDateTime(QDate(2010, 12, 8), QTime(6, 59, 59, 999));
       
   274 	expectedOutput = 420;
       
   275 	actulOutput = CalenDateUtils::timeOfDay(dateTime);
       
   276 	QCOMPARE(actulOutput, expectedOutput);
       
   277 
       
   278 	dateTime = QDateTime(QDate(2010, 4, 31), QTime(7, 0));
       
   279 	expectedOutput = 420;
       
   280 	actulOutput = CalenDateUtils::timeOfDay(dateTime);
       
   281 	QCOMPARE(actulOutput, expectedOutput);
       
   282 
       
   283 	dateTime = QDateTime(QDate(2010, 4, 7), QTime(6, 59, 59));
       
   284 	expectedOutput = 419;
       
   285 	actulOutput = CalenDateUtils::timeOfDay(dateTime);
       
   286 	QCOMPARE(actulOutput, expectedOutput);
       
   287 
       
   288 	dateTime = QDateTime(QDate(2010, 4, 7), QTime(12, 60, 60));
       
   289 	expectedOutput = 0;
       
   290 	actulOutput = CalenDateUtils::timeOfDay(dateTime);
       
   291 	QCOMPARE(actulOutput, expectedOutput);
       
   292 }
       
   293 
       
   294 /*!
       
   295     This function is to test the api of CalenDateUtils::roundToPreviousHour.
       
   296  */
       
   297 void TestCalenDateUtils::test_roundToPreviousHour()
       
   298 {
       
   299 	QDateTime dateTime = QDateTime(QDate(1900, 1, 1), QTime(23, 59, 59));
       
   300 	QDateTime actulOutput = CalenDateUtils::roundToPreviousHour(dateTime);
       
   301 	QDateTime expectedOutput(QDate(1900, 1, 1), QTime(23, 0));
       
   302 	QCOMPARE(actulOutput, expectedOutput);
       
   303 
       
   304 	dateTime = QDateTime(QDate(2010, 12, 8), QTime(12, 30));
       
   305 	expectedOutput = QDateTime(QDate(2010, 12, 8), QTime(12, 0));
       
   306 	actulOutput = CalenDateUtils::roundToPreviousHour(dateTime);
       
   307 	QCOMPARE(actulOutput, expectedOutput);
       
   308 
       
   309 	dateTime = QDateTime(QDate(2010, 12, 8), QTime(6, 59, 59, 999));
       
   310 	expectedOutput = QDateTime(QDate(2010, 12, 8), QTime(6, 0));
       
   311 	actulOutput = CalenDateUtils::roundToPreviousHour(dateTime);
       
   312 	QCOMPARE(actulOutput, expectedOutput);
       
   313 
       
   314 	dateTime = QDateTime(QDate(2010, 4, 3), QTime(12, 60, 60));
       
   315 	expectedOutput = QDateTime(QDate(2010, 4, 3));
       
   316 	actulOutput = CalenDateUtils::roundToPreviousHour(dateTime);
       
   317 	QCOMPARE(actulOutput, expectedOutput);
       
   318 }
       
   319 
       
   320 /*!
       
   321     This function is to test the api of CalenDateUtils::roundToPreviousHour.
       
   322  */
       
   323 void TestCalenDateUtils::test_roundToPreviousHourFromMinutes()
       
   324 {
       
   325 	int minutes = 145;
       
   326 	int actulOutput = CalenDateUtils::roundToPreviousHour(minutes);
       
   327 	int expectedOutput = 120;
       
   328 	QCOMPARE(actulOutput, expectedOutput);
       
   329 
       
   330 	minutes = -255;
       
   331 	expectedOutput = -240;
       
   332 	actulOutput = CalenDateUtils::roundToPreviousHour(minutes);
       
   333 	QCOMPARE(actulOutput, expectedOutput);
       
   334 
       
   335 	minutes = 606;
       
   336 	expectedOutput = 600;
       
   337 	actulOutput = CalenDateUtils::roundToPreviousHour(minutes);
       
   338 	QCOMPARE(actulOutput, expectedOutput);
       
   339 }
       
   340 
       
   341 /*!
       
   342     This function is to test the api of CalenDateUtils::now.
       
   343  */
       
   344 void TestCalenDateUtils::test_now()
       
   345 {
       
   346 	QCOMPARE(CalenDateUtils::now() , QDateTime::currentDateTime());
       
   347 }
       
   348 
       
   349 /*!
       
   350     This function is to test the api of CalenDateUtils::today.
       
   351  */
       
   352 void TestCalenDateUtils::test_today()
       
   353 {
       
   354 	QDateTime expectedTime = QDateTime::currentDateTime();
       
   355 	expectedTime.setTime(QTime(0,0));
       
   356 	QCOMPARE(CalenDateUtils::today() , expectedTime );
       
   357 }
       
   358 
       
   359 /*!
       
   360     This function is to test the api of CalenDateUtils::isOnToday.
       
   361  */
       
   362 void TestCalenDateUtils::test_isOnToday()
       
   363 {
       
   364 	QVERIFY(CalenDateUtils::isOnToday(QDateTime::currentDateTime()));
       
   365 	QDateTime dateTime = QDateTime::currentDateTime().addDays(1);
       
   366 	QVERIFY(!CalenDateUtils::isOnToday(dateTime));
       
   367 }
       
   368 
       
   369 /*!
       
   370     This function is to test the api of CalenDateUtils::defaultTime.
       
   371  */
       
   372 void TestCalenDateUtils::test_defaultTime()
       
   373 {
       
   374 	QDateTime dateTime = QDateTime(QDate(2010, 3, 2));
       
   375 	QDateTime expectedOutput = dateTime;
       
   376 	// 8:00 am is default time for Calendar Editor
       
   377 	expectedOutput.setTime(QTime(8, 0));
       
   378 	QDateTime actualOutput = CalenDateUtils::defaultTime(dateTime);
       
   379 	QCOMPARE(actualOutput, expectedOutput);
       
   380 }
       
   381 
       
   382 /*!
       
   383     This function is to test the api of CalenDateUtils::futureOf.
       
   384  */
       
   385 void TestCalenDateUtils::test_futureOf()
       
   386 {
       
   387 	QDateTime dateTime = QDateTime(QDate(2009, 10, 30));
       
   388 	QDateTime expectedOutput = QDateTime(QDate(2009, 11, 26));
       
   389 	QDateTime actualOutput = CalenDateUtils::futureOf(dateTime, 27);
       
   390 	QCOMPARE(actualOutput, expectedOutput);
       
   391 }
       
   392 
       
   393 // End of file	--Don't remove this.