From 98d21dfd279a38c83dcbdd99da8024ffea00d9de Mon Sep 17 00:00:00 2001 From: Steve Brokenshire Date: Fri, 1 Jan 2016 19:34:04 +0000 Subject: [PATCH 1/1] Setup test suite. Using test suite from Xestia Address Book as base. --- source/tests/xestiacalendar_icaleventload.h | 21 ++++ source/tests/xestiacalendar_test.cpp | 117 ++++++++++++++++++++ 2 files changed, 138 insertions(+) create mode 100644 source/tests/xestiacalendar_icaleventload.h create mode 100644 source/tests/xestiacalendar_test.cpp diff --git a/source/tests/xestiacalendar_icaleventload.h b/source/tests/xestiacalendar_icaleventload.h new file mode 100644 index 0000000..2854ec3 --- /dev/null +++ b/source/tests/xestiacalendar_icaleventload.h @@ -0,0 +1,21 @@ +// xestiacalendar_icaleventload.h - Xestia Calendar iCalendar Event Component Unit Tests +// +// (c) 2016 Xestia Software Development. +// +// This file is part of Xestia Address Book. +// +// 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 Address Book. If not, see + +TEST(iCalendarEvent, BasicTest){ + +} \ No newline at end of file diff --git a/source/tests/xestiacalendar_test.cpp b/source/tests/xestiacalendar_test.cpp new file mode 100644 index 0000000..ae14ac4 --- /dev/null +++ b/source/tests/xestiacalendar_test.cpp @@ -0,0 +1,117 @@ +// xestiacalendar_test.cpp - Xestia Calendar Unit Testing Suite. +// +// (c) 2016 Xestia Software Development. +// +// This file is part of Xestia Address Book. +// +// 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 Address Book. If not, see + +#include +#include +#include +#include + +#include "xestiacalendar_icaleventload.h" + +enum MenuOpts { + TESTS_ICALLOADEVENT = 1, + TESTS_ICALLOADTODO, + TESTS_ICALLOADJOURNAL, + TESTS_ICALLOADFREEBUSY, + TESTS_ICALLOADTIMEZONE, + TESTS_ICALLOADALARM, + TESTS_QUIT +}; + +void printn(std::string text){ +// printn: Print a line and end with a newline (\n). + + std::cout << text << std::endl; + +} + +void printmenu(){ +// printmenu: Print the menu. + + std::cout << "Select an option:" << std::endl << std::endl; + std::cout << TESTS_ICALLOADEVENT << ". iCalendar Event Component Load" << std::endl; + std::cout << TESTS_QUIT << ". Quit" << std::endl; + std::cout << std::endl; + +} + +int main(int argc, char* argv[]){ + + ::testing::InitGoogleTest(&argc, argv); + + printn("Xestia Calendar Unit Testing Application"); + printn("(c)2016 Xestia Software Development"); + printn("Note: Unit testing is currently in development"); + printn(""); + + bool ExitEnabled = false; + std::string StringOption = ""; + int TestResult = 0; + + while(ExitEnabled == false){ + + printmenu(); + + // Get user input. + + std::cout << "Select Option: "; + std::cin >> StringOption; + + int IntOption = -1; + + // Check if input is a number. + + try{ + IntOption = stoi(StringOption); + } + + // Return to the top of the while statement if input + // really isn't a number. + + catch(std::invalid_argument e){ + printn("Error: Selected option is not a number."); + continue; + } + + // Find which option has been selected from the + // input. + + switch(IntOption){ + + case TESTS_ICALLOADEVENT: + printn("Running iCalendar Event Component tests..."); + ::testing::GTEST_FLAG(filter) = "iCalendarEvent*"; + TestResult = RUN_ALL_TESTS(); + break; + /*case TESTS_CARDDAV: + printn("Running CardDAV tests..."); + ::testing::GTEST_FLAG(filter) = "CardDAV*"; + TestResult = RUN_ALL_TESTS(); + break;*/ + case TESTS_QUIT: + return 0; + break; + default: + printn("Invalid menu number given."); + break; + + } + + } + +} -- 2.39.5