public void FindVehicle_AnNonExistingLicensePlate_ShouldReturnWarning() { var vehicleParkDataMock = new VehicleParkDataMock(DefaultParkSectors); var vehicleParkMocked = new VehiclePark(DefaultParkSectors, DefaultParkPlacesPerSector, vehicleParkDataMock); var actualResut = vehicleParkMocked.FindVehicle("CA0003AH"); var expectedResult = "There is no vehicle with license plate CA0003AH in the park"; Assert.AreEqual(expectedResult, actualResut, "Did not return proper warning."); }
public void TestFindVehicleFail() { // Arrange IVehiclePark vehiclePark = new VehiclePark(this.CreateMockLayout()); string expectedMessage = "There is no vehicle with license plate FF00021AB in the park"; // Act string message = vehiclePark.FindVehicle("FF00021AB"); // Assert Assert.AreEqual(expectedMessage, message); }
public void FindVehicle_AnExistingLicensePlate_ShouldReturnExpectedVehicle() { // var mockMOckedData = new Mock<VehicleParkDataMock>(DefaultParkSectors); var vehicleParkDataMock = new VehicleParkDataMock(DefaultParkSectors); var vehicleParkMocked = new VehiclePark(DefaultParkSectors, DefaultParkPlacesPerSector, vehicleParkDataMock); var actualResut = vehicleParkMocked.FindVehicle("CA0001AH"); var expectedResult = "Car [CA0001AH], owned by Gosho\r\nParked at (0,1)"; Assert.AreEqual(expectedResult, actualResut, "Did not return proper vehicle."); }
public void TestFindVehicleSuccess() { // Arrange IVehiclePark vehiclePark = new VehiclePark(this.CreateMockLayout()); StringBuilder sb = new StringBuilder(); sb.Append("Car [FF00021AC], owned by Endi"); sb.Append(Environment.NewLine); sb.Append("Parked at (1, 1)"); string expectedMessage = sb.ToString(); // Act string message = vehiclePark.FindVehicle("FF00021AC"); // Assert Assert.AreEqual(expectedMessage, message); }
public void FindVeficle_ValidLicencePlate_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>() { { "(1,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("AA0000AA"); var expected = "Car [AA0000AA], owned by Owner\r\n" + "Parked at (1,2)\r\n"; Assert.AreEqual(expected, found); }
public string[] Execute(VehiclePark vehiclePark) { return(vehiclePark.FindVehicle(Parameters.Values.ToArray()[0])); }
public string Execution(ICommand command) { if (command.Name != "SetupPark" && VehiclePark == null) { return "The vehicle park has not been set up"; } switch (command.Name) { //SetupPark {"sectors": 3, "placesPerSector": 5} case "SetupPark": { int iniciatedSectors = int.Parse(command.Parameters["sectors"]); int initiatedPlacesPerSector = int.Parse(command.Parameters["placesPerSector"]); if (iniciatedSectors <= 0) { return "The number of sectors must be positive"; } if (initiatedPlacesPerSector <= 0) { return "The number of places per sector must be positive"; } this.VehiclePark = new VehiclePark(iniciatedSectors, initiatedPlacesPerSector); return "Vehicle park created"; break; } case "Park": { switch (command.Parameters["type"]) { case "car": { return this.ExecuteParkCar(command); break; } case "motorbike": { return ExecuteParkMotorbike(command); break; } case "truck": { return ExecuteParkTruck(command); break; } default: throw new IndexOutOfRangeException("Invalid command inside."); } break; } case "Exit": { return VehiclePark.ExitVehicle( command.Parameters["licensePlate"], DateTime.Parse(command.Parameters["time"], null, System.Globalization.DateTimeStyles.RoundtripKind), decimal.Parse(command.Parameters["paid"])); break; } case "Status": { return VehiclePark.GetStatus(); break; } case "FindVehicle": { return VehiclePark.FindVehicle(command.Parameters["licensePlate"]); break; } case "VehiclesByOwner": { return VehiclePark.FindVehiclesByOwner(command.Parameters["owner"]); break; } default: throw new IndexOutOfRangeException("Invalid command."); } }
public void VehicleExit_ShouldBeRemovedFromPark() { // 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)); park.ExitVehicle(licensePlate, new DateTime(2015, 10, 17, 13, 30, 0), 6M); string result = string.Empty; try { park.FindVehicle(licensePlate); } catch (Exception ex) { result = ex.Message; } string expected = string.Format(GlobalMessages.VehicleNotPresent, licensePlate); // Assert Assert.AreEqual(expected, result); }
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); }