calendarui/tsrc/unittest_calencommonutils/src/test_calendateutils.cpp
changeset 49 5de72ea7a065
child 50 579cc610882e
equal deleted inserted replaced
37:360d55486d7f 49:5de72ea7a065
       
     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::isNullTime.
       
   212  */
       
   213 void TestCalenDateUtils::test_isNullTime()
       
   214 {
       
   215 	QDateTime dateTime(QDate(1899,12,28));
       
   216 	
       
   217 	QVERIFY(!CalenDateUtils::isNullTime(dateTime));
       
   218 	
       
   219 	dateTime = QDateTime(QDate(0,0,0));
       
   220 	QVERIFY(!CalenDateUtils::isNullTime(dateTime));
       
   221 	
       
   222 	dateTime = QDateTime();
       
   223 	QVERIFY(CalenDateUtils::isNullTime(dateTime));
       
   224 	
       
   225 	dateTime = QDateTime(QDate(2100,2,31));
       
   226 	QVERIFY(!CalenDateUtils::isNullTime(dateTime));
       
   227 
       
   228 }
       
   229 
       
   230 /*!
       
   231     This function is to test the api of CalenDateUtils::limitToValidTime.
       
   232  */
       
   233 void TestCalenDateUtils::test_limitToValidTime()
       
   234 {
       
   235 	QDateTime dateTime(QDate(1899, 12, 28));
       
   236 
       
   237 	QDateTime actualOutput = CalenDateUtils::limitToValidTime(dateTime);
       
   238 	QCOMPARE(actualOutput , QDateTime(QDate(1900,1,1)));
       
   239 
       
   240 	dateTime = QDateTime(QDate(2010, 10, 20));
       
   241 	actualOutput = CalenDateUtils::limitToValidTime(dateTime);
       
   242 	QCOMPARE(actualOutput, QDateTime(QDate(2010,10,20)));
       
   243 
       
   244 	dateTime = QDateTime();
       
   245 	actualOutput = CalenDateUtils::limitToValidTime(dateTime);
       
   246 	QCOMPARE(actualOutput, QDateTime(QDate(1900,1,1)));
       
   247 
       
   248 	dateTime = QDateTime(QDate(2101, 1, 1));
       
   249 	actualOutput = CalenDateUtils::limitToValidTime(dateTime);
       
   250 	QCOMPARE(actualOutput, QDateTime(QDate(2100,12,31)));
       
   251 
       
   252 	dateTime = QDateTime(QDate(2100, 12, 31), QTime(12,55));
       
   253 	actualOutput = CalenDateUtils::limitToValidTime(dateTime);
       
   254 	QCOMPARE(actualOutput, QDateTime(QDate(2100,12,31)));
       
   255 	
       
   256 	dateTime = QDateTime(QDate(2010,2,31));
       
   257 	actualOutput = CalenDateUtils::limitToValidTime(dateTime);
       
   258 	QCOMPARE(actualOutput, QDateTime(QDate(1900,1,1)));
       
   259 
       
   260 }
       
   261 
       
   262 /*!
       
   263     This function is to test the api of CalenDateUtils::maxTime.
       
   264  */
       
   265 void TestCalenDateUtils::test_maxTime()
       
   266 {
       
   267 	QCOMPARE(CalenDateUtils::maxTime() , QDateTime(QDate(2100,12,31)));
       
   268 }
       
   269 
       
   270 /*!
       
   271     This function is to test the api of CalenDateUtils::minTime.
       
   272  */
       
   273 void TestCalenDateUtils::test_minTime()
       
   274 {
       
   275 	QCOMPARE(CalenDateUtils::minTime() , QDateTime(QDate(1900,1,1)));
       
   276 }
       
   277 
       
   278 /*!
       
   279     This function is to test the api of CalenDateUtils::timeOfDay.
       
   280  */
       
   281 void TestCalenDateUtils::test_timeOfDay()
       
   282 {
       
   283 	QDateTime dateTime = QDateTime(QDate(1900, 1, 1));
       
   284 	int actulOutput = CalenDateUtils::timeOfDay(dateTime);
       
   285 	int expectedOutput = 0;
       
   286 	QCOMPARE(actulOutput, expectedOutput);
       
   287 
       
   288 	dateTime = QDateTime(QDate(2010, 12, 8), QTime(12, 30));
       
   289 	expectedOutput = 750;
       
   290 	actulOutput = CalenDateUtils::timeOfDay(dateTime);
       
   291 	QCOMPARE(actulOutput, expectedOutput);
       
   292 
       
   293 	dateTime = QDateTime(QDate(2010, 12, 8), QTime(6, 59, 59, 999));
       
   294 	expectedOutput = 420;
       
   295 	actulOutput = CalenDateUtils::timeOfDay(dateTime);
       
   296 	QCOMPARE(actulOutput, expectedOutput);
       
   297 
       
   298 	dateTime = QDateTime(QDate(2010, 4, 31), QTime(7, 0));
       
   299 	expectedOutput = 420;
       
   300 	actulOutput = CalenDateUtils::timeOfDay(dateTime);
       
   301 	QCOMPARE(actulOutput, expectedOutput);
       
   302 
       
   303 	dateTime = QDateTime(QDate(2010, 4, 7), QTime(6, 59, 59));
       
   304 	expectedOutput = 419;
       
   305 	actulOutput = CalenDateUtils::timeOfDay(dateTime);
       
   306 	QCOMPARE(actulOutput, expectedOutput);
       
   307 
       
   308 	dateTime = QDateTime(QDate(2010, 4, 7), QTime(12, 60, 60));
       
   309 	expectedOutput = 0;
       
   310 	actulOutput = CalenDateUtils::timeOfDay(dateTime);
       
   311 	QCOMPARE(actulOutput, expectedOutput);
       
   312 }
       
   313 
       
   314 /*!
       
   315     This function is to test the api of CalenDateUtils::roundToPreviousHour.
       
   316  */
       
   317 void TestCalenDateUtils::test_roundToPreviousHour()
       
   318 {
       
   319 	QDateTime dateTime = QDateTime(QDate(1900, 1, 1), QTime(23, 59, 59));
       
   320 	QDateTime actulOutput = CalenDateUtils::roundToPreviousHour(dateTime);
       
   321 	QDateTime expectedOutput(QDate(1900, 1, 1), QTime(23, 0));
       
   322 	QCOMPARE(actulOutput, expectedOutput);
       
   323 
       
   324 	dateTime = QDateTime(QDate(2010, 12, 8), QTime(12, 30));
       
   325 	expectedOutput = QDateTime(QDate(2010, 12, 8), QTime(12, 0));
       
   326 	actulOutput = CalenDateUtils::roundToPreviousHour(dateTime);
       
   327 	QCOMPARE(actulOutput, expectedOutput);
       
   328 
       
   329 	dateTime = QDateTime(QDate(2010, 12, 8), QTime(6, 59, 59, 999));
       
   330 	expectedOutput = QDateTime(QDate(2010, 12, 8), QTime(6, 0));
       
   331 	actulOutput = CalenDateUtils::roundToPreviousHour(dateTime);
       
   332 	QCOMPARE(actulOutput, expectedOutput);
       
   333 
       
   334 	dateTime = QDateTime(QDate(2010, 4, 3), QTime(12, 60, 60));
       
   335 	expectedOutput = QDateTime(QDate(2010, 4, 3));
       
   336 	actulOutput = CalenDateUtils::roundToPreviousHour(dateTime);
       
   337 	QCOMPARE(actulOutput, expectedOutput);
       
   338 }
       
   339 
       
   340 /*!
       
   341     This function is to test the api of CalenDateUtils::roundToPreviousHour.
       
   342  */
       
   343 void TestCalenDateUtils::test_roundToPreviousHourFromMinutes()
       
   344 {
       
   345 	int minutes = 145;
       
   346 	int actulOutput = CalenDateUtils::roundToPreviousHour(minutes);
       
   347 	int expectedOutput = 120;
       
   348 	QCOMPARE(actulOutput, expectedOutput);
       
   349 
       
   350 	minutes = -255;
       
   351 	expectedOutput = -240;
       
   352 	actulOutput = CalenDateUtils::roundToPreviousHour(minutes);
       
   353 	QCOMPARE(actulOutput, expectedOutput);
       
   354 
       
   355 	minutes = 606;
       
   356 	expectedOutput = 600;
       
   357 	actulOutput = CalenDateUtils::roundToPreviousHour(minutes);
       
   358 	QCOMPARE(actulOutput, expectedOutput);
       
   359 }
       
   360 
       
   361 /*!
       
   362     This function is to test the api of CalenDateUtils::now.
       
   363  */
       
   364 void TestCalenDateUtils::test_now()
       
   365 {
       
   366 	QCOMPARE(CalenDateUtils::now() , QDateTime::currentDateTime());
       
   367 }
       
   368 
       
   369 /*!
       
   370     This function is to test the api of CalenDateUtils::today.
       
   371  */
       
   372 void TestCalenDateUtils::test_today()
       
   373 {
       
   374 	QDateTime expectedTime = QDateTime::currentDateTime();
       
   375 	expectedTime.setTime(QTime(0,0));
       
   376 	QCOMPARE(CalenDateUtils::today() , expectedTime );
       
   377 }
       
   378 
       
   379 /*!
       
   380     This function is to test the api of CalenDateUtils::isOnToday.
       
   381  */
       
   382 void TestCalenDateUtils::test_isOnToday()
       
   383 {
       
   384 	QVERIFY(CalenDateUtils::isOnToday(QDateTime::currentDateTime()));
       
   385 	QDateTime dateTime = QDateTime::currentDateTime().addDays(1);
       
   386 	QVERIFY(!CalenDateUtils::isOnToday(dateTime));
       
   387 }
       
   388 
       
   389 /*!
       
   390     This function is to test the api of CalenDateUtils::defaultTime.
       
   391  */
       
   392 void TestCalenDateUtils::test_defaultTime()
       
   393 {
       
   394 	QDateTime dateTime = QDateTime(QDate(2010, 3, 2));
       
   395 	QDateTime expectedOutput = dateTime;
       
   396 	// 8:00 am is default time for Calendar Editor
       
   397 	expectedOutput.setTime(QTime(8, 0));
       
   398 	QDateTime actualOutput = CalenDateUtils::defaultTime(dateTime);
       
   399 	QCOMPARE(actualOutput, expectedOutput);
       
   400 }
       
   401 
       
   402 /*!
       
   403     This function is to test the api of CalenDateUtils::pastOf.
       
   404  */
       
   405 void TestCalenDateUtils::test_pastOf()
       
   406 {
       
   407 	QDateTime dateTime = QDateTime(QDate(2009, 11, 26));
       
   408 	QDateTime expectedOutput = QDateTime(QDate(2009, 10, 30));
       
   409 	QDateTime actualOutput = CalenDateUtils::pastOf(dateTime, 27);
       
   410 	QCOMPARE(actualOutput, expectedOutput);
       
   411 }
       
   412 
       
   413 /*!
       
   414     This function is to test the api of CalenDateUtils::futureOf.
       
   415  */
       
   416 void TestCalenDateUtils::test_futureOf()
       
   417 {
       
   418 	QDateTime dateTime = QDateTime(QDate(2009, 10, 30));
       
   419 	QDateTime expectedOutput = QDateTime(QDate(2009, 11, 26));
       
   420 	QDateTime actualOutput = CalenDateUtils::futureOf(dateTime, 27);
       
   421 	QCOMPARE(actualOutput, expectedOutput);
       
   422 }
       
   423 
       
   424 // End of file	--Don't remove this.