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