示例#1
0
        private string getVehicleTypeFromUser()
        {
            Console.WriteLine("Choose vehicle type:");
            StringBuilder vehicleTypesString = new StringBuilder();

            foreach (object vehicleTypeObject in Enum.GetValues(typeof(VehicleGenerator.eVehicleType)))
            {
                vehicleTypesString.Append(
                    string.Format(
                        "{0}. {1}{2}",
                        (int)vehicleTypeObject,
                        vehicleTypeObject,
                        Environment.NewLine));
            }

            Console.WriteLine(vehicleTypesString);
            string chosenType = Console.ReadLine();

            while (!VehicleGenerator.IsVehicleTypeInRange(chosenType))
            {
                Console.WriteLine("Invalid choice. Enter a valid number in range");
                chosenType = Console.ReadLine();
            }

            return(chosenType);
        }
 public SimulationController(int horiz, int vert, int vehicles)
 {
     ConsoleLogger.DeleteLogs();
     this.World              = new Map(horiz, vert, vehicles);
     this.vehicleGenerator   = new VehicleGenerator(this.World);
     this.physicsController  = new PhysicsController(this.World);
     this.decisionController = new DecisionController(this.World);
 }
示例#3
0
        public void Create_Bicycle_Added()
        {
            var input = new VehicleGenerator().CreateBicycle();

            _unitUnderTests.Create(input);

            Assert.IsTrue(true);
        }
示例#4
0
        public void Remove_NoEvents_Removed()
        {
            var vehicle = new VehicleGenerator().Create();

            _unitUnderTests.Remove(vehicle.Name);

            _vehicleRepository.Verify(r => r.Remove(vehicle.Name), Times.Once);
        }
示例#5
0
        public void ChangePlate_Nothing_Changed()
        {
            var car = new VehicleGenerator().CreateCar();

            car.ChangePlate(null);

            Assert.IsTrue(false, "Exception should be throwned");
        }
示例#6
0
        public void Update_UniqueName_Changed()
        {
            var input   = new VehicleGenerator().CreateBicycle();
            var newName = StringGenerator.Create(4);

            _unitUnderTests.Update(input, newName);

            Assert.AreEqual(newName, input.Name);
        }
示例#7
0
        public void ChangePlate_Plate_Changed()
        {
            var car      = new VehicleGenerator().CreateCar();
            var newPlate = RegistrationPlate.Empty;

            car.ChangePlate(newPlate);

            Assert.AreEqual(newPlate, car.Plate);
        }
示例#8
0
        public void Remove_HasEvents_Exception()
        {
            var diaryEvent = new DiaryEventsGenerator().Create();
            var vehicle    = new VehicleGenerator().Create();

            _eventsRepository.Setup(r => r.Get(It.IsAny <Func <DiaryEvent, bool> >())).Returns(new[] { diaryEvent });

            _unitUnderTests.Remove(vehicle.Name);

            _vehicleRepository.Verify(r => r.Remove(vehicle.Name), Times.Never);
        }
示例#9
0
        public void Add_ExistingName_Rejected()
        {
            // arrange
            var input = new VehicleGenerator().Create();

            _vehicleRepository.Setup(r => r.Get(It.IsAny <Func <Vehicle, bool> >())).Returns(new[] { input });

            //act
            _unitUnderTests.Create(input);

            // assert
            Assert.IsTrue(false, "exception was expected, shouldn't hit here");
        }
示例#10
0
        private void createVehicle(string i_LicenseNumber)
        {
            string vehicleType = getVehicleTypeFromUser();

            getOwnerDetailsFromUser(out string ownerName, out string ownerPhoneNumber);
            Vehicle newVehicle = VehicleGenerator.CreateVehicle(i_LicenseNumber, vehicleType);
            List <VehicleDataRequest> requests            = newVehicle.GetVehicleDataRequests();
            List <string>             vehicleDataReceived = new List <string>();

            foreach (VehicleDataRequest request in requests)
            {
                Console.WriteLine(request.Message);
                vehicleDataReceived.Add(getRequestDataFromUser(request));
            }

            newVehicle.UpdateVehicleData(vehicleDataReceived);
            m_Garage.InsertNewVehicle(ownerName, ownerPhoneNumber, newVehicle);
        }
示例#11
0
        private static Vehicle getVehicleFromUser()
        {
            Vehicle       createdVehicle        = null;
            List <object> userEnteredProperties = null;

            GarageENums.eVehicleType typeOfVehicleToAdd = (GarageENums.eVehicleType)getUserChoiceFromEnumValues(typeof(GarageENums.eVehicleType));

            switch (typeOfVehicleToAdd)
            {
            case GarageENums.eVehicleType.FuelCar:
                userEnteredProperties = getPropertiesFromUser(FuelCar.GetRequiredProperties(), 1);
                break;

            case GarageENums.eVehicleType.ElectricCar:
                userEnteredProperties = getPropertiesFromUser(ElectricCar.GetRequiredProperties(), 2);
                break;

            case GarageENums.eVehicleType.FuelMotorcycle:
                userEnteredProperties = getPropertiesFromUser(FuelMotorcycle.GetRequiredProperties(), 3);
                break;

            case GarageENums.eVehicleType.ElectricMotorcycle:
                userEnteredProperties = getPropertiesFromUser(ElectricMotorcycle.GetRequiredProperties(), 4);
                break;

            case GarageENums.eVehicleType.FuelTruck:
                userEnteredProperties = getPropertiesFromUser(FuelTruck.GetRequiredProperties(), 5);
                break;

            default:
                break;
            }

            createdVehicle = VehicleGenerator.GenerateVehicle(typeOfVehicleToAdd, userEnteredProperties);

            return(createdVehicle);
        }
