calendarui/tsrc/unittest_calencommonutils/src/test_calendateutils.cpp
author hgs
Mon, 28 Jun 2010 15:22:02 +0530
changeset 45 b6db4fd4947b
permissions -rw-r--r--
201025

/*
* 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.