kde-playground/kdepimlibs/kcal/tests/testfreebusy.cpp
2015-04-14 21:49:29 +00:00

107 lines
3.4 KiB
C++

/*
This file is part of the kcal library.
Copyright (c) 2007-2008 Allen Winter <winter@kde.org>
This library is free software; you can redistribute it and/or
modify it under the terms of the GNU Library General Public
License as published by the Free Software Foundation; either
version 2 of the License, or (at your option) any later version.
This library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Library General Public License for more details.
You should have received a copy of the GNU Library General Public License
along with this library; see the file COPYING.LIB. If not, write to
the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
Boston, MA 02110-1301, USA.
*/
#include "testfreebusy.h"
#include <qtest_kde.h>
QTEST_KDEMAIN( FreeBusyTest, NoGUI )
#include "kcal/freebusy.h"
using namespace KCal;
void FreeBusyTest::testValidity()
{
const KDateTime firstDateTime( QDate( 2007, 7, 23 ), QTime( 7, 0, 0 ), KDateTime::UTC );
FreeBusy fb1(
firstDateTime,
KDateTime( QDate( 2007, 7, 23 ), QTime( 8, 0, 0 ), KDateTime::UTC ) );
QVERIFY( fb1.dtEnd() ==
KDateTime( QDate( 2007, 7, 23 ), QTime( 8, 0, 0 ), KDateTime::UTC ) );
}
void FreeBusyTest::testAddSort()
{
Period::List periods;
const KDateTime firstq1DateTime( QDate( 2007, 7, 23 ), QTime( 7, 0, 0 ), KDateTime::UTC );
Period q1(
firstq1DateTime,
KDateTime( QDate( 2007, 7, 23 ), QTime( 8, 0, 0 ), KDateTime::UTC ) );
periods.append( q1 );
const KDateTime firstq2DateTime( QDate( 2007, 8, 23 ), QTime( 7, 0, 0 ), KDateTime::UTC );
Period q2(
firstq2DateTime,
KDateTime( QDate( 2007, 8, 23 ), QTime( 8, 0, 0 ), KDateTime::UTC ) );
periods.append( q2 );
const KDateTime firstq3DateTime( QDate( 2007, 9, 23 ), QTime( 7, 0, 0 ), KDateTime::UTC );
Period q3(
firstq3DateTime,
KDateTime( QDate( 2007, 9, 23 ), QTime( 8, 0, 0 ), KDateTime::UTC ) );
periods.append( q3 );
FreeBusy fb1;
fb1.addPeriods( periods );
const KDateTime firstfb1DateTime( QDate( 2007, 10, 27 ), QTime( 7, 0, 0 ), KDateTime::UTC );
fb1.addPeriod(
firstfb1DateTime,
KDateTime( QDate( 2007, 10, 27 ), QTime( 8, 0, 0 ), KDateTime::UTC ) );
const KDateTime secondfb1DateTime( QDate( 2007, 8, 27 ), QTime( 7, 0, 0 ), KDateTime::UTC );
fb1.addPeriod(
secondfb1DateTime,
KDateTime( QDate( 2007, 8, 27 ), QTime( 8, 0, 0 ), KDateTime::UTC ) );
const KDateTime thirdfb1DateTime( QDate( 2007, 6, 27 ), QTime( 7, 0, 0 ), KDateTime::UTC );
fb1.addPeriod(
thirdfb1DateTime,
KDateTime( QDate( 2007, 6, 27 ), QTime( 8, 0, 0 ), KDateTime::UTC ) );
QVERIFY( fb1.busyPeriods().last().end() ==
KDateTime( QDate( 2007, 10, 27 ), QTime( 8, 0, 0 ), KDateTime::UTC ) );
}
void FreeBusyTest::testAssign()
{
const KDateTime firstDateTime( QDate( 2007, 7, 23 ), QTime( 7, 0, 0 ), KDateTime::UTC );
FreeBusy fb1(
firstDateTime,
KDateTime( QDate( 2007, 7, 23 ), QTime( 8, 0, 0 ), KDateTime::UTC ) );
FreeBusy fb2 = fb1;
QVERIFY( fb1 == fb2 );
fb1.setDtStart( firstDateTime.addDays( 1 ) );
fb2.setDtStart( firstDateTime.addDays( 2 ) );
QVERIFY( !( fb1 == fb2 ) );
FreeBusy fb3 = fb2;
QVERIFY( fb3 == fb2 );
KDateTime dt = fb3.dtEnd();
fb3.setDtEnd( dt.addDays( 1 ) );
fb2.setDtEnd( dt.addDays( 1 ) );
QVERIFY( fb2 == fb3 );
}