/** * Testes expected behaviour of adding entries to tracker list */ public function testAddMaintenanceTaskEntryInvalid() { $maintenanceTracker = MaintenanceTracker::getMaintenanceTracker(); //gets instance of tracker try { $maintenanceTracker->addMaintenanceTaskEntry(null); //null not valid echo "testAddMaintenanceTaskEntryInvalid null test failed\n"; Assert . Fail(); } catch (InvalidArgumentException $e) { echo "testAddMaintenanceTaskEntryInvalid null test successful\n"; } catch (Exception $e) { echo "testAddMaintenanceTaskEntryInvalid null test failed\n"; Assert . Fail(); } $maintenanceTracker = MaintenanceTracker::getMaintenanceTracker(); try { $maintenanceTracker->addMaintenanceTaskEntry(new DateTime()); //date time not valid echo "testAddMaintenanceTaskEntryInvalid invalid object test failed\n"; Assert . Fail(); } catch (InvalidArgumentException $e) { echo "testAddMaintenanceTaskEntryInvalid invalid object test successful\n"; } catch (Exception $e) { echo "testAddMaintenanceTaskEntryInvalid invalid object test failed\n"; Assert . Fail(); } try { $maintenaceTaskEntry = new MaintenanceTaskEntry(4, "Oil Change", new GasCar("Ford", "Focus", 2000, 23424), new DateTime(), false); if (!$maintenanceTracker->addMaintenanceTaskEntry($maintenaceTaskEntry)) { echo "testAddMaintenanceTaskEntryInvalid allready in list object test failed\n"; // should have been added sucessfully Assert . Fail(); } if ($maintenanceTracker->addMaintenanceTaskEntry($maintenaceTaskEntry)) { echo "testAddMaintenanceTaskEntryInvalid allready in list object test failed\n"; // should have been first initially added Assert . Fail(); } else { echo "testAddMaintenanceTaskEntryInvalid allready in list object test successful\n"; } } catch (InvalidArgumentException $e) { echo "testAddMaintenanceTaskEntryInvalid allready in list test failed\n"; Assert . Fail(); } catch (Exception $e) { echo "testAddMaintenanceTaskEntryInvalid allready in list test failed\n"; Assert . Fail(); } }
/** * Ensure that only one instance of the maintenance tracker exists and returns it * @return MaintenanceTracker The maintenance tracker instance */ public static function getMaintenanceTracker() { if (MaintenanceTracker::$maintenanceTracker === null) { //if it has not been created MaintenanceTracker::$maintenanceTracker = new MaintenanceTracker(); } //create return MaintenanceTracker::$maintenanceTracker; }
<?php /** * This file contains a view to interact with a maintenace tracker: adding, removing and editing maintenance task entries * @author Tyler Matthews */ require 'AutomobileMaintenanceLibrary/MaintenanceTracker.php'; require 'AutomobileMaintenanceLibrary/Car.php'; require 'AutomobileMaintenanceLibrary/GasCar.php'; require 'AutomobileMaintenanceLibrary/DieselCar.php'; require 'AutomobileMaintenanceLibrary/ElectricCar.php'; require 'AutomobileMaintenanceLibrary/MaintenanceTaskEntry.php'; session_start(); if (!isset($_SESSION["maintenanceTracker"])) { $maintenanceTracker = MaintenanceTracker::getMaintenanceTracker(); $_SESSION["maintenanceTracker"] = $maintenanceTracker; } ?> <!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF-8"> <title>Curve Dental</title> <link rel="stylesheet" type="text/css" href="AutomobileMaintenanceTracker.css"/> <script src="AutomobileMaintenanceTracker.js"></script> </head> <body> <header> <nav> <a id="programmingproblemtitle" >Programming Problem</a>