-// xestiacalendar_test.cpp - Xestia Calendar Unit Testing Suite.
-//
-// (c) 2016-2017 Xestia Software Development.
-//
-// This file is part of Xestia Calendar.
-//
-// Xestia Calendar 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 Calendar 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 <curl/curl.h>
-#include <gtest/gtest.h>
-#include <iostream>
-#include <string>
-#include <stdexcept>
-
-#include "xestiacalendar_commonfunctions.h"
-#include "xestiacalendar_populate.h"
-#include "xestiacalendar_icaleventload.h"
-#include "xestiacalendar_icaleventsave.h"
-#include "xestiacalendar_icaltaskload.h"
-#include "xestiacalendar_icaltasksave.h"
-#include "xestiacalendar_icaljournalload.h"
-#include "xestiacalendar_icaljournalsave.h"
-#include "xestiacalendar_icalfreebusyload.h"
-#include "xestiacalendar_icalfreebusysave.h"
-#include "xestiacalendar_icaltimezoneload.h"
-#include "xestiacalendar_icaltimezonesave.h"
-#include "xestiacalendar_calendardatastorage.h"
-#include "xestiacalendar_caldav.h"
-
-enum MenuOpts {
- TESTS_ICALLOADEVENT = 1,
- TESTS_ICALSAVEEVENT,
- TESTS_ICALLOADTODO,
- TESTS_ICALSAVETODO,
- TESTS_ICALLOADJOURNAL,
- TESTS_ICALSAVEJOURNAL,
- TESTS_ICALLOADFREEBUSY,
- TESTS_ICALSAVEFREEBUSY,
- TESTS_ICALLOADTIMEZONE,
- TESTS_ICALSAVETIMEZONE,
- TESTS_CALENDARDATASTORAGE,
- TESTS_CALDAV,
- TESTS_COMMONFUNCTIONS,
- TESTS_EXTRA,
- TESTS_QUIT
-};
-
-enum ExtraMenuOpts{
- EXTRA_POPULATECALDAV = 1,
- EXTRA_RETURN
-};
-
-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_ICALSAVEEVENT << ". iCalendar Event Component Save" << std::endl;
- std::cout << TESTS_ICALLOADTODO << ". iCalendar Task Component Load" << std::endl;
- std::cout << TESTS_ICALSAVETODO << ". iCalendar Task Component Save" << std::endl;
- std::cout << TESTS_ICALLOADJOURNAL << ". iCalendar Journal Component Load" << std::endl;
- std::cout << TESTS_ICALSAVEJOURNAL << ". iCalendar Journal Component Save" << std::endl;
- std::cout << TESTS_ICALLOADFREEBUSY << ". iCalendar FreeBusy Component Load" << std::endl;
- std::cout << TESTS_ICALSAVEFREEBUSY << ". iCalendar FreeBusy Component Save" << std::endl;
- std::cout << TESTS_ICALLOADTIMEZONE << ". iCalendar Timezone Component Load" << std::endl;
- std::cout << TESTS_ICALSAVETIMEZONE << ". iCalendar Timezone Component Save" << std::endl;
- std::cout << TESTS_CALENDARDATASTORAGE << ". Calendar Data Storage" << std::endl;
- std::cout << TESTS_CALDAV << ". CalDAV Object" << std::endl;
- std::cout << TESTS_COMMONFUNCTIONS << ". Common Functions" << std::endl;
- std::cout << TESTS_EXTRA << ". Extra Functions Menu" << std::endl;
- std::cout << TESTS_QUIT << ". Quit" << std::endl;
- std::cout << std::endl;
-
-}
-
-void printextramenu(){
-
- std::cout << "Extra Functions Menu" << std::endl << std::endl;
- std::cout << "Select an option:" << std::endl << std::endl;
- std::cout << EXTRA_POPULATECALDAV << ". Populate CalDAV calendar" << std::endl;
- std::cout << EXTRA_RETURN << ". Return to previous menu" << std::endl;
- std::cout << std::endl;
-
-}
-
-void runextramenu(){
-
- bool exitEnabled = false;
- std::string stringOption = "";
- int testResult = 0;
-
- while(exitEnabled == false){
-
- printextramenu();
-
- // 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 EXTRA_POPULATECALDAV:
- printn("Populating CalDAV calendar...");
- populatecaldav();
- break;
- case EXTRA_RETURN:
- return;
- break;
- default:
- printn("Invalid menu number given.");
- break;
-
- }
-
- }
-
-}
-
-int main(int argc, char* argv[]){
-
- // Initialise the several libraries that have
- // been included.
-
- ::testing::InitGoogleTest(&argc, argv);
- curl_global_init(CURL_GLOBAL_ALL);
-
- 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_ICALSAVEEVENT:
- printn("Running iCalendar Event Component Save tests...");
- ::testing::GTEST_FLAG(filter) = "iCalendarSaveEvent*";
- testResult = RUN_ALL_TESTS();
- break;
- case TESTS_ICALLOADTODO:
- printn("Running iCalendar Task Component tests...");
- ::testing::GTEST_FLAG(filter) = "iCalendarTask*";
- testResult = RUN_ALL_TESTS();
- break;
- case TESTS_ICALSAVETODO:
- printn("Running iCalendar Task Component Save tests...");
- ::testing::GTEST_FLAG(filter) = "iCalendarSaveTask*";
- testResult = RUN_ALL_TESTS();
- break;
- case TESTS_ICALLOADJOURNAL:
- printn("Running iCalendar Journal Component tests...");
- ::testing::GTEST_FLAG(filter) = "iCalendarJournal*";
- testResult = RUN_ALL_TESTS();
- break;
- case TESTS_ICALSAVEJOURNAL:
- printn("Running iCalendar Journal Component Save tests...");
- ::testing::GTEST_FLAG(filter) = "iCalendarSaveJournal*";
- testResult = RUN_ALL_TESTS();
- break;
- case TESTS_ICALLOADFREEBUSY:
- printn("Running iCalendar Free Busy Component tests...");
- ::testing::GTEST_FLAG(filter) = "iCalendarFreeBusy*";
- testResult = RUN_ALL_TESTS();
- break;
- case TESTS_ICALSAVEFREEBUSY:
- printn("Running iCalendar Free Busy Component Save tests...");
- ::testing::GTEST_FLAG(filter) = "iCalendarSaveFreeBusy*";
- testResult = RUN_ALL_TESTS();
- break;
- case TESTS_ICALLOADTIMEZONE:
- printn("Running iCalendar Timezone Component tests...");
- ::testing::GTEST_FLAG(filter) = "iCalendarTimezone*";
- testResult = RUN_ALL_TESTS();
- break;
- case TESTS_ICALSAVETIMEZONE:
- printn("Running iCalendar Timezone Component Save tests...");
- ::testing::GTEST_FLAG(filter) = "iCalendarSaveTimezone*";
- testResult = RUN_ALL_TESTS();
- break;
- case TESTS_CALENDARDATASTORAGE:
- printn("Running Calendar Data Storage tests...");
- ::testing::GTEST_FLAG(filter) = "CalendarDataStorage*";
- testResult = RUN_ALL_TESTS();
- break;
- case TESTS_CALDAV:
- printn("Running CalDAV tests...");
- ::testing::GTEST_FLAG(filter) = "CalDAV*";
- testResult = RUN_ALL_TESTS();
- break;
- case TESTS_COMMONFUNCTIONS:
- printn("Running Commmon Functions tests...");
- ::testing::GTEST_FLAG(filter) = "CommonFunctions*";
- testResult = RUN_ALL_TESTS();
- break;
- case TESTS_EXTRA:
- runextramenu();
- break;
- case TESTS_QUIT:
- return 0;
- break;
- default:
- printn("Invalid menu number given.");
- break;
-
- }
-
- }
-
-}