public void Test_InsertCar_WithSameLicensePlate_ShouldReturnErrorMessage() { var park = new VehiclePark(2, 2); var car = new Car("CA1011AH", "John Smith", 1); park.InsertCar(car, 1, 1, new DateTime(2015, 5, 10, 10, 30, 0)); var otherCar = new Car("CA1011AH", "Jane Smith", 1); string message = park.InsertCar(otherCar, 1, 2, new DateTime(2015, 5, 10, 12, 30, 0)); Assert.AreEqual("There is already a vehicle with license plate CA1011AH in the park", message); }
public void Test_InsertCar_OccupiedPlace_ShouldReturnErrorMessage() { var park = new VehiclePark(2, 2); var car = new Car("CA1011AH", "John Smith", 1); park.InsertCar(car, 1, 1, new DateTime(2015, 5, 10, 10, 30, 0)); var otherCar = new Car("CA1022AH", "Jane Smith", 1); string message = park.InsertCar(otherCar, 1, 1, new DateTime(2015, 5, 10, 12, 30, 0)); Assert.AreEqual("The place (1,1) is occupied", message); }
public void TestInsertCarWithSameLisencePlateShouldReturnErrorMessage() { IVehiclePark vehiclePark = new VehiclePark(3, 5); var firstVehicle = new Car("CA1001HH", "Jay Margareta", 1); var secondVehicle = new Car("CA1001HH", "Guy Sheard", 2); vehiclePark.InsertCar(firstVehicle, 1, 5, new DateTime(2015, 05, 04, 10, 30, 00)); string message = vehiclePark.InsertCar(secondVehicle, 1, 3, new DateTime(2015, 05, 04, 10, 30, 00)); Assert.AreEqual("There is already a vehicle with license plate CA1001HH in the park", message); }
public void TestInsertCarAtAlreadyOccupiedPlaceInSectorShouldReturnErrorMessage() { IVehiclePark vehiclePark = new VehiclePark(3, 5); var firstVehicle = new Car("CA1001HH", "Jay Margareta", 1); var secondVehicle = new Car("CA1111HH", "Guy Sheard", 2); vehiclePark.InsertCar(firstVehicle, 1, 5, new DateTime(2015, 05, 04, 10, 30, 00)); string message = vehiclePark.InsertCar(secondVehicle, 1, 5, new DateTime(2015, 05, 04, 10, 30, 00)); Assert.AreEqual("The place (1,5) is occupied", message); }
public void Test_FindVehiclesByOwner_NoVehiclesMatch_ShouldReturnErrorMessage() { var park = new VehiclePark(2, 2); var car = new Car("CA1011AH", "John Smith", 1); park.InsertCar(car, 1, 1, new DateTime(2015, 5, 10, 10, 30, 0)); car = new Car("CA3035AH", "Jane Smith", 1); park.InsertCar(car, 2, 1, new DateTime(2015, 5, 10, 10, 30, 0)); string message = park.FindVehiclesByOwner("Jane Austen"); Assert.AreEqual("No vehicles by Jane Austen", message); }
public void Test_InsertCar_FillPark_ShouldInsertAllCars() { var park = new VehiclePark(2, 1); var car = new Car("CA1011AH", "John Smith", 1); string message = park.InsertCar(car, 1, 1, new DateTime(2015, 5, 10, 10, 30, 0)); Assert.AreEqual("Car parked successfully at place (1,1)", message); var otherCar = new Car("CA1022AH", "Jane Smith", 1); message = park.InsertCar(otherCar, 2, 1, new DateTime(2015, 5, 10, 12, 30, 0)); Assert.AreEqual("Car parked successfully at place (2,1)", message); }
public void Test_FindVehiclesByOwner_SomeVehiclesMatch_ShouldReturnTheCorrectVehicle() { var park = new VehiclePark(2, 2); var car = new Car("CA1011AH", "John Smith", 1); park.InsertCar(car, 1, 1, new DateTime(2015, 5, 10, 10, 30, 0)); car = new Car("CA3035AH", "Jane Smith", 1); park.InsertCar(car, 2, 1, new DateTime(2015, 5, 10, 10, 30, 0)); string message = park.FindVehiclesByOwner("Jane Smith"); Assert.AreEqual( "Car [CA3035AH], owned by Jane Smith\r\n" + "Parked at (2,1)", message); }
public string[] Execute(VehiclePark vehiclePark) { switch (Parameters["type"]) { case "car": return(vehiclePark.InsertCar( new Car(Parameters["licensePlate"], Parameters["owner"], Convert.ToInt32(Parameters["hours"])), Convert.ToInt32(Parameters["sector"]), Convert.ToInt32(Parameters["place"]), Convert.ToDateTime(Parameters["time"]))); case "motorbike": return(vehiclePark.InsertMotorbike( new Motorbike(Parameters["licensePlate"], Parameters["owner"], Convert.ToInt32(Parameters["hours"])), Convert.ToInt32(Parameters["sector"]), Convert.ToInt32(Parameters["place"]), Convert.ToDateTime(Parameters["time"]))); case "truck": return(vehiclePark.InsertTruck( new Truck(Parameters["licensePlate"], Parameters["owner"], Convert.ToInt32(Parameters["hours"])), Convert.ToInt32(Parameters["sector"]), Convert.ToInt32(Parameters["place"]), Convert.ToDateTime(Parameters["time"]))); default: return(new [] { "There is no such type vehicle" }); } }
public void Test_FindVehiclesByOwner_SomeVehiclesMatch_ShouldSortCorrectly() { var park = new VehiclePark(3, 3); var first = new Car("CA1011AH", "John Smith", 1); park.InsertCar(first, 1, 1, new DateTime(2015, 5, 10, 10, 30, 0)); var second = new Truck("CA2022AH", "John Smith", 1); park.InsertTruck(second, 1, 2, new DateTime(2015, 5, 10, 11, 30, 0)); var third = new Truck("CA9999AH", "John Smith", 1); park.InsertTruck(third, 2, 1, new DateTime(2015, 5, 8, 11, 30, 0)); var fourth = new Motorbike("CA1111AH", "John Smith", 1); park.InsertMotorbike(fourth, 2, 2, new DateTime(2015, 5, 8, 11, 30, 0)); string message = park.FindVehiclesByOwner("John Smith"); Assert.AreEqual( "Motorbike [CA1111AH], owned by John Smith\r\n" + "Parked at (2,2)\r\n" + "Truck [CA9999AH], owned by John Smith\r\n" + "Parked at (2,1)\r\n" + "Car [CA1011AH], owned by John Smith\r\n" + "Parked at (1,1)\r\n" + "Truck [CA2022AH], owned by John Smith\r\n" + "Parked at (1,2)", message); }
public void TestInsertCarPlaceOccupied() { // Arrage VehiclePark vehiclePark = new VehiclePark(new Layout(10, 20, new Database(10))); Car vehicle = new Car("CA1001HH", "Endi", 2); Car vehicle2 = new Car("CA1021HH", "Endi", 2); // Act vehiclePark.InsertCar(vehicle, 5, 13, DateTime.Now); string message = vehiclePark.InsertCar(vehicle2, 5, 13, DateTime.Now); // Assert Assert.AreEqual("The place (5,13) is occupied", message); Assert.IsFalse(vehiclePark.Layout.Database.VehiclesInPark.ContainsKey("CA1021HH")); Assert.AreEqual(1, vehiclePark.Layout.Database.OwnerVehicles["Endi"].Count); }
public void Test_InsertCar_CorrectParameters_ShouldInsertTheCar() { var park = new VehiclePark(2, 2); var car = new Car("CA1011AH", "John Smith", 1); string message = park.InsertCar(car, 1, 1, new DateTime(2015, 5, 10, 10, 30, 0)); Assert.AreEqual("Car parked successfully at place (1,1)", message); }
public void InsertCarWithErrorInPlace() { // arrange var vehiclePark = new VehiclePark(1, 1); var command = new Command("Park {\"type\": \"car\", \"time\": \"2015 - 05 - 04T10: 30:00.0000000\", \"sector\": 1, \"place\"" + ": 5, \"licensePlate\": \"CA1001HH\", \"owner\": \"Jay Margareta\", \"hours\": 1}"); var car = new Car { LicensePlate = command.Parameters["licensePlate"], Owner = command.Parameters["owner"], ReservedHours = int.Parse(command.Parameters["hours"]) }; // act var result = vehiclePark.InsertCar( car, int.Parse(command.Parameters["sector"]), int.Parse(command.Parameters["place"]), DateTime.Parse( command.Parameters["time"], null, System.Globalization.DateTimeStyles.RoundtripKind)); // assert Assert.AreEqual("There is no place 5 in sector 1", result, "Place dont exist"); }
public void Test_InsertCar_IncorrectSector_ShouldReturnErrorMessage() { var park = new VehiclePark(2, 2); var car = new Car("CA1011AH", "John Smith", 1); string message = park.InsertCar(car, 10, 1, new DateTime(2015, 5, 10, 10, 30, 0)); Assert.AreEqual("There is no sector 10 in the park", message); }
public void InsertCarWithSuccess() { // arrange var vehiclePark = new VehiclePark(3, 5); var command = new Command("Park {\"type\": \"car\", \"time\": \"2015 - 05 - 04T10: 30:00.0000000\", \"sector\": 1, \"place\"" + ": 5, \"licensePlate\": \"CA1001HH\", \"owner\": \"Jay Margareta\", \"hours\": 1}"); var car = new Car { LicensePlate = command.Parameters["licensePlate"], Owner = command.Parameters["owner"], ReservedHours = int.Parse(command.Parameters["hours"]) }; // act var result = vehiclePark.InsertCar( car, int.Parse(command.Parameters["sector"]), int.Parse(command.Parameters["place"]), DateTime.Parse( command.Parameters["time"], null, System.Globalization.DateTimeStyles.RoundtripKind)); // assert Assert.AreEqual("Car parked successfully at place (1,5)", result, "Car inserted correctly"); }
public void TestInsertCarAlreadyExists() { // Arrage VehiclePark vehiclePark = new VehiclePark(new Layout(10, 20, new Database(10))); Car vehicle = new Car("CA1001HH", "Endi", 2); // Act vehiclePark.InsertCar(vehicle, 5, 13, DateTime.Now); string message = vehiclePark.InsertCar(vehicle, 6, 13, DateTime.Now); // Assert Assert.AreEqual("There is already a vehicle with license plate CA1001HH in the park", message); Assert.IsTrue(vehiclePark.Layout.IsSpotFilled(5, 13)); Assert.IsFalse(vehiclePark.Layout.IsSpotFilled(6, 13)); Assert.IsNotNull(vehiclePark.Layout.Database.VehiclesInPark["CA1001HH"]); Assert.AreEqual(1, vehiclePark.Layout.Database.OwnerVehicles["Endi"].Count); }
public void Test_GetStatus_FullPark_SinglePlaceOnly_ShouldBeCorrect() { var park = new VehiclePark(1, 1); var car = new Car("CA1011AH", "John Smith", 1); park.InsertCar(car, 1, 1, new DateTime(2015, 5, 10, 10, 30, 0)); string message = park.GetStatus(); Assert.AreEqual("Sector 1: 1 / 1 (100% full)", message); }
public void Test_GetStatus_PartiallyFullPark_Big_ShouldBeCorrect() { var park = new VehiclePark(3, 3); var car = new Car("CA1011AH", "John Smith", 1); park.InsertCar(car, 1, 1, new DateTime(2015, 5, 10, 10, 30, 0)); car = new Car("CA1012AH", "John Smith", 1); park.InsertCar(car, 2, 2, new DateTime(2015, 5, 10, 10, 30, 0)); car = new Car("CA1013AH", "John Smith", 1); park.InsertCar(car, 2, 1, new DateTime(2015, 5, 10, 10, 30, 0)); string message = park.GetStatus(); Assert.AreEqual( "Sector 1: 1 / 3 (33% full)\r\n" + "Sector 2: 2 / 3 (67% full)\r\n" + "Sector 3: 0 / 3 (0% full)", message); }
public void Test_InsertCar_IncorrectPlace_ShouldReturnErrorMessage() { var park = new VehiclePark(2, 2); var car = new Car("CA1011AH", "John Smith", 1); string message = park.InsertCar(car, 1, 10, new DateTime(2015, 5, 10, 10, 30, 0)); Assert.AreEqual("There is no place 10 in sector 1", message); }
public void TestInsertCarAtNonExistingPlaceInSectorShouldReturnErrorMessage() { IVehiclePark vehiclePark = new VehiclePark(3, 5); var vehicle = new Car("CA1001HH", "Jay Margareta", 1); string message = vehiclePark.InsertCar(vehicle, 1, 30, new DateTime(2015, 05, 04, 10, 30, 00)); Assert.AreEqual("There is no place 30 in sector 1", message); }
public void TestInsertOneLegitimateCarShouldReturnASuccessMessage() { IVehiclePark vehiclePark = new VehiclePark(3, 5); var vehicle = new Car("CA1001HH", "Jay Margareta", 1); string message = vehiclePark.InsertCar(vehicle, 1, 5, new DateTime(2015, 05, 04, 10, 30, 00)); Assert.AreEqual("Car parked successfully at place (1,5)", message); }
public void TestInsertSecondVehicleForOwner() { // Arrage VehiclePark vehiclePark = new VehiclePark(new Layout(10, 20, new Database(10))); Car vehicle = new Car("CA1001HH", "Endi", 2); Car vehicle2 = new Car("CA1002HH", "Endi", 2); // Act vehiclePark.InsertCar(vehicle, 5, 13, DateTime.Now); vehiclePark.InsertCar(vehicle2, 6, 13, DateTime.Now); // Assert Assert.IsTrue(vehiclePark.Layout.IsSpotFilled(5, 13)); Assert.IsTrue(vehiclePark.Layout.IsSpotFilled(6, 13)); Assert.IsNotNull(vehiclePark.Layout.Database.VehiclesInPark["CA1001HH"]); Assert.IsNotNull(vehiclePark.Layout.Database.VehiclesInPark["CA1002HH"]); Assert.AreEqual(2, vehiclePark.Layout.Database.OwnerVehicles["Endi"].Count); }
public void Test_ExitVehicle_AlreadyExited_ShouldReturnErrorMessage() { var park = new VehiclePark(1, 2); var car = new Car("CA1011AH", "John Smith", 1); DateTime insertDate = new DateTime(2015, 5, 10, 10, 0, 0); park.InsertCar(car, 1, 1, insertDate); park.ExitVehicle("CA1011AH", insertDate.AddHours(2), 10.0M); string message = park.ExitVehicle("CA1011AH", insertDate.AddHours(2), 10.0M); Assert.AreEqual("There is no vehicle with license plate CA1011AH in the park", message); }
public void TestFindVehicleWithNonExistingOwnerShouldReturnErrorMessage() { var vehiclePark = new VehiclePark(2, 3); var vehicle = new Car("CA1001HH", "Jay Margareta", 1); vehiclePark.InsertCar(vehicle, 1, 2, new DateTime(2015, 05, 04, 10, 30, 00)); string message = vehiclePark.FindVehiclesByOwner("Margarata"); Assert.AreEqual("No vehicles by Margarata", message); }
public void TestAVehicleExitWithIncorrectLisenceplateShouldReturnAnErrorMessage() { IVehiclePark vehiclePark = new VehiclePark(3, 5); var vehicle = new Car("CA1001HH", "Jay Margareta", 1); vehiclePark.InsertCar(vehicle, 1, 5, new DateTime(2015, 05, 04, 10, 30, 00)); string message = vehiclePark.ExitVehicle("CA1101HH", new DateTime(2015, 05, 04, 13, 30, 00), 40m); Assert.AreEqual("There is no vehicle with license plate CA1101HH in the park", message); }
public void InsertCarProperly() { string result = park.InsertCar(car, 3, 3, DateTime.Parse( "2015-05-04T10:30:00.0000000", null, System.Globalization.DateTimeStyles.RoundtripKind)); Assert.AreEqual("Car parked successfully at place (3,3)", result); }
public void TestFullPark() { IVehiclePark vehiclePark = new VehiclePark(1, 3); var firstVehicle = new Car("CA1001HH", "Jay Margareta", 1); vehiclePark.InsertCar(firstVehicle, 1, 1, new DateTime(2015, 05, 04, 10, 30, 00)); var secondVehicle = new Car("CA1111HH", "Guy Sheard", 2); vehiclePark.InsertCar(secondVehicle, 1, 2, new DateTime(2015, 05, 04, 10, 40, 00)); var thirdVehicle = new Truck("C5842CH", "Jessie Raul", 5); vehiclePark.InsertTruck(thirdVehicle, 1, 3, new DateTime(2015, 05, 04, 10, 50, 00)); string message = vehiclePark.GetStatus(); var result = new StringBuilder(); result.Append("Sector 1: 3 / 3 (100% full)"); Assert.AreEqual(result.ToString(), message); }
public void SearchVehiclesForExistingOwner() { park.InsertCar(new Car("ЕН7697ВН", "Dinko Todorov", 10), 3, 3, DateTime.Parse( "2015-05-04T10:30:00.0000000", null, System.Globalization.DateTimeStyles.RoundtripKind)); string expectedResult = "Car [ЕН7697ВН], owned by Dinko Todorov\r\nParked at (3,3)"; string result = park.FindVehiclesByOwner("Dinko Todorov"); Assert.AreEqual(expectedResult, result); }
public void GetStatusOnNotEmptyPark() { park.InsertCar(new Car("ЕН7697ВН", "Dinko Todorov", 10), 1, 2, DateTime.Parse( "2015-05-04T10:30:00.0000000", null, System.Globalization.DateTimeStyles.RoundtripKind)); string result = park.GetStatus(); string expectedResult = "Sector 1: 1 / 2 (50% full)\r\nSector 2: 0 / 2 (0% full)"; Assert.AreEqual(expectedResult, result); }
public void Test_ExitVehicle_ShouldRemoveTheVehicle() { var park = new VehiclePark(1, 2); var car = new Car("CA1011AH", "John Smith", 1); DateTime insertDate = new DateTime(2015, 5, 10, 10, 30, 0); park.InsertCar(car, 1, 1, insertDate); park.ExitVehicle("CA1011AH", insertDate.AddHours(1), 10.0M); string message = park.GetStatus(); Assert.AreEqual("Sector 1: 0 / 2 (0% full)", message); }
public void TestFindOneVehicleShouldReturnTheVehicleWithTheOwnerAndTheParkingPlace() { var vehiclePark = new VehiclePark(2, 3); var vehicle = new Car("CA1001HH", "Jay Margareta", 1); vehiclePark.InsertCar(vehicle, 1, 2, new DateTime(2015, 05, 04, 10, 30, 00)); string message = vehiclePark.FindVehiclesByOwner("Jay Margareta"); var result = new StringBuilder(); result.AppendLine("Car [CA1001HH], owned by Jay Margareta").Append("Parked at (1,2)"); Assert.AreEqual(result.ToString(), message); }
public void TestInsertCarOutOfRangePlace() { // Arrage VehiclePark vehiclePark = new VehiclePark(new Layout(10, 20, new Database(10))); Car vehicle = new Car("CA1001HH", "Endi", 2); // Act string message = vehiclePark.InsertCar(vehicle, 5, 21, DateTime.Now); // Assert Assert.AreEqual("There is no place 21 in sector 5", message); Assert.IsFalse(vehiclePark.Layout.Database.VehiclesInPark.ContainsKey("CA1001HH")); Assert.IsFalse(vehiclePark.Layout.Database.OwnerVehicles.ContainsKey("Endi")); }
public void Test_ExitVehicle_MoreTimeThanReserved_ShouldChargeOvertime() { var park = new VehiclePark(1, 2); var car = new Car("CA1011AH", "John Smith", 1); DateTime insertDate = new DateTime(2015, 5, 10, 10, 0, 0); park.InsertCar(car, 1, 1, insertDate); string message = park.ExitVehicle("CA1011AH", insertDate.AddHours(2), 10.0M); Assert.AreEqual( "********************\r\n" + "Car [CA1011AH], owned by John Smith\r\n" + "at place (1,1)\r\n" + "Rate: $2.00\r\n" + "Overtime rate: $3.50\r\n" + "--------------------\r\n" + "Total: $5.50\r\n" + "Paid: $10.00\r\n" + "Change: $4.50\r\n" + "********************", message); }