calendarui/tsrc/unittest_calencommonutils/src/test_calendateutils.cpp
changeset 45 b6db4fd4947b
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/calendarui/tsrc/unittest_calencommonutils/src/test_calendateutils.cpp	Mon Jun 28 15:22:02 2010 +0530
@@ -0,0 +1,393 @@
+/*
+* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:
+*
+*/
+
+#include <QtTest/QtTest>
+#include <QDateTime>
+
+#include "calendateutils.h"
+#include "test_calendateutils.h"
+
+/*!
+	\class TestCalenDateUtils
+
+	This is unittest class for CalenDateUtils apis.
+ */
+ 
+TestCalenDateUtils::TestCalenDateUtils()
+{
+    // No implementation yet
+}
+
+TestCalenDateUtils::~TestCalenDateUtils()
+{
+    // No implementation yet
+}
+
+/*!
+	This function is called to before every testcase.
+ */
+void TestCalenDateUtils::init()
+{
+    // No implementation yet
+}
+
+/*!
+	This function is called after every testcase.
+ */
+void TestCalenDateUtils::cleanup()
+{
+    // No implementation yet
+}
+
+/*!
+    This function is to test the api of CalenDateUtils::onSameDay.
+ */
+void TestCalenDateUtils::test_onSameDay()
+{
+	QDateTime firstParam(QDate(2010, 10, 9));
+	QDateTime secondParam(QDate(2009, 22, 9));
+	QCOMPARE(CalenDateUtils::onSameDay(firstParam, secondParam), false);
+
+	firstParam = QDateTime(QDate(2010, 2, 30));
+	secondParam = QDateTime::currentDateTime();
+	QCOMPARE(CalenDateUtils::onSameDay(firstParam, secondParam), false);
+
+	firstParam = QDateTime(QDate(2010, 12, 5), QTime(6, 44));
+	secondParam = QDateTime(QDate(2010, 12, 5), QTime(9, 33));
+	QCOMPARE(CalenDateUtils::onSameDay(firstParam, secondParam), true);
+
+	firstParam = QDateTime(QDate(-1756, 12, 5));
+	secondParam = QDateTime(QDate(1900, 5, 9));
+	QCOMPARE(CalenDateUtils::onSameDay(firstParam, secondParam), false);
+
+}
+
+/*!
+    This function is to test the api of CalenDateUtils::onSameMonth.
+ */
+void TestCalenDateUtils::test_onSameMonth()
+{
+	QDateTime firstParam(QDate(2010, 10, 9));
+	QDateTime secondParam(QDate(2010, 22, 9));
+	QCOMPARE(CalenDateUtils::onSameMonth(firstParam, secondParam), false);
+
+	firstParam = QDateTime(QDate(2010, 2, 13));
+	secondParam = QDateTime(QDate(2009, 2, 3));
+	QCOMPARE(CalenDateUtils::onSameMonth(firstParam, secondParam), false);
+
+	firstParam = QDateTime(QDate(2010, 12, 5));
+	secondParam = QDateTime(QDate(2010, 12, 6));
+	QCOMPARE(CalenDateUtils::onSameMonth(firstParam, secondParam), true);
+
+	firstParam = QDateTime(QDate(2010, 13, 5));
+	secondParam = QDateTime(QDate(2010, 12, 9));
+	QCOMPARE(CalenDateUtils::onSameMonth(firstParam, secondParam), false);
+}
+
+/*!
+    This function is to test the api of CalenDateUtils::beginningOfDay.
+ */
+void TestCalenDateUtils::test_beginningOfDay()
+{
+	QDateTime expectedDate(QDate(2010, 5, 4), QTime(0, 0));
+	QDateTime param(QDate(2010, 5, 4), QTime(15, 44));
+	QCOMPARE(CalenDateUtils::beginningOfDay(param), expectedDate);
+
+	expectedDate = QDateTime(QDate(2010, 3, 3), QTime(0, 0));
+	param = QDateTime(QDate(2010, 3, 3), QTime(2, 33));
+	QCOMPARE(CalenDateUtils::beginningOfDay(param), expectedDate);
+
+	expectedDate = QDateTime(QDate(2010, 3, 5));
+	param = QDateTime(QDate(2010, 3, 5), QTime(23, 59, 59, 999));
+	QCOMPARE(CalenDateUtils::beginningOfDay(param), expectedDate);
+
+	expectedDate = QDateTime(QDate(2010, 12, 15), QTime(0, 0));
+	param = QDateTime(QDate(2010, 12, 15), QTime(24, 59));
+	QCOMPARE(CalenDateUtils::beginningOfDay(param), expectedDate);
+}
+
+/*!
+    This function is to test the api of CalenDateUtils::displayTimeOnDay.
+ */
+void TestCalenDateUtils::test_displayTimeOnDay()
+{
+	QDateTime firstParam(QDate(2010, 10, 9), QTime(12, 45));
+	QDateTime secondParam(QDate(2010, 10, 9));
+	QDateTime actualOutput;
+	QDateTime expectedOutput = firstParam;
+	
+	actualOutput = CalenDateUtils::displayTimeOnDay(firstParam, secondParam);
+	QCOMPARE(actualOutput, expectedOutput);
+
+	firstParam = QDateTime(QDate(2010, 2, 13));
+	secondParam = QDateTime(QDate(2009, 2, 3), QTime(23, 59));
+	actualOutput = QDateTime();
+	expectedOutput = CalenDateUtils::beginningOfDay(secondParam);
+	
+	actualOutput = CalenDateUtils::displayTimeOnDay(firstParam, secondParam);
+	QCOMPARE(actualOutput, expectedOutput);
+
+	firstParam = QDateTime(QDate(2010, 1, 5));
+	secondParam = QDateTime(QDate(2010, 13, 6));
+	actualOutput = QDateTime();
+	
+	actualOutput = CalenDateUtils::displayTimeOnDay(firstParam, secondParam);
+	QVERIFY(!actualOutput.isValid());
+
+}
+
+/*!
+    This function is to test the api of CalenDateUtils::displayTimeOnDay.
+ */
+void TestCalenDateUtils::test_timeRangesIntersect()
+{
+	QDateTime firstStartTime(QDate(2010, 10, 9), QTime(12, 45));
+	QDateTime firstEndTime(QDate(2010, 10, 10));
+	QDateTime secondStartTime(QDate(2010, 6, 5));
+	QDateTime secondEndTime(QDate(2010, 10, 9));
+
+	bool actualOutput = CalenDateUtils::timeRangesIntersect(firstStartTime,
+	                                                        firstEndTime,
+	                                                        secondStartTime,
+	                                                        secondEndTime);
+	QCOMPARE(actualOutput, false);
+
+	firstStartTime = QDateTime(QDate(2009, 5, 7));
+	firstEndTime = QDateTime(QDate(2009, 5, 6));
+	secondStartTime = QDateTime(QDate(2009, 5, 6));
+	secondEndTime = QDateTime(QDate(2009, 5, 6));
+	actualOutput = true;
+
+	actualOutput = CalenDateUtils::timeRangesIntersect(firstStartTime,
+	                                                   firstEndTime,
+	                                                   secondStartTime,
+	                                                   secondEndTime);
+	QCOMPARE(actualOutput, false);
+
+	firstStartTime = QDateTime(QDate(2009, 5, 7));
+	firstEndTime = QDateTime(QDate(2009, 6, 11));
+	secondStartTime = QDateTime(QDate(2009, 5, 7), QTime(2,0));
+	secondEndTime = QDateTime(QDate(2009, 5, 8));
+	actualOutput = false;
+
+	actualOutput = CalenDateUtils::timeRangesIntersect(firstStartTime,
+	                                                   firstEndTime,
+	                                                   secondStartTime,
+	                                                   secondEndTime);
+	QCOMPARE(actualOutput, true);
+
+}
+
+/*!
+    This function is to test the api of CalenDateUtils::isValidDay.
+ */
+void TestCalenDateUtils::test_isValidDay()
+{
+	QVERIFY(!CalenDateUtils::isValidDay(QDateTime(QDate(1899,12,28))));
+	
+	QVERIFY(CalenDateUtils::isValidDay(QDateTime(QDate(2100,12,31))));
+	
+	QVERIFY(CalenDateUtils::isValidDay(QDateTime(QDate(2100,12,30))));
+	
+	QVERIFY(!CalenDateUtils::isValidDay(QDateTime(QDate(2100,2,31))));
+
+}
+
+/*!
+    This function is to test the api of CalenDateUtils::limitToValidTime.
+ */
+void TestCalenDateUtils::test_limitToValidTime()
+{
+	QDateTime dateTime(QDate(1899, 12, 28));
+
+	QDateTime actualOutput = CalenDateUtils::limitToValidTime(dateTime);
+	QCOMPARE(actualOutput , QDateTime(QDate(1900,1,1)));
+
+	dateTime = QDateTime(QDate(2010, 10, 20));
+	actualOutput = CalenDateUtils::limitToValidTime(dateTime);
+	QCOMPARE(actualOutput, QDateTime(QDate(2010,10,20)));
+
+	dateTime = QDateTime();
+	actualOutput = CalenDateUtils::limitToValidTime(dateTime);
+	QCOMPARE(actualOutput, QDateTime(QDate(1900,1,1)));
+
+	dateTime = QDateTime(QDate(2101, 1, 1));
+	actualOutput = CalenDateUtils::limitToValidTime(dateTime);
+	QCOMPARE(actualOutput, QDateTime(QDate(2100,12,31)));
+
+	dateTime = QDateTime(QDate(2100, 12, 31), QTime(12,55));
+	actualOutput = CalenDateUtils::limitToValidTime(dateTime);
+	QCOMPARE(actualOutput, QDateTime(QDate(2100,12,31)));
+	
+	dateTime = QDateTime(QDate(2010,2,31));
+	actualOutput = CalenDateUtils::limitToValidTime(dateTime);
+	QCOMPARE(actualOutput, QDateTime(QDate(1900,1,1)));
+
+}
+
+/*!
+    This function is to test the api of CalenDateUtils::maxTime.
+ */
+void TestCalenDateUtils::test_maxTime()
+{
+	QCOMPARE(CalenDateUtils::maxTime() , QDateTime(QDate(2100,12,31)));
+}
+
+/*!
+    This function is to test the api of CalenDateUtils::minTime.
+ */
+void TestCalenDateUtils::test_minTime()
+{
+	QCOMPARE(CalenDateUtils::minTime() , QDateTime(QDate(1900,1,1)));
+}
+
+/*!
+    This function is to test the api of CalenDateUtils::timeOfDay.
+ */
+void TestCalenDateUtils::test_timeOfDay()
+{
+	QDateTime dateTime = QDateTime(QDate(1900, 1, 1));
+	int actulOutput = CalenDateUtils::timeOfDay(dateTime);
+	int expectedOutput = 0;
+	QCOMPARE(actulOutput, expectedOutput);
+
+	dateTime = QDateTime(QDate(2010, 12, 8), QTime(12, 30));
+	expectedOutput = 750;
+	actulOutput = CalenDateUtils::timeOfDay(dateTime);
+	QCOMPARE(actulOutput, expectedOutput);
+
+	dateTime = QDateTime(QDate(2010, 12, 8), QTime(6, 59, 59, 999));
+	expectedOutput = 420;
+	actulOutput = CalenDateUtils::timeOfDay(dateTime);
+	QCOMPARE(actulOutput, expectedOutput);
+
+	dateTime = QDateTime(QDate(2010, 4, 31), QTime(7, 0));
+	expectedOutput = 420;
+	actulOutput = CalenDateUtils::timeOfDay(dateTime);
+	QCOMPARE(actulOutput, expectedOutput);
+
+	dateTime = QDateTime(QDate(2010, 4, 7), QTime(6, 59, 59));
+	expectedOutput = 419;
+	actulOutput = CalenDateUtils::timeOfDay(dateTime);
+	QCOMPARE(actulOutput, expectedOutput);
+
+	dateTime = QDateTime(QDate(2010, 4, 7), QTime(12, 60, 60));
+	expectedOutput = 0;
+	actulOutput = CalenDateUtils::timeOfDay(dateTime);
+	QCOMPARE(actulOutput, expectedOutput);
+}
+
+/*!
+    This function is to test the api of CalenDateUtils::roundToPreviousHour.
+ */
+void TestCalenDateUtils::test_roundToPreviousHour()
+{
+	QDateTime dateTime = QDateTime(QDate(1900, 1, 1), QTime(23, 59, 59));
+	QDateTime actulOutput = CalenDateUtils::roundToPreviousHour(dateTime);
+	QDateTime expectedOutput(QDate(1900, 1, 1), QTime(23, 0));
+	QCOMPARE(actulOutput, expectedOutput);
+
+	dateTime = QDateTime(QDate(2010, 12, 8), QTime(12, 30));
+	expectedOutput = QDateTime(QDate(2010, 12, 8), QTime(12, 0));
+	actulOutput = CalenDateUtils::roundToPreviousHour(dateTime);
+	QCOMPARE(actulOutput, expectedOutput);
+
+	dateTime = QDateTime(QDate(2010, 12, 8), QTime(6, 59, 59, 999));
+	expectedOutput = QDateTime(QDate(2010, 12, 8), QTime(6, 0));
+	actulOutput = CalenDateUtils::roundToPreviousHour(dateTime);
+	QCOMPARE(actulOutput, expectedOutput);
+
+	dateTime = QDateTime(QDate(2010, 4, 3), QTime(12, 60, 60));
+	expectedOutput = QDateTime(QDate(2010, 4, 3));
+	actulOutput = CalenDateUtils::roundToPreviousHour(dateTime);
+	QCOMPARE(actulOutput, expectedOutput);
+}
+
+/*!
+    This function is to test the api of CalenDateUtils::roundToPreviousHour.
+ */
+void TestCalenDateUtils::test_roundToPreviousHourFromMinutes()
+{
+	int minutes = 145;
+	int actulOutput = CalenDateUtils::roundToPreviousHour(minutes);
+	int expectedOutput = 120;
+	QCOMPARE(actulOutput, expectedOutput);
+
+	minutes = -255;
+	expectedOutput = -240;
+	actulOutput = CalenDateUtils::roundToPreviousHour(minutes);
+	QCOMPARE(actulOutput, expectedOutput);
+
+	minutes = 606;
+	expectedOutput = 600;
+	actulOutput = CalenDateUtils::roundToPreviousHour(minutes);
+	QCOMPARE(actulOutput, expectedOutput);
+}
+
+/*!
+    This function is to test the api of CalenDateUtils::now.
+ */
+void TestCalenDateUtils::test_now()
+{
+	QCOMPARE(CalenDateUtils::now() , QDateTime::currentDateTime());
+}
+
+/*!
+    This function is to test the api of CalenDateUtils::today.
+ */
+void TestCalenDateUtils::test_today()
+{
+	QDateTime expectedTime = QDateTime::currentDateTime();
+	expectedTime.setTime(QTime(0,0));
+	QCOMPARE(CalenDateUtils::today() , expectedTime );
+}
+
+/*!
+    This function is to test the api of CalenDateUtils::isOnToday.
+ */
+void TestCalenDateUtils::test_isOnToday()
+{
+	QVERIFY(CalenDateUtils::isOnToday(QDateTime::currentDateTime()));
+	QDateTime dateTime = QDateTime::currentDateTime().addDays(1);
+	QVERIFY(!CalenDateUtils::isOnToday(dateTime));
+}
+
+/*!
+    This function is to test the api of CalenDateUtils::defaultTime.
+ */
+void TestCalenDateUtils::test_defaultTime()
+{
+	QDateTime dateTime = QDateTime(QDate(2010, 3, 2));
+	QDateTime expectedOutput = dateTime;
+	// 8:00 am is default time for Calendar Editor
+	expectedOutput.setTime(QTime(8, 0));
+	QDateTime actualOutput = CalenDateUtils::defaultTime(dateTime);
+	QCOMPARE(actualOutput, expectedOutput);
+}
+
+/*!
+    This function is to test the api of CalenDateUtils::futureOf.
+ */
+void TestCalenDateUtils::test_futureOf()
+{
+	QDateTime dateTime = QDateTime(QDate(2009, 10, 30));
+	QDateTime expectedOutput = QDateTime(QDate(2009, 11, 26));
+	QDateTime actualOutput = CalenDateUtils::futureOf(dateTime, 27);
+	QCOMPARE(actualOutput, expectedOutput);
+}
+
+// End of file	--Don't remove this.