Esempio n. 1
0
        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);
        }
Esempio n. 2
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. 3
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. 4
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. 5
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. 6
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. 7
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();
        }
        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();
                }
            }
        }