/* This file is part of the kcal library. Copyright (c) 2007-2008 Allen Winter 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_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 ); }