///////////////////////////////////////////////////////////////////// // Project1_TestDriver - Demonstrate Project #1 Requirements // // ver 1.2 using single-user TestHarness // // // // Jim Fawcett, CSE687-Object Oriented Design, Fall 2018 // ///////////////////////////////////////////////////////////////////// /* * Package Operations: * ------------------- * Project1_TestDriver.cpp uses Proj1Reqs_Tests.h and CodeUtil_Tests.h * which provide eleven tests, one for each requirement or, in some * cases, part of a requirement. These run in single-user TestHarness, * which Project #1 develops. * * This package registers and executes all the tests developed in * Proj1Reqs_Tests and CodeUtil_Tests. * * Required Files: * --------------- * Proj1_TestDriver.cpp * Proj1Reqs_Tests.h, CodeUtil_Tests.h * CodeUtilities.h * TestUtilities.h * ITest.h * FileUtilities.h * StringUtilities.h * SingletonLogger.h * FileSystem.h, FileSystem.cpp * * Maintenance History: * -------------------- * ver 1.3 : 02 Oct 2018 * - minor changes to these comments * ver 1.2 : 23 Sep 2018 * - completed reqs testing, including tests for CodeUtils * - refactored tests into this file and CodeUtil_Tests.h * ver 1.1 : 04 Sep 2018 * - added additional tests for Req #5 * ver 1.0 : 03 Sep 2018 * - first release */ #include "Proj1Reqs_Tests.h" #include "CodeUtil_Tests.h" using namespace UtilitiesTest; using namespace Utilities; using SPtr = std::shared_ptr; int main(int argc, char* argv[]) { Utilities::Cosmetic cos; if (argc < 2) { std::cout << "\n Please enter path to Project Directory\n"; return 1; } std::string path = argv[1]; Utilities::Title("Demonstrating Project #1 Requirements"); Utilities::putline(); TestExecutive te; TestExecutive::TestItem ti1 = { SPtr(new TestReq1(path)), "TestReq1" }; te.registerTest(ti1); TestExecutive::TestItem ti2a = { SPtr(new TestReq2a(path)), "TestReq2a" }; te.registerTest(ti2a); TestExecutive::TestItem ti2b = { SPtr(new TestReq2b(path)), "TestReq2b" }; te.registerTest(ti2b); TestExecutive::TestItem ti3 = { SPtr(new TestReq3(path)), "TestReq3" }; te.registerTest(ti3); TestExecutive::TestItem ti4a = { SPtr(new TestReq4a(path)), "TestReq4a" }; te.registerTest(ti4a); TestExecutive::TestItem ti4b = { SPtr(new TestReq4b(path)), "TestReq4b" }; te.registerTest(ti4b); TestExecutive::TestItem ti5 = { SPtr(new TestReq5(path)), "TestReq5" }; te.registerTest(ti5); TestExecutive::TestItem ti6 = { SPtr(new TestReq6(path)), "TestReq6" }; te.registerTest(ti6); TestExecutive::TestItem ti7 = { SPtr(new TestReq7(path)), "TestReq7" }; te.registerTest(ti7); TestExecutive::TestItem ti8 = { SPtr(new TestReq8(path)), "TestReq8" }; te.registerTest(ti8); TestExecutive::TestItem ti9a = { SPtr(new TestReq9a(path)), "TestReq9a" }; te.registerTest(ti9a); TestExecutive::TestItem ti9b = { SPtr(new TestReq9b(path)), "TestReq9b" }; te.registerTest(ti9b); TestExecutive::TestItem ti9c = { SPtr(new TestReq9c(path)), "TestReq9c" }; te.registerTest(ti9c); TestExecutive::TestItem ti9d = { SPtr(new TestReq9d(path)), "TestReq9d" }; te.registerTest(ti9d); TestExecutive::TestItem ti10 = { SPtr(new TestReq10(path)), "TestReq10" }; te.registerTest(ti10); TestExecutive::TestItem ti11 = { SPtr(new TestReq11(path)), "TestReq11" }; te.registerTest(ti11); bool results = te.doTests(); if (results == false) return 1; return 0; }