public void UpdateStatusToRunningWhenRaceStarts(int checkVehicleStatusTimeInSeconds, int raceTotalDistance) { var vehicle = VehicleBuilder.Build(); var actual = vehicle.UpdateStatus(checkVehicleStatusTimeInSeconds, raceTotalDistance); actual.Status.Should().Be(VehicleStatus.Running); actual.Distance.Should().Be(0); }
public void ThrowExceptionIfTheTeamNameIsAlreadyTakenWhenAddingNewCarToTheRace() { var vehicle = VehicleBuilder.Build(); var vehicleToAdd = VehicleBuilder.BuildUpsertVehicleWithId(vehicle.Id); var race = RaceBuilder.BuildWithVehicles(vehicle); Exception ex = Assert.Throws <Exception>(() => race.AddVehicle(vehicleToAdd)); ex.Message.Should().Be($"Team name '{vehicleToAdd.TeamName}' is already taken."); }
public void FindOneVehicleWhenAllThreeSearchParametersAreEntered(string teamName, string model, string vehicleStatus) { var vehicle1 = VehicleBuilder.Build(); var vehicle2 = VehicleBuilder.BuildWithTeamNameAndModelAndStatus("Koksha", "187", VehicleStatus.Pending); var vehicle3 = VehicleBuilder.BuildWithTeamNameAndModelAndStatus("Nino", "187", VehicleStatus.Pending); var vehicles = RaceBuilder.BuildWithVehicles(vehicle1, vehicle2, vehicle3).FindVehicleBy(teamName, model, vehicleStatus); vehicles.Should().HaveCount(1); }
public void ThrowExceptionIfTheTeamNameIsAlreadyTakenWhileTryingToUpdateVehicleInfo() { var vehicle = VehicleBuilder.Build(); var vehicleToUpdate = VehicleBuilder.BuildUpsertVehicleWithId(vehicle.Id); var race = RaceBuilder.BuildWithVehicles(vehicle); Exception ex = Assert.Throws <Exception>(() => race.UpdateVehicleInfo(vehicleToUpdate)); ex.Message.Should().Be($"Team name '{vehicleToUpdate.TeamName}' is already taken."); }
public void ReturnVehicleStatistics() { var vehicle = VehicleBuilder.Build(); var vehicle2 = VehicleBuilder.BuildWithVehicleStatusAndDistanceAndFinishTime(VehicleStatus.Finished, 250, "20:33"); var vehicleStatistics = RaceBuilder.BuildWithVehicles(vehicle, vehicle2).VehicleStatisticsBy(vehicle.Id); vehicleStatistics.Distance.Should().Be(vehicle.Distance); vehicleStatistics.Status.Should().Be(vehicle.Status); vehicleStatistics.FinishTime.Should().Be(vehicle.FinishTime); }
public void UpdateVehicleInfo() { var vehicle = VehicleBuilder.Build(); var vehicleToUpdate = VehicleBuilder.BuildUpsertVehicleWithIdAndTeamNameAndModel(vehicle.Id, "UpdatedTeamName", "UpdatedModel"); var race = RaceBuilder.BuildWithVehicle(vehicle).UpdateVehicleInfo(vehicleToUpdate); var actualVehicle = race.Vehicles.First(); actualVehicle.Model.Should().Be(vehicleToUpdate.Model); actualVehicle.TeamName.Should().Be(vehicleToUpdate.TeamName); actualVehicle.Type.Should().Be(vehicleToUpdate.Type); }
public void StartRace() { var checkRaceProgressionInSeconds = 10; var vehicle = VehicleBuilder.Build(); var vehicle2 = VehicleBuilder.Build(); var race = RaceBuilder.BuildWithVehicles(vehicle, vehicle2).StartRace(checkRaceProgressionInSeconds); var vehiclesStatusIsNotPending = race.Vehicles.All(v => v.Status != VehicleStatus.Pending); race.Status.Should().NotBe(RaceStatusType.Pending); race.Vehicles.Should().NotBeEmpty(); vehiclesStatusIsNotPending.Should().BeTrue(); }
private void doAddVehicle() { Contact contact = ConsoleUtils.ParseContact(); eVehicleType type = ConsoleUtils.ParseVehicleType(); initVehicleBuilder(type); while (true) { try { Console.Clear(); Console.WriteLine(m_VehicleBuilder.ToString()); VehicleBuildType vehicleBuildType = ConsoleUtils.ParseVehicleBuildType(); if (vehicleBuildType == VehicleBuildType.Done) { Vehicle vehicleInBuildProcess = m_VehicleBuilder.Build(); r_GarageContainer.AddVehicle(contact, vehicleInBuildProcess); Console.WriteLine("Vehicle added."); waitForKeyPress(); break; } handleBuild(vehicleBuildType); } catch (ArgumentException ex) { Console.WriteLine(ex.Message); waitForKeyPress(); } catch (ValueOutOfRangeException ex) { Console.WriteLine(ex.Message); waitForKeyPress(); } } }