Home | News | Projects | Releases
Bugs | RFE | Repositories | Help
Added initial code and UID unit test for the CalendarTaskObject
authorSteve Brokenshire <sbrokenshire@xestia.co.uk>
Mon, 6 Jun 2016 20:29:49 +0000 (21:29 +0100)
committerSteve Brokenshire <sbrokenshire@xestia.co.uk>
Mon, 6 Jun 2016 20:29:49 +0000 (21:29 +0100)
source/objects/calendartask/CalendarTask-Save.cpp [new file with mode: 0644]
source/objects/calendartask/CalendarTask.h
source/tests/xestiacalendar_icaltasksave.h [new file with mode: 0644]

diff --git a/source/objects/calendartask/CalendarTask-Save.cpp b/source/objects/calendartask/CalendarTask-Save.cpp
new file mode 100644 (file)
index 0000000..740beb7
--- /dev/null
@@ -0,0 +1,42 @@
+#include "CalendarTask.h"
+
+using namespace std;
+
+void CalendarTaskObject::SaveObjectData(string *SaveData){
+
+       string DataLine = "";
+       string DataLineProcessed = "";
+       
+       *SaveData += "BEGIN:VTODO\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:VTODO\n";
+       
+}
\ No newline at end of file
index 3e57ef5..83d1423 100644 (file)
@@ -10,6 +10,7 @@ class CalendarTaskObject: public CalendarObject{
        private:
        
        void ProcessData();
+       void SaveObjectData(string *SaveData);
        
 };
 
diff --git a/source/tests/xestiacalendar_icaltasksave.h b/source/tests/xestiacalendar_icaltasksave.h
new file mode 100644 (file)
index 0000000..16b9f89
--- /dev/null
@@ -0,0 +1,48 @@
+// xestiacalendar_icaltasksave.h - Xestia Calendar iCalendar Task 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/calendartask/CalendarTask.h"
+
+TEST(iCalendarSaveTask, SaveTaskTests){
+
+       CalendarTaskObject TestTask;
+       
+       // Load the test journal information.
+       
+       ASSERT_EQ(CALENDAROBJECTLOAD_OK, TestTask.LoadFile("iCalendarTask-Load1.vcf"));
+       ASSERT_EQ(CALENDAROBJECTVALID_OK, TestTask.ValidBaseObject());
+       
+       ASSERT_EQ(CALENDAROBJECTSAVE_CANNOTOPEN, TestTask.SaveFile("/stupidfilelocation/dontsavehere.ics"));
+       
+       // First task file.
+       
+       std::string SaveDataComparison = "BEGIN:VCALENDAR\n"
+       "VERSION:2.0\n"
+       "PRODID:-//Xestia//Calendar Unit Testing//KW\n"
+       "BEGIN:VTODO\n"
+       "UID:00\n"
+       "END:VTODO\n"
+       "END:VCALENDAR";
+       
+       std::string SaveData;
+       
+       TestTask.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