--- /dev/null
+#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
--- /dev/null
+// 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