From 1e64482f6662b22b3e544aa191485150e1b6e2b4 Mon Sep 17 00:00:00 2001 From: Steve Brokenshire Date: Mon, 6 Jun 2016 21:29:49 +0100 Subject: [PATCH] Added initial code and UID unit test for the CalendarTaskObject --- .../calendartask/CalendarTask-Save.cpp | 42 ++++++++++++++++ source/objects/calendartask/CalendarTask.h | 1 + source/tests/xestiacalendar_icaltasksave.h | 48 +++++++++++++++++++ 3 files changed, 91 insertions(+) create mode 100644 source/objects/calendartask/CalendarTask-Save.cpp create mode 100644 source/tests/xestiacalendar_icaltasksave.h diff --git a/source/objects/calendartask/CalendarTask-Save.cpp b/source/objects/calendartask/CalendarTask-Save.cpp new file mode 100644 index 0000000..740beb7 --- /dev/null +++ b/source/objects/calendartask/CalendarTask-Save.cpp @@ -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 diff --git a/source/objects/calendartask/CalendarTask.h b/source/objects/calendartask/CalendarTask.h index 3e57ef5..83d1423 100644 --- a/source/objects/calendartask/CalendarTask.h +++ b/source/objects/calendartask/CalendarTask.h @@ -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 index 0000000..16b9f89 --- /dev/null +++ b/source/tests/xestiacalendar_icaltasksave.h @@ -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 + +#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 -- 2.39.2