From 596d732e1038b4e2f7ffdb7fb677a2dc7d9ef260 Mon Sep 17 00:00:00 2001 From: Steve Brokenshire Date: Sun, 5 Jun 2016 14:17:29 +0100 Subject: [PATCH] Added initial code and UID unit test for the CalendarFreeBusyObject --- .../CalendarFreeBusy-Save.cpp | 42 ++++++++++++++++ .../calendarfreebusy/CalendarFreeBusy.h | 1 + .../tests/xestiacalendar_icalfreebusysave.h | 48 +++++++++++++++++++ 3 files changed, 91 insertions(+) create mode 100644 source/objects/calendarfreebusy/CalendarFreeBusy-Save.cpp create mode 100644 source/tests/xestiacalendar_icalfreebusysave.h diff --git a/source/objects/calendarfreebusy/CalendarFreeBusy-Save.cpp b/source/objects/calendarfreebusy/CalendarFreeBusy-Save.cpp new file mode 100644 index 0000000..9746eca --- /dev/null +++ b/source/objects/calendarfreebusy/CalendarFreeBusy-Save.cpp @@ -0,0 +1,42 @@ +#include "CalendarFreeBusy.h" + +using namespace std; + +void CalendarFreeBusyObject::SaveObjectData(string *SaveData){ + + string DataLine = ""; + string DataLineProcessed = ""; + + *SaveData += "BEGIN:VFREEBUSY\n"; + + // Process the UID. + + if (UniqueID.size() > 0){ + + if (UniqueIDTokens.size() > 0){ + + DataLine += "UID;"; + DataLine += UniqueIDTokens; + + } else { + + DataLine += "UID"; + + } + + DataLine += ":"; + DataLine += UniqueID; + DataLine += "\n"; + + DataLineProcessed = OutputText(&DataLine); + + *SaveData += DataLineProcessed; + + DataLine.clear(); + DataLineProcessed.clear(); + + } + + *SaveData += "END:VFREEBUSY\n"; + +} \ No newline at end of file diff --git a/source/objects/calendarfreebusy/CalendarFreeBusy.h b/source/objects/calendarfreebusy/CalendarFreeBusy.h index 3906e9c..6ca5deb 100644 --- a/source/objects/calendarfreebusy/CalendarFreeBusy.h +++ b/source/objects/calendarfreebusy/CalendarFreeBusy.h @@ -10,6 +10,7 @@ class CalendarFreeBusyObject: public CalendarObject{ private: void ProcessData(); + void SaveObjectData(string *SaveData); }; diff --git a/source/tests/xestiacalendar_icalfreebusysave.h b/source/tests/xestiacalendar_icalfreebusysave.h new file mode 100644 index 0000000..cb5e02b --- /dev/null +++ b/source/tests/xestiacalendar_icalfreebusysave.h @@ -0,0 +1,48 @@ +// xestiacalendar_icalfreebusysave.h - Xestia Calendar iCalendar Free/Busy Component Save Unit Tests +// +// (c) 2016 Xestia Software Development. +// +// This file is part of Xestia Calendar. +// +// Xestia Address Book is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by the +// Free Software Foundation, version 3 of the license. +// +// Xestia Address Book 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 General Public License for more details. +// +// You should have received a copy of the GNU General Public License along +// with Xestia Calendar. If not, see + +#include "../objects/calendarfreebusy/CalendarFreeBusy.h" + +TEST(iCalendarSaveFreeBusy, SaveFreeBusyTests){ + + CalendarFreeBusyObject TestFreeBusy; + + // Load the test free/busy information. + + ASSERT_EQ(CALENDAROBJECTLOAD_OK, TestFreeBusy.LoadFile("iCalendarFreeBusy-Load1.vcf")); + ASSERT_EQ(CALENDAROBJECTVALID_OK, TestFreeBusy.ValidBaseObject()); + + ASSERT_EQ(CALENDAROBJECTSAVE_CANNOTOPEN, TestFreeBusy.SaveFile("/stupidfilelocation/dontsavehere.ics")); + + // First Free/Busy file. + + std::string SaveDataComparison = "BEGIN:VCALENDAR\n" + "VERSION:2.0\n" + "PRODID:-//Xestia//Calendar Unit Testing//KW\n" + "BEGIN:VFREEBUSY\n" + "UID:60\n" + "END:VFREEBUSY\n" + "END:VCALENDAR"; + + std::string SaveData; + + TestFreeBusy.SaveString(&SaveData); + + ASSERT_EQ(SaveDataComparison, SaveData); + +} \ No newline at end of file -- 2.39.2