public void RemoveVehicleFromTheRace() { var vehicle = VehicleBuilder.BuildWithRunningStatus(); var race = RaceBuilder.BuildWithVehicle(vehicle).RemoveVehicleBy(vehicle.Id); race.Vehicles.Should().NotContain(vehicle); }
public void ReturnLeaderBoardForVehicleType(Vehicle vehicle1, Vehicle vehicle2, Vehicle vehicle3, VehicleType vehicleType) { var vehicles = RaceBuilder.BuildWithVehicles(vehicle1, vehicle2, vehicle3).LeaderBoardForVehicleType(vehicleType); var vehiclesAllTheSameType = vehicles.All(v => v.Type.Equals(vehicleType)); vehiclesAllTheSameType.Should().BeTrue(); }
public void ThrowExceptionIfTheRaceIsRunningAndVehicleIsTryingToBeAddedToTheRace() { var vehicleToAdd = VehicleBuilder.BuildUpsertVehicle(); var race = RaceBuilder.BuildRaceWithRunningStatus(); Exception ex = Assert.Throws <Exception>(() => race.AddVehicle(vehicleToAdd)); ex.Message.Should().Be("Cannot add vehicle to the race that is running."); }
public void AddVehicleToTheRace() { var vehicleToAdd = VehicleBuilder.BuildUpsertVehicle(); var race = RaceBuilder.BuildWithoutVehicles().AddVehicle(vehicleToAdd); race.Vehicles.Should().NotBeEmpty(); race.Vehicles.First().Should().BeEquivalentTo(vehicleToAdd); }
public void FindVehiclesByModelAndStatus(string model, string vehicleStatus) { var vehicle1 = VehicleBuilder.BuildWithTeamNameAndModelAndStatus("Koksha", "187", VehicleStatus.Pending); var vehicle2 = VehicleBuilder.BuildWithTeamNameAndModelAndStatus("Nino", "187", VehicleStatus.Pending); var vehicles = RaceBuilder.BuildWithVehicles(vehicle1, vehicle2).FindVehicleBy(string.Empty, model, vehicleStatus); vehicles.Should().HaveCount(2); }
public void ThrowExceptionIfTheRaceIsRunningAndVehicleIsTryingToBeRemovedFromTheRace() { var vehicle = VehicleBuilder.BuildWithRunningStatus(); var race = RaceBuilder.BuildWithVehicleAndRunningStatus(vehicle); Exception ex = Assert.Throws <Exception>(() => race.RemoveVehicleBy(vehicle.Id)); ex.Message.Should().Be("Vehicle cannot be removed from the race while the race is running."); }
public void ReturnAllVehiclesLeaderBoard(Vehicle vehicle1, Vehicle vehicle2, Vehicle vehicle3) { var vehicles = RaceBuilder.BuildWithVehicles(vehicle1, vehicle2, vehicle3).AllVehiclesLeaderBoard(); vehicles.Should().HaveCount(3); vehicles.Should().Contain(vehicle1); vehicles.Should().Contain(vehicle2); vehicles.Should().Contain(vehicle3); }
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 FindVehiclesByStatus(string vehicleStatus) { var vehicle1 = VehicleBuilder.BuildWithTeamNameAndModelAndStatus("Koksha", "Peugeot", VehicleStatus.Pending); var vehicle2 = VehicleBuilder.BuildWithTeamNameAndModelAndStatus("Nino", "Subaru", VehicleStatus.Pending); var vehicle3 = VehicleBuilder.BuildWithTeamNameAndModelAndStatus("Tibika", "Citroen", VehicleStatus.Running); var vehicles = RaceBuilder.BuildWithVehicles(vehicle1, vehicle2).FindVehicleBy(string.Empty, string.Empty, vehicleStatus); vehicles.Should().HaveCount(2); }
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 ThrowExceptionIfTheRaceIsRunningAndVehicleIsTryingToBeUpdated() { var vehicle = VehicleBuilder.BuildWithRunningStatus(); var updatedVehicle = VehicleBuilder.BuildUpsertVehicleWithIdAndTeamNameAndModel(vehicle.Id, "UpdatedTeamName", "UpdatedModel"); var race = RaceBuilder.BuildWithVehicleAndRunningStatus(vehicle); Exception ex = Assert.Throws <Exception>(() => race.UpdateVehicleInfo(updatedVehicle)); ex.Message.Should().Be("Cannot update vehicle info while the race is running."); }
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 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 SeasonController(FormulaContext context, UserManager <SimUser> userManager, ISeasonService seasons, IChampionshipService championships, ITrackService tracks, RaceBuilder raceBuilder) : base(context, userManager) { _seasons = seasons; _championships = championships; _tracks = tracks; _raceBuilder = raceBuilder; }
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(); }
public RacesController(FormulaContext context, UserManager <SimUser> userManager, IRaceService raceService, ISeasonService seasonService, ITrackService trackService, RaceResultGenerator raceResultGenerator, RaceBuilder raceBuilder) : base(context, userManager) { _raceService = raceService; _seasonService = seasonService; _trackService = trackService; _resultGenerator = raceResultGenerator; _raceBuilder = raceBuilder; }
public SeasonService(FormulaContext context, RaceBuilder raceBuilder) : base(context) { _raceBuilder = raceBuilder; }
// Expose AGS singular #defines as C# constants (or static getters) // public const int PATH_NODE_SELECT_THRESHOLD = DEBUG_AI_NODE_RADIUS * 2; // Expose RaceBuilder methods so they can be used without instance prefix public static void EnableRaceBuilder(bool enable) { RaceBuilder.EnableRaceBuilder(enable); }