示例#12
0
        private static void addNewCarToFix()
        {
            bool    licenceExist;
            string  modelName;
            string  licenceNumber;
            float   currentEnergyInPercent = -1;
            string  wheelsVendorName;
            float   currentAirPressure;
            Vehicle newVehicle;

            Engine.eEnergyType       energyType = Engine.eEnergyType.Fuel;
            Car.eColorOfCar          colorOfCar;
            Car.eNumOfDoors          numOfDoors;
            Motorcycle.eLicenceTypes licenceType;
            int    engineCapacity;
            bool   isDriveingDangerousThings;
            float  volumeOfCargo;
            string ownerName;
            string ownerPhoneNumber;
            int    vehicleType = 0;
            int    userChoice  = 0;

            Console.WriteLine(
                @"Please choose vehicle type:
1. Car
2. Motorcycle
3. Truck");
            vehicleType = inputBetweenRange(1, 3);

            if (userChoice == 1 || userChoice == 2)
            {
                Console.WriteLine(@"Please enter vehicle energy type:
1. Fuel
2. Electricity");
                userChoice = inputBetweenRange(1, 2);
                switch (userChoice)
                {
                case 1:
                    energyType = Engine.eEnergyType.Fuel;
                    break;

                case 2:
                    energyType = Engine.eEnergyType.Electricity;
                    break;
                }
            }

            Console.Clear();
            Console.Write("Please enter vehicle model name: ");
            modelName = checkEmptyInput();
            Console.Write("Please enter vehicle licence number with 7/8 digits: ");
            licenceNumber = checkLicenceNumber();
            licenceExist  = m_Garage.isLicenceExist(licenceNumber);
            if (licenceExist == true)
            {
                Console.WriteLine("This licence number is already exists in the garage, his status became InFix.");
            }
            else
            {
                Console.Write("Please enter current energy in percent: ");
                currentEnergyInPercent = checkFloatParsing();
                while (currentEnergyInPercent < 0 || currentEnergyInPercent > 100)
                {
                    Console.WriteLine("Invalid input, the input must be between 0 to 100");
                    currentEnergyInPercent = checkFloatParsing();
                }

                Console.Write("Please enter wheels vendor name: ");
                wheelsVendorName = checkEmptyInput();
                Console.Write("Please enter current air pressure in the wheels: ");
                currentAirPressure = checkFloatParsing();
                try
                {
                    newVehicle = VehicleGenerator.VehicleCreator(modelName, licenceNumber, vehicleType, energyType, wheelsVendorName, currentEnergyInPercent, currentAirPressure);
                    Console.Clear();
                    if (newVehicle is Car)
                    {
                        inputCarDetails(out colorOfCar, out numOfDoors);
                        newVehicle.ChangeSpecificDetails(colorOfCar, numOfDoors);
                    }
                    else if (newVehicle is Motorcycle)
                    {
                        inputMotorcycleDetails(out licenceType, out engineCapacity);
                        newVehicle.ChangeSpecificDetails(licenceType, engineCapacity);
                    }
                    else if (newVehicle is Truck)
                    {
                        inputTruckDetails(out isDriveingDangerousThings, out volumeOfCargo);
                        newVehicle.ChangeSpecificDetails(isDriveingDangerousThings, volumeOfCargo);
                    }

                    Console.Clear();
                    Console.Write("Please enter your first name: ");
                    ownerName = Console.ReadLine();
                    while (checkOwnerNameInput(ownerName) != true)
                    {
                        Console.WriteLine("Wrong input, Please enter only letters.");
                        ownerName = Console.ReadLine();
                    }

                    Console.WriteLine("Please enter your phone number in format of 10 digits:");
                    ownerPhoneNumber = Console.ReadLine();
                    while (checkOwnerPhoneNumberInput(ownerPhoneNumber) != true)
                    {
                        Console.WriteLine("Wrong input, Please enter only numbers with 10 digits.");
                        ownerPhoneNumber = Console.ReadLine();
                    }

                    m_Garage.AddNewCarToFix(newVehicle, ownerName, ownerPhoneNumber);
                }
                catch (ValueOutOfRangeException i_ValueOutOfRangeException)
                {
                    Console.WriteLine(i_ValueOutOfRangeException.Message);
                }
            }
        }