Home | News | Projects | Releases
Bugs | RFE | Repositories | Help
Added initial code and UID unit test for the CalendarFreeBusyObject
authorSteve Brokenshire <sbrokenshire@xestia.co.uk>
Sun, 5 Jun 2016 13:17:29 +0000 (14:17 +0100)
committerSteve Brokenshire <sbrokenshire@xestia.co.uk>
Sun, 5 Jun 2016 13:17:29 +0000 (14:17 +0100)
source/objects/calendarfreebusy/CalendarFreeBusy-Save.cpp [new file with mode: 0644]
source/objects/calendarfreebusy/CalendarFreeBusy.h
source/tests/xestiacalendar_icalfreebusysave.h [new file with mode: 0644]

diff --git a/source/objects/calendarfreebusy/CalendarFreeBusy-Save.cpp b/source/objects/calendarfreebusy/CalendarFreeBusy-Save.cpp
new file mode 100644 (file)
index 0000000..9746eca
--- /dev/null
@@ -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
index 3906e9c..6ca5deb 100644 (file)
@@ -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 (file)
index 0000000..cb5e02b
--- /dev/null
@@ -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 <http://www.gnu.org/licenses/>
+
+#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
Xestia Software Development
Yn Maystri
© 2006 - 2019 Xestia Software Development
Software

Xestia Address Book
Xestia Calendar
Development

Xestia Gelforn
Everything else

About
News
Privacy Policy