From 6dceb4eea79006079020144ac94ece1405409200 Mon Sep 17 00:00:00 2001 From: Steve Brokenshire Date: Sun, 5 Jun 2016 20:34:13 +0100 Subject: [PATCH] Added initial code and UID unit test for the CalendarJournalObject --- .../calendarjournal/CalendarJournal-Save.cpp | 42 ++++++++++++++++ .../objects/calendarjournal/CalendarJournal.h | 1 + source/tests/xestiacalendar_icaljournalsave.h | 50 +++++++++++++++++++ source/tests/xestiacalendar_test.cpp | 1 + 4 files changed, 94 insertions(+) create mode 100644 source/objects/calendarjournal/CalendarJournal-Save.cpp create mode 100644 source/tests/xestiacalendar_icaljournalsave.h diff --git a/source/objects/calendarjournal/CalendarJournal-Save.cpp b/source/objects/calendarjournal/CalendarJournal-Save.cpp new file mode 100644 index 0000000..3a3778a --- /dev/null +++ b/source/objects/calendarjournal/CalendarJournal-Save.cpp @@ -0,0 +1,42 @@ +#include "CalendarJournal.h" + +using namespace std; + +void CalendarJournalObject::SaveObjectData(string *SaveData){ + + string DataLine = ""; + string DataLineProcessed = ""; + + *SaveData += "BEGIN:VJOURNAL\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:VJOURNAL\n"; + +} \ No newline at end of file diff --git a/source/objects/calendarjournal/CalendarJournal.h b/source/objects/calendarjournal/CalendarJournal.h index d192dfa..180a877 100644 --- a/source/objects/calendarjournal/CalendarJournal.h +++ b/source/objects/calendarjournal/CalendarJournal.h @@ -10,6 +10,7 @@ class CalendarJournalObject: public CalendarObject{ private: void ProcessData(); + void SaveObjectData(string *SaveData); }; diff --git a/source/tests/xestiacalendar_icaljournalsave.h b/source/tests/xestiacalendar_icaljournalsave.h new file mode 100644 index 0000000..08fb513 --- /dev/null +++ b/source/tests/xestiacalendar_icaljournalsave.h @@ -0,0 +1,50 @@ +// xestiacalendar_icaleventsave.h - Xestia Calendar iCalendar Event 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/calendarjournal/CalendarJournal.h" + +TEST(iCalendarSaveJournal, SaveEventTests){ + + CalendarJournalObject TestJournal; + + // Load the test journal information. + + ASSERT_EQ(CALENDAROBJECTLOAD_OK, TestJournal.LoadFile("iCalendarJournal-Load1.vcf")); + ASSERT_EQ(CALENDAROBJECTVALID_OK, TestJournal.ValidBaseObject()); + + ASSERT_EQ(CALENDAROBJECTSAVE_CANNOTOPEN, TestJournal.SaveFile("/stupidfilelocation/dontsavehere.ics")); + + // Save the data to a string and compare the data. + + // First journal file. + + std::string SaveDataComparison = "BEGIN:VCALENDAR\n" + "VERSION:2.0\n" + "PRODID:-//Xestia//Calendar Unit Testing//KW\n" + "BEGIN:VJOURNAL\n" + "UID:329128-12939123-123123-13\n" + "END:VJOURNAL\n" + "END:VCALENDAR"; + + std::string SaveData; + + TestJournal.SaveString(&SaveData); + + ASSERT_EQ(SaveDataComparison, SaveData); + +} \ No newline at end of file diff --git a/source/tests/xestiacalendar_test.cpp b/source/tests/xestiacalendar_test.cpp index ff2e58c..35e4a6a 100644 --- a/source/tests/xestiacalendar_test.cpp +++ b/source/tests/xestiacalendar_test.cpp @@ -28,6 +28,7 @@ #include "xestiacalendar_icaleventsave.h" #include "xestiacalendar_icaltaskload.h" #include "xestiacalendar_icaljournalload.h" +#include "xestiacalendar_icaljournalsave.h" #include "xestiacalendar_icalfreebusyload.h" #include "xestiacalendar_icalfreebusysave.h" #include "xestiacalendar_icaltimezoneload.h" -- 2.39.5