Esempio n. 1
0
        public void RemoveVehicleFromTheRace()
        {
            var vehicle = VehicleBuilder.BuildWithRunningStatus();

            var race = RaceBuilder.BuildWithVehicle(vehicle).RemoveVehicleBy(vehicle.Id);

            race.Vehicles.Should().NotContain(vehicle);
        }
Esempio n. 2
0
        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();
        }
Esempio n. 3
0
        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.");
        }
Esempio n. 4
0
        public void AddVehicleToTheRace()
        {
            var vehicleToAdd = VehicleBuilder.BuildUpsertVehicle();

            var race = RaceBuilder.BuildWithoutVehicles().AddVehicle(vehicleToAdd);

            race.Vehicles.Should().NotBeEmpty();
            race.Vehicles.First().Should().BeEquivalentTo(vehicleToAdd);
        }
Esempio n. 5
0
        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);
        }
Esempio n. 6
0
        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.");
        }
Esempio n. 7
0
        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);
        }
Esempio n. 8
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.");
        }
Esempio n. 9
0
        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);
        }
Esempio n. 10
0
        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.");
        }
Esempio n. 11
0
        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.");
        }
Esempio n. 12
0
        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);
        }
Esempio n. 13
0
        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);
        }
Esempio n. 14
0
        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);
        }
Esempio n. 15
0
 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;
 }
Esempio n. 16
0
        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();
        }
Esempio n. 17
0
 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;
 }
Esempio n. 18
0
 public SeasonService(FormulaContext context, RaceBuilder raceBuilder) : base(context)
 {
     _raceBuilder = raceBuilder;
 }
Esempio n. 19
0
        // 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);
        }