public string Execute(ICommand command) { if (command.Name != "SetupPark" && this.VehiclePark == null) { throw new InvalidOperationException(Messages.ParkNotSetUp); } switch (command.Name) { case "SetupPark": this.VehiclePark = new VehiclePark(int.Parse(command.CommandParameters["sectors"]), int.Parse(command.CommandParameters["placesPerSector"])); return Messages.CreatedPark; case "Park": return this.ParkVehicle(command, command.CommandParameters["type"]); case "Exit": return this.VehiclePark.ExitVehicle( command.CommandParameters["licensePlate"], DateTime.Parse(command.CommandParameters["time"], null, DateTimeStyles.RoundtripKind), decimal.Parse(command.CommandParameters["paid"])); case "Status": return this.VehiclePark.GetStatus(); case "FindVehicle": return this.VehiclePark.FindVehicle(command.CommandParameters["licensePlate"]); case "VehiclesByOwner": return this.VehiclePark.FindVehiclesByOwner(command.CommandParameters["owner"]); default: throw new InvalidOperationException(Messages.InvalidCommand); } }
public void Test_InsertMotorbike_IncorrectPlace_ShouldReturnErrorMessage() { var park = new VehiclePark(2, 2); var motorbike = new Motorbike("CA1011AH", "John Smith", 1); var message = park.InsertMotorbike(motorbike, 1, 10, new DateTime(2015, 5, 10, 10, 30, 0)); Assert.AreEqual("There is no place 10 in sector 1", message); }
public void Test_InsertTruck_IncorrectPlace_ShouldReturnErrorMessage() { var park = new VehiclePark(2, 2); var truck = new Truck("CA1011AH", "John Smith", 1); string message = park.InsertTruck(truck, 1, 10, new DateTime(2015, 5, 10, 10, 30, 0)); Assert.AreEqual("There is no place 10 in sector 1", message); }
public void Test_InsertTruck_CorrectParameters_ShouldInsertTheTruck() { var park = new VehiclePark(2, 2); var truck = new Truck("CA1011AH", "John Smith", 1); var message = park.InsertTruck(truck, 1, 1, new DateTime(2015, 5, 10, 10, 30, 0)); Assert.AreEqual("Truck parked successfully at place (1,1)", message); }
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 Test_InsertMotorbike_CorrectParameters_ShouldInsertTheMotorbike() { var park = new VehiclePark(2, 2); var motorbike = new Motorbike("CA1011AH", "John Smith", 1); var message = park.InsertMotorbike(motorbike, 1, 1, new DateTime(2015, 5, 10, 10, 30, 0)); Assert.AreEqual("Motorbike parked successfully at place (1,1)", message); }
public void InsertMultipleVehicleValidOperation_ShouldReturnCorrectResult() { // Arrange IVehiclePark park = new VehiclePark(2, 3); IVehicle car1 = new Car("CA1234CA", "Pesho", 3); IVehicle car2 = new Car("CA1235CA", "Pesho", 3); IVehicle car3 = new Car("CA1236CA", "Pesho", 3); IVehicle car4 = new Car("CA1237CA", "Pesho", 3); IVehicle car5 = new Car("CA1238CA", "Pesho", 3); IVehicle car6 = new Car("CA1239CA", "Pesho", 3); StringBuilder result = new StringBuilder(); StringBuilder expected = new StringBuilder(); // Act result.AppendLine(park.InsertVehicle(car1, 1, 1, new DateTime(2015, 10, 17, 10, 30, 0))); result.AppendLine(park.InsertVehicle(car2, 1, 2, new DateTime(2015, 10, 17, 10, 30, 0))); result.AppendLine(park.InsertVehicle(car3, 1, 3, new DateTime(2015, 10, 17, 10, 30, 0))); result.AppendLine(park.InsertVehicle(car4, 2, 1, new DateTime(2015, 10, 17, 10, 30, 0))); result.AppendLine(park.InsertVehicle(car5, 2, 2, new DateTime(2015, 10, 17, 10, 30, 0))); result.AppendLine(park.InsertVehicle(car6, 2, 3, new DateTime(2015, 10, 17, 10, 30, 0))); expected.AppendLine(string.Format(GlobalMessages.VehicleParked, car1.GetType().Name, "(1,1)")); expected.AppendLine(string.Format(GlobalMessages.VehicleParked, car1.GetType().Name, "(1,2)")); expected.AppendLine(string.Format(GlobalMessages.VehicleParked, car1.GetType().Name, "(1,3)")); expected.AppendLine(string.Format(GlobalMessages.VehicleParked, car1.GetType().Name, "(2,1)")); expected.AppendLine(string.Format(GlobalMessages.VehicleParked, car1.GetType().Name, "(2,2)")); expected.AppendLine(string.Format(GlobalMessages.VehicleParked, car1.GetType().Name, "(2,3)")); // Assert Assert.AreEqual(expected.ToString(), result.ToString()); }
public void Test_GetStatus_EmptyPark_SinglePlaceOnly_ShouldBeCorrect() { var park = new VehiclePark(1, 1); string message = park.GetStatus(); Assert.AreEqual("Sector 1: 0 / 1 (0% full)", message); }
public void InitExit() { var mockedData = new Mock<IVehicleParkData>(); mockedData.Setup(m => m.GetVehiclesByOwner("pesho")).Returns(new List<IVehicle>()); var car1 = new Car("SA1234BB", "ivan", 10); var car2 = new Car("SA1234BC", "ivan", 5); var car3 = new Car("SA1234BD", "ivan", 3); mockedData.Setup(m => m.GetVehiclesByOwner("ivan")) .Returns(new List<IVehicle>() { car1, car2, car3 }); mockedData.Setup(m => m.GetVehicle("SA1234BB")) .Returns(car1); mockedData.Setup(m => m.GetParkedSpot(car1)).Returns("(1,1)"); mockedData.Setup(m => m.GetVehicle("SA1234BC")) .Returns(car2); mockedData.Setup(m => m.GetParkedSpot(car2)).Returns("(1,2)"); mockedData.Setup(m => m.GetVehicle("SA1234BD")) .Returns(car3); mockedData.Setup(m => m.GetParkedSpot(car3)).Returns("(1,3)"); this.vehiclePark = new VehiclePark(10, 10, mockedData.Object); }
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 VehicleExitNonPresentLicensePlate_ShouldThrowExceptionWithCorrectResult() { // Arrange IVehiclePark park = new VehiclePark(2, 2); string licensePlate = "CA1234CA"; IVehicle car = new Car(licensePlate, "Pesho", 3); int sector = 1; int place = 1; // Act park.InsertVehicle(car, sector, place, new DateTime(2015, 10, 17, 10, 30, 0)); string result = string.Empty; try { park.ExitVehicle("CA1234CB", new DateTime(2015, 10, 17, 13, 30, 0), 6M); } catch (Exception ex) { result = ex.Message; } string expected = string.Format(GlobalMessages.VehicleNotPresent, "CA1234CB"); // Assert Assert.AreEqual(expected, result); }
public void Test_ExitVehicle_InvalidLicensePlate_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); 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 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 TestFindVehcleWhenNotPresentShouldReturnErrorStatus() { var mockedData = new Mock<IVehicleParkData>(); this.vehiclePark = new VehiclePark(10, 10, mockedData.Object); var message = this.vehiclePark.FindVehicle("CA1234VV"); Assert.AreEqual(string.Format(Message.NoSuchVehicle, "CA1234VV"), message); }
public override object Execute() { var newVehiclePark = new VehiclePark( new Layout(int.Parse(this.Parameters["sectors"]), int.Parse(this.Parameters["placesPerSector"])), new Database(int.Parse(this.Parameters["sectors"]))); return newVehiclePark; }
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 Test_InsertMotorbike_OccupiedPlace_ShouldReturnErrorMessage() { var park = new VehiclePark(2, 2); var motorbike = new Motorbike("CA1011AH", "John Smith", 1); park.InsertMotorbike(motorbike, 1, 1, new DateTime(2015, 5, 10, 10, 30, 0)); var otherMotorbike = new Motorbike("CA1022AH", "Jane Smith", 1); var message = park.InsertMotorbike(otherMotorbike, 1, 1, new DateTime(2015, 5, 10, 12, 30, 0)); Assert.AreEqual("The place (1,1) is occupied", message); }
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_InsertMotorbike_FillPark_ShouldInsertAllMotorbikes() { var park = new VehiclePark(2, 1); var motorbike = new Motorbike("CA1011AH", "John Smith", 1); var message = park.InsertMotorbike(motorbike, 1, 1, new DateTime(2015, 5, 10, 10, 30, 0)); Assert.AreEqual("Motorbike parked successfully at place (1,1)", message); var otherMotorbike = new Motorbike("CA1022AH", "Jane Smith", 1); message = park.InsertMotorbike(otherMotorbike, 2, 1, new DateTime(2015, 5, 10, 12, 30, 0)); Assert.AreEqual("Motorbike parked successfully at place (2,1)", message); }
public void Test_GetStatus_EmptyPark_Big_ShouldBeCorrect() { var park = new VehiclePark(3, 3); string message = park.GetStatus(); Assert.AreEqual( "Sector 1: 0 / 3 (0% full)\r\n" + "Sector 2: 0 / 3 (0% full)\r\n" + "Sector 3: 0 / 3 (0% full)", 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_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_InsertTruck_FillPark_ShouldInsertAllTrucks() { var park = new VehiclePark(2, 1); var truck = new Truck("CA1011AH", "John Smith", 1); var message = park.InsertTruck(truck, 1, 1, new DateTime(2015, 5, 10, 10, 30, 0)); Assert.AreEqual("Truck parked successfully at place (1,1)", message); var otherTruck = new Truck("CA1022AH", "Jane Smith", 1); message = park.InsertTruck(otherTruck, 2, 1, new DateTime(2015, 5, 10, 12, 30, 0)); Assert.AreEqual("Truck parked successfully at place (2,1)", message); }
public void GetStatusEmptyParking_ShouldReturnCorrectResult() { // Arrange IVehiclePark park = new VehiclePark(2, 2); // Act string result = park.GetStatus(); string expected = "Sector 1: 0 / 2 (0% full)\r\nSector 2: 0 / 2 (0% full)"; // Assert Assert.AreEqual(expected, result); }
public void Test_FindVehiclesByOwner_SingleVehicle_ShouldReturnTheVehicle() { 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.FindVehiclesByOwner("John Smith"); Assert.AreEqual( "Car [CA1011AH], owned by John Smith\r\n" + "Parked at (1,1)", message); }
public void GetStatusOneVehicle_ShouldReturnCorrectResult() { // Arrange int totalSectors = 2; IVehiclePark park = new VehiclePark(totalSectors, 2); IVehicle car = new Car("CA1234CA", "Pesho", 3); // Act park.InsertVehicle(car, 1, 1, new DateTime(2015, 10, 17, 10, 30, 0)); string result = park.GetStatus(); string expected = "Sector 1: 1 / 2 (50% full)\r\nSector 2: 0 / 2 (0% full)"; // Assert Assert.AreEqual(expected, result); }
public void GetStatusFullSingleSector_ShouldReturnCorrectResult() { // Arrange IVehiclePark park = new VehiclePark(2, 2); IVehicle car3 = new Car("CA1236CA", "Pesho", 3); IVehicle car4 = new Car("CA1237CA", "Pesho", 3); // Act park.InsertVehicle(car3, 2, 1, new DateTime(2015, 10, 17, 10, 30, 0)); park.InsertVehicle(car4, 2, 2, new DateTime(2015, 10, 17, 10, 30, 0)); string result = park.GetStatus(); string expected = "Sector 1: 0 / 2 (0% full)\r\nSector 2: 2 / 2 (100% full)"; // Assert Assert.AreEqual(expected, result); }
public void VehicleExitExactlyOnTime_ShouldReturnCorrectResult() { // Arrange IVehiclePark park = new VehiclePark(2, 2); string licensePlate = "CA1234CA"; IVehicle car = new Car(licensePlate, "Pesho", 3); int sector = 1; int place = 1; // Act park.InsertVehicle(car, sector, place, new DateTime(2015, 10, 17, 10, 30, 0)); string result = park.ExitVehicle(licensePlate, new DateTime(2015, 10, 17, 13, 30, 0), 6M); string expected = "********************\r\nCar [CA1234CA], owned by Pesho\nat place (1,1)\nRate: $6,00\nOvertime rate: $0,00\r\n--------------------\r\nTotal: $6,00\nPaid: $6,00\nChange: $0,00\r\n********************"; // Assert Assert.AreEqual(expected, result); }
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_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); }
public void FindVeficle_InValidLicencePlate_ShouldReturnVehicle() { var mock = new Mock <IData>(); mock.Setup(vp => vp.VehiclesInPark).Returns(new Dictionary <IVehicle, string>() { { this.vehicle, "(1,2)" } }); mock.Setup(vp => vp.ParkingPlace).Returns(new Dictionary <string, IVehicle>() { { "2", this.vehicle } }); mock.Setup(vp => vp.LicencePlates).Returns(new Dictionary <string, IVehicle>() { { "AA0000AA", this.vehicle } }); mock.Setup(vp => vp.StartTime).Returns(new Dictionary <IVehicle, DateTime>() { { this.vehicle, new DateTime(2016, 2, 6, 10, 15, 30) } }); mock.Setup(vp => vp.Owners).Returns(new MultiDictionary <string, IVehicle>(false) { { "Owner", this.vehicle } }); mock.Setup(vp => vp.Count).Returns(new int[2]); var mock2 = new Mock <ILayout>(); mock2.Setup(l => l.Sectors).Returns(2); mock2.Setup(l => l.Places).Returns(3); var park = new VehiclePark(mock2.Object, mock.Object); var found = park.FindVehicle("BB0000BB"); var expected = "There is no vehicle with license plate BB0000BB in the park"; Assert.AreEqual(expected, found); }
public void Test_ExitVehicle_LessTimeThanReserved_ShouldChargeForTheReservedTime() { var park = new VehiclePark(1, 2); var car = new Car("CA1011AH", "John Smith", 2); DateTime insertDate = new DateTime(2015, 5, 10, 10, 0, 0); park.InsertCar(car, 1, 1, insertDate); string message = park.ExitVehicle("CA1011AH", insertDate.AddHours(1), 10.0M); Assert.AreEqual( "********************\r\n" + "Car [CA1011AH], owned by John Smith\r\n" + "at place (1,1)\r\n" + "Rate: $4.00\r\n" + "Overtime rate: $0.00\r\n" + "--------------------\r\n" + "Total: $4.00\r\n" + "Paid: $10.00\r\n" + "Change: $6.00\r\n" + "********************", message); }
public void TestAVehicleExitSuccessWithLessThanTheStayingHoursShouldReturnAnExitTicketWithFullHoursPaid() { 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("CA1001HH", new DateTime(2015, 05, 04, 10, 50, 00), 40m); var ticket = new StringBuilder(); ticket.AppendLine("********************") .AppendLine("Car [CA1001HH], owned by Jay Margareta") .AppendLine("at place (1,5)") .AppendLine("Rate: $2.00") .AppendLine("Overtime rate: $0.00") .AppendLine("--------------------") .AppendLine("Total: $2.00") .AppendLine("Paid: $40.00") .AppendLine("Change: $38.00") .Append("********************"); Assert.AreEqual(ticket.ToString(), message); }
public void TestInsertCarInvalidPlate() { // Arrage string message; VehiclePark vehiclePark = new VehiclePark(new Layout(10, 20, new Database(10))); try { Car vehicle = new Car("CAAA01HH", "Endi", 2); // Act message = vehiclePark.InsertCar(vehicle, 6, 13, DateTime.Now); } catch (ArgumentException e) { message = e.Message; } // Assert Assert.AreEqual("The license plate number is invalid.", message); Assert.IsFalse(vehiclePark.Layout.IsSpotFilled(6, 13)); Assert.IsFalse(vehiclePark.Layout.Database.VehiclesInPark.ContainsKey("CA01HH")); Assert.IsFalse(vehiclePark.Layout.Database.OwnerVehicles.ContainsKey("Endi")); }
public void TestInitialize() { park = new VehiclePark(5, 5); car = new Car("ЕН7697ВН", "Dinko Todorov", 10); }
public void InitializeData() { this.park = new VehiclePark(3, 2); this.vehicle = new Car("AA0000AA", "Owner", 2); this.anotherVehicle = new Motorbike("BB0000BB", "Owner", 3); }
public string Execute(ICommand command) { if (command.Name != "SetupPark" && VehiclePark == null) { return("The vehicle park has not been set up"); } var parameters = command.Parameters; switch (command.Name) { case "SetupPark": if (int.Parse(parameters["sectors"]) < 0) { return("The number of sectors must be positive"); } if (int.Parse(parameters["placesPerSector"]) < 0) { return("The number of places per sector must be positive"); } this.VehiclePark = new VehiclePark( int.Parse(parameters["sectors"]), int.Parse(parameters["placesPerSector"])); return("Vehicle park created"); case "Park": string licensePlate = parameters["licensePlate"]; string owner = parameters["owner"]; int reservedHours = int.Parse(parameters["hours"]); int sector = int.Parse(parameters["sector"]); int place = int.Parse(parameters["place"]); DateTime dateTime = DateTime.Parse( parameters["time"], null, System.Globalization.DateTimeStyles.RoundtripKind); switch (command.Parameters["type"]) { case "car": return(VehiclePark.InsertCar( new Car(licensePlate, owner, reservedHours), sector, place, dateTime)); case "motorbike": return(VehiclePark.InsertMotorbike( new Motorbike(licensePlate, owner, reservedHours), sector, place, dateTime)); case "truck": return(VehiclePark.InsertTruck( new Truck(licensePlate, owner, reservedHours), sector, place, dateTime)); } break; case "Exit": return(VehiclePark.ExitVehicle( parameters["licensePlate"], DateTime.Parse(parameters["time"], null, System.Globalization.DateTimeStyles.RoundtripKind), decimal.Parse(parameters["paid"]))); case "Status": return(VehiclePark.GetStatus()); case "FindVehicle": return(VehiclePark.FindVehicle( parameters["licensePlate"])); case "VehiclesByOwner": return(VehiclePark.FindVehiclesByOwner( parameters["owner"])); default: throw new IndexOutOfRangeException("Invalid command."); } return(string.Empty); }
public string[] Execute(VehiclePark current) { return(current.ExitVehicle(Parameters["licensePlate"], DataTimeUtilities.ParseISODateTime(Parameters["time"]), Convert.ToDecimal(Parameters["paid"]))); }
public void InitGetStatus() { this.vehiclePark = new VehiclePark(2, 2); }
public string Execute(ICommand command) { if (command.Name != "SetupPark" && this.VehiclePark == null) { return("The vehicle park has not been set up"); } switch (command.Name) { case "SetupPark": var sectors = int.Parse(command.Parameters["sectors"]); var places = int.Parse(command.Parameters["placesPerSector"]); this.VehiclePark = new VehiclePark(sectors, places); return("Vehicle park created"); case "Park": var type = command.Parameters["type"]; var licensePlate = command.Parameters["licensePlate"]; var owner = command.Parameters["owner"]; var reservedHours = int.Parse(command.Parameters["hours"]); var sector = int.Parse(command.Parameters["sector"]); var place = int.Parse(command.Parameters["place"]); var startTime = DateTime.Parse( command.Parameters["time"], null, System.Globalization.DateTimeStyles.RoundtripKind); switch (type) { case "car": var car = new Car(licensePlate, owner, reservedHours); return(this.VehiclePark.InsertVehicle(car, sector, place, startTime)); case "motorbike": var motorbike = new Motorbike(licensePlate, owner, reservedHours); return(this.VehiclePark.InsertVehicle(motorbike, sector, place, startTime)); case "truck": var truck = new Truck(licensePlate, owner, reservedHours); return(this.VehiclePark.InsertVehicle(truck, sector, place, startTime)); default: throw new InvalidOperationException("Invalid vehicle."); } case "Exit": licensePlate = command.Parameters["licensePlate"]; var endTime = DateTime.Parse( command.Parameters["time"], null, System.Globalization.DateTimeStyles.RoundtripKind); var price = decimal.Parse(command.Parameters["paid"]); return(this.VehiclePark.ExitVehicle(licensePlate, endTime, price)); case "Status": return(this.VehiclePark.GetStatus()); case "FindVehicle": licensePlate = command.Parameters["licensePlate"]; return(this.VehiclePark.FindVehicle(licensePlate)); case "VehiclesByOwner": owner = command.Parameters["owner"]; return(this.VehiclePark.FindVehiclesByOwner(owner)); default: throw new InvalidOperationException("Invalid command."); } }
public void TestInitialize() { park = new VehiclePark(2, 2); }
public void InitExit() { this.vehiclePark = new VehiclePark(10, 10); }
public string[] Execute(VehiclePark vehiclePark) { return(vehiclePark.FindVehicle(Parameters.Values.ToArray()[0])); }
public string ExecuteCommand(ICommand command) { string commandResult = string.Empty; if (command.Name != "SetupPark" && this.VehiclePark == null) { commandResult = "The vehicle park has not been set up"; return(commandResult); } switch (command.Name) { case "SetupPark": this.VehiclePark = new VehiclePark( int.Parse(command.Parameters["sectors"]), int.Parse(command.Parameters["placesPerSector"])); commandResult = "Vehicle park created"; break; case "Park": switch (command.Parameters["type"]) { case "car": commandResult = this.ExecuteParkCarCommand(command); break; case "motorbike": commandResult = this.ExecuteParkMotorbikeCommand(command); break; case "truck": commandResult = this.ExecuteParkTruckCommand(command); break; default: break; } break; case "Exit": commandResult = this.VehiclePark.ExitVehicle( command.Parameters["licensePlate"], DateTimeUtilities.ParseISODateTime(command.Parameters["time"]), decimal.Parse(command.Parameters["paid"])); break; case "Status": commandResult = this.VehiclePark.GetStatus(); break; case "FindVehicle": commandResult = this.VehiclePark.FindVehicle(command.Parameters["licensePlate"]); break; case "VehiclesByOwner": commandResult = this.VehiclePark.FindVehiclesByOwner(command.Parameters["owner"]); break; default: throw new InvalidOperationException("Invalid command."); } return(commandResult); }
public VehicleParkBuilder WithInitialState(int sectors, int placesPerSector) { _vehiclePark = new VehiclePark(sectors, placesPerSector); return(this); }
public string ExcecuteCommand(ref IVehiclePark vehiclePark) { vehiclePark = new VehiclePark(new Layout(this.Sectors, this.PlacesPerSector, new Database(this.Sectors))); return("Vehicle park created!"); }
public string[] Execute(VehiclePark vehiclePark) { return(vehiclePark.GetStatus()); }
public string TaskExecute(ICommand command) { if (command.Name != "SetupPark" && this.VehiclePark == null) { return("The vehicle park has not been set up"); } // TODO this switch can be replaced by strategy pattern in the future switch (command.Name) { case "SetupPark": this.VehiclePark = new VehiclePark(Convert.ToInt32(command.Parameters["sectors"]), Convert.ToInt32(command.Parameters["placesPerSector"])); return("Vehicle park created"); case "Park": var vehicleValidation = new VehicleValidation(); switch (command.Parameters["type"]) { case "car": var car = new Car { LicensePlate = command.Parameters["licensePlate"], Owner = command.Parameters["owner"], ReservedHours = int.Parse(command.Parameters["hours"]) }; vehicleValidation.Validate(car); return(this.VehiclePark.InsertCar( car, int.Parse(command.Parameters["sector"]), int.Parse(command.Parameters["place"]), DateTime.Parse( command.Parameters["time"], null, System.Globalization.DateTimeStyles.RoundtripKind))); case "motorbike": var motorbike = new Motorbike { LicensePlate = command.Parameters["licensePlate"], Owner = command.Parameters["owner"], ReservedHours = int.Parse(command.Parameters["hours"]) }; vehicleValidation.Validate(motorbike); return(this.VehiclePark.InsertMotorbike( motorbike, int.Parse(command.Parameters["sector"]), int.Parse(command.Parameters["place"]), DateTime.Parse( command.Parameters["time"], null, System.Globalization.DateTimeStyles.RoundtripKind))); case "truck": var truck = new Truck() { LicensePlate = command.Parameters["licensePlate"], Owner = command.Parameters["owner"], ReservedHours = int.Parse(command.Parameters["hours"]) }; vehicleValidation.Validate(truck); return(this.VehiclePark.InsertTruck( truck, int.Parse(command.Parameters["sector"]), int.Parse(command.Parameters["place"]), DateTime.Parse( command.Parameters["time"], null, System.Globalization.DateTimeStyles.RoundtripKind))); default: return("Invalid parameter."); } case "Exit": return(this.VehiclePark.ExitVehicle( command.Parameters["licensePlate"], DateTime.Parse(command.Parameters["time"], null, System.Globalization.DateTimeStyles.RoundtripKind), decimal.Parse(command.Parameters["paid"]))); case "Status": return(this.VehiclePark.GetStatus()); case "FindVehicle": return(this.VehiclePark.FindVehicle(command.Parameters["licensePlate"])); case "VehiclesByOwner": return(this.VehiclePark.FindVehiclesByOwner(command.Parameters["owner"])); default: return("Invalid command."); } }
public void InitInsertCar() { this.vehiclePark = new VehiclePark(10, 10); }
public void InitializeData() { this.park = new VehiclePark(3, 2); this.vehicle = new Car("AA0000AA", "Owner", 2); }
public string[] Execute(VehiclePark vehiclePark) { return(vehiclePark.FindVehiclesByOwner(Parameters["owner"])); }