public void InsertMultipleVehicleValidOperation_ShouldReturnCorrectResult()
        {
            // Arrange
            IVehiclePark park = new VehiclePark(2, 3);
            IVehicle car1 = new Car("CA1234CA", "Pesho", 3);
            IVehicle car2 = new Car("CA1235CA", "Pesho", 3);
            IVehicle car3 = new Car("CA1236CA", "Pesho", 3);
            IVehicle car4 = new Car("CA1237CA", "Pesho", 3);
            IVehicle car5 = new Car("CA1238CA", "Pesho", 3);
            IVehicle car6 = new Car("CA1239CA", "Pesho", 3);
            StringBuilder result = new StringBuilder();
            StringBuilder expected = new StringBuilder();

            // Act
            result.AppendLine(park.InsertVehicle(car1, 1, 1, new DateTime(2015, 10, 17, 10, 30, 0)));
            result.AppendLine(park.InsertVehicle(car2, 1, 2, new DateTime(2015, 10, 17, 10, 30, 0)));
            result.AppendLine(park.InsertVehicle(car3, 1, 3, new DateTime(2015, 10, 17, 10, 30, 0)));
            result.AppendLine(park.InsertVehicle(car4, 2, 1, new DateTime(2015, 10, 17, 10, 30, 0)));
            result.AppendLine(park.InsertVehicle(car5, 2, 2, new DateTime(2015, 10, 17, 10, 30, 0)));
            result.AppendLine(park.InsertVehicle(car6, 2, 3, new DateTime(2015, 10, 17, 10, 30, 0)));

            expected.AppendLine(string.Format(GlobalMessages.VehicleParked, car1.GetType().Name, "(1,1)"));
            expected.AppendLine(string.Format(GlobalMessages.VehicleParked, car1.GetType().Name, "(1,2)"));
            expected.AppendLine(string.Format(GlobalMessages.VehicleParked, car1.GetType().Name, "(1,3)"));
            expected.AppendLine(string.Format(GlobalMessages.VehicleParked, car1.GetType().Name, "(2,1)"));
            expected.AppendLine(string.Format(GlobalMessages.VehicleParked, car1.GetType().Name, "(2,2)"));
            expected.AppendLine(string.Format(GlobalMessages.VehicleParked, car1.GetType().Name, "(2,3)"));

            // Assert
            Assert.AreEqual(expected.ToString(), result.ToString());
        }
        public void VehicleExitNonPresentLicensePlate_ShouldThrowExceptionWithCorrectResult()
        {
            // Arrange
            IVehiclePark park = new VehiclePark(2, 2);
            string licensePlate = "CA1234CA";
            IVehicle car = new Car(licensePlate, "Pesho", 3);
            int sector = 1;
            int place = 1;

            // Act
            park.InsertVehicle(car, sector, place, new DateTime(2015, 10, 17, 10, 30, 0));
            string result = string.Empty;
            try
            {
                park.ExitVehicle("CA1234CB", new DateTime(2015, 10, 17, 13, 30, 0), 6M);
            }
            catch (Exception ex)
            {
                result = ex.Message;
            }

            string expected = string.Format(GlobalMessages.VehicleNotPresent, "CA1234CB");

            // Assert
            Assert.AreEqual(expected, result);
        }
示例#3
0
        public string Execute(ICommand command)
        {
            if (command.Name != "SetupPark" && this.VehiclePark == null)
            {
                return "The vehicle park has not been set up";
            }

            switch (command.Name)
            {
                case "SetupPark":
                    int sectors = int.Parse(command.Parameters["sectors"]);
                    int placesPerSector = int.Parse(command.Parameters["placesPerSector"]);
                    this.VehiclePark = new VehiclePark(sectors, placesPerSector);
                    return "Vehicle park created";

                case "Park":
                    IVehicle vehicle = null;
                    string licensePlate = command.Parameters["licensePlate"];
                    string owner = command.Parameters["owner"];
                    int reservedHours = int.Parse(command.Parameters["hours"]);
                    int sector = int.Parse(command.Parameters["sector"]);
                    int placeInSector = int.Parse(command.Parameters["place"]);
                    DateTime timeOfEntry = DateTime.Parse(command.Parameters["time"], null, System.Globalization.DateTimeStyles.RoundtripKind);
                    switch (command.Parameters["type"])
                    {
                        case "car":
                            vehicle = new Car(licensePlate, owner, reservedHours);
                            break;
                        case "motorbike":
                            vehicle = new Motorbike(licensePlate, owner, reservedHours);
                            break;
                        case "truck":
                            vehicle = new Truck(licensePlate, owner, reservedHours);
                            break;
                    }

                    string result = this.VehiclePark.InsertVehicle(vehicle, sector, placeInSector, timeOfEntry);
                    return result;

                case "Exit":
                    string licensePlateExit = command.Parameters["licensePlate"];
                    DateTime timeOfEntryExit = DateTime.Parse(command.Parameters["time"], null, System.Globalization.DateTimeStyles.RoundtripKind);
                    decimal amountPaid = decimal.Parse(command.Parameters["paid"]); // BUG: parameter name is "paid", not "money"
                    string exitResult = this.VehiclePark.ExitVehicle(licensePlateExit, timeOfEntryExit, amountPaid);
                    return exitResult;

                case "Status":
                    return this.VehiclePark.GetStatus();

                case "FindVehicle":
                    return this.VehiclePark.FindVehicle(command.Parameters["licensePlate"]);

                case "VehiclesByOwner":
                    return this.VehiclePark.FindVehiclesByOwner(command.Parameters["owner"]);

                default:
                    throw new InvalidOperationException("Invalid command.");
            }
        }
        public void Remove(Car car)
        {
            if (car == null)
            {
                throw new ArgumentException("Null car cannot be removed");
            }

            this.Data.Cars.Remove(car);
        }
        public void Add(Car car)
        {
            if (car == null)
            {
                throw new ArgumentException("Null car cannot be added");
            }

            this.Data.Cars.Add(car);
        }
示例#6
0
        private static void ModifyCarNumber(Car addedCar)
        {
            addedCar.Number = addedCar.Number + "upadated" + DateTime.Now.Ticks;

            var request = new RestRequest(addedCar.Id.ToString());

            request.AddJsonBody(addedCar);

            Client.Put(request);
        }
        public void AddingCarShouldReturnADetail()
        {
            var car = new Car { Id = 15, Make = "BMW", Model = "330d", Year = 2014 };

            var model = (Car)GetModel(() => this.controller.Add(car));

            Assert.AreEqual(4, model.Id);
            Assert.AreEqual("Opel", model.Make);
            Assert.AreEqual("Astra", model.Model);
            Assert.AreEqual(2010, model.Year);
        }
示例#8
0
        public void GetStatusOneVehicle_ShouldReturnCorrectResult()
        {
            // Arrange
            int totalSectors = 2;
            IVehiclePark park = new VehiclePark(totalSectors, 2);
            IVehicle car = new Car("CA1234CA", "Pesho", 3);

            // Act
            park.InsertVehicle(car, 1, 1, new DateTime(2015, 10, 17, 10, 30, 0));
            string result = park.GetStatus();
            string expected = "Sector 1: 1 / 2 (50% full)\r\nSector 2: 0 / 2 (0% full)";

            // Assert
            Assert.AreEqual(expected, result);
        }
        public IView Add(Car car)
        {
            if (car == null)
            {
                throw new ArgumentNullException("Car cannot be null");
            }

            if (string.IsNullOrEmpty(car.Make) || string.IsNullOrEmpty(car.Model))
            {
                throw new ArgumentNullException("Car make and model cannot be empty");
            }

            this.carsData.Add(car);
            return this.Details(car.Id);
        }
示例#10
0
        public void GetStatusFullSingleSector_ShouldReturnCorrectResult()
        {
            // Arrange
            IVehiclePark park = new VehiclePark(2, 2);
            IVehicle car3 = new Car("CA1236CA", "Pesho", 3);
            IVehicle car4 = new Car("CA1237CA", "Pesho", 3);

            // Act
            park.InsertVehicle(car3, 2, 1, new DateTime(2015, 10, 17, 10, 30, 0));
            park.InsertVehicle(car4, 2, 2, new DateTime(2015, 10, 17, 10, 30, 0));
            string result = park.GetStatus();
            string expected = "Sector 1: 0 / 2 (0% full)\r\nSector 2: 2 / 2 (100% full)";

            // Assert
            Assert.AreEqual(expected, result);
        }
示例#11
0
        public void VehicleExitExactlyOnTime_ShouldReturnCorrectResult()
        {
            // Arrange
            IVehiclePark park = new VehiclePark(2, 2);
            string licensePlate = "CA1234CA";
            IVehicle car = new Car(licensePlate, "Pesho", 3);
            int sector = 1;
            int place = 1;

            // Act
            park.InsertVehicle(car, sector, place, new DateTime(2015, 10, 17, 10, 30, 0));
            string result = park.ExitVehicle(licensePlate, new DateTime(2015, 10, 17, 13, 30, 0), 6M);
            string expected = "********************\r\nCar [CA1234CA], owned by Pesho\nat place (1,1)\nRate: $6,00\nOvertime rate: $0,00\r\n--------------------\r\nTotal: $6,00\nPaid: $6,00\nChange: $0,00\r\n********************";

            // Assert
            Assert.AreEqual(expected, result);
        }
        private void CheckEquality(Car orig, Car newCar)
        {
            Assert.IsTrue(newCar.Guid.Equals(orig.Guid));
            Assert.IsTrue(newCar.Owner.Equals(orig.Owner));
            Assert.IsTrue(newCar.Factory.Equals(orig.Factory));

            bool equal = false;

            Assert.IsTrue(newCar.Type.Equals(orig.Type));

            Assert.IsNotNull(orig.Friends);
            equal = Enumerable.SequenceEqual(orig.Friends, newCar.Friends);
            Assert.IsTrue(equal);

            Assert.IsNotNull(orig.Maintainers);
            equal = Enumerable.SequenceEqual(orig.Maintainers, newCar.Maintainers);
            Assert.IsTrue(equal);
        }
示例#13
0
        public static Car CreateCar()
        {
            Car aCar = new Car()
            {
                Owner = new Person()
                {
                    Id = 1,
                    Name = "Maya",
                },
                Factory = new Factory()
                {
                    Name = "Garena",
                },
            };

            Random r = new Random();
            List<Person> friendList = new List<Person>();
            for (int i = 0; i < _kFriendCount; ++i) {

                int idx = r.Next(_name_map.Count());
                friendList.Add(new Person {
                    Id = i+1,
                    Name = _name_map[idx],
                });
            }
            aCar.Friends = friendList.ToArray();

            List<Factory> maintainerList = new List<Factory>();
            for (int i = 0; i < _kMaintainerCount; ++i) {
                int idx = r.Next(_name_map.Count());
                maintainerList.Add(new Factory
                {
                    Guid = System.Guid.NewGuid(),
                    Name = _name_map[idx] + "'s Factory.",
                });
            }
            aCar.Maintainers = maintainerList;

            return aCar;
        }
        public void InsertVehicleAtNegativeSector_ShouldThrowExceptionWithCorrectMessage()
        {
            // Arrange
            IVehiclePark park = new VehiclePark(2, 2);
            IVehicle car = new Car("CA1234CA", "Pesho", 3);
            int sector = -1;
            int place = 1;
            string result = string.Empty;
            string expected = string.Format(GlobalMessages.NoSuchSector, sector);

            // Act
            try
            {
                park.InsertVehicle(car, sector, place, new DateTime(2015, 10, 17, 10, 30, 0));
            }
            catch (Exception ex)
            {
                result = ex.Message;
            }

            // Assert
            Assert.AreEqual(expected, result);
        }
        public void InsertVehicleWithExistingLicensePlate_ShouldThrowExceptionWithCorrectMessage()
        {
            // Arrange
            IVehiclePark park = new VehiclePark(2, 2);
            IVehicle car = new Car("CA1234CA", "Pesho", 3);
            int sector = 1;
            int place = 1;
            string result = string.Empty;
            string expected = string.Format(GlobalMessages.VehicleAlreadyParked, "CA1234CA");

            // Act
            park.InsertVehicle(car, sector, place, new DateTime(2015, 10, 17, 10, 30, 0));
            try
            {
                park.InsertVehicle(car, sector + 1, place + 1, new DateTime(2015, 10, 17, 10, 30, 0));
            }
            catch (Exception ex)
            {
                result = ex.Message;
            }

            // Assert
            Assert.AreEqual(expected, result);
        }
 public void Create(Models.Car t)
 {
 }
        public void InsertVehicleValidOperation_ShouldReturnCorrectResult()
        {
            // Arrange
            IVehiclePark park = new VehiclePark(2, 2);
            IVehicle car = new Car("CA1234CA", "Pesho", 3);
            int sector = 1;
            int place = 1;

            // Act
            string result = park.InsertVehicle(car, sector, place, new DateTime(2015, 10, 17, 10, 30, 0));
            string parkPlace = string.Format("({0},{1})", sector, place);
            string expected = string.Format(GlobalMessages.VehicleParked, car.GetType().Name, parkPlace);

            // Assert
            Assert.AreEqual(expected, result);
        }
        public void InsertVehicleAtOccupiedSpace_ShouldThrowExceptionWithCorrectMessage()
        {
            // Arrange
            IVehiclePark park = new VehiclePark(2, 2);
            IVehicle car1 = new Car("CA1234CA", "Pesho", 3);
            IVehicle car2 = new Car("CA1235CA", "Pesho", 3);
            int sector = 1;
            int place = 1;
            string parkPlace = string.Format("({0},{1})", sector, place);
            string expected = string.Format(GlobalMessages.PlaceIsOccupied, parkPlace);

            // Act
            park.InsertVehicle(car1, sector, place, new DateTime(2015, 10, 17, 10, 30, 0));
            string result = string.Empty;
            try
            {
                park.InsertVehicle(car2, sector, place, new DateTime(2015, 10, 17, 10, 30, 0));
            }
            catch (Exception ex)
            {
                result = ex.Message;
            }

            // Assert
            Assert.AreEqual(expected, result);
        }
        public void AddingCarShouldThrowArgumentNullExceptionIfCarModelIsNull()
        {
            var car = new Car { Id = 15, Make = "BMW", Model = null, Year = 2014 };

            var model = (Car)GetModel(() => this.controller.Add(car));
        }
        public void AddingCarShouldThrowArgumentNullExceptionIfCarMakeIsEmptyString()
        {
            var car = new Car { Id = 15, Make = string.Empty, Model = "330d", Year = 2014 };

            var model = (Car)GetModel(() => this.controller.Add(car));
        }
示例#21
0
 private static void PrintCar(Car car)
 {
     Console.WriteLine($"id: {car.Id}, Model: {car.Model}, Number: {car.Number}");
 }
示例#22
0
        public string Execute(ICommand command)
        {
            if (command.Name != "SetupPark" && this.vehiclePark == null)
            {
                return Message.VehicleParkNotSetUp;
            }

            var message = string.Empty;
            switch (command.Name)
            {
                case "SetupPark":
                    this.vehiclePark = new VehiclePark(
                        int.Parse(command.Parameters["sectors"]),
                        int.Parse(command.Parameters["placesPerSector"]));
                    message = Message.VehicleParkCreated;
                    break;
                case "Park":
                    var licensePlate = command.Parameters["licensePlate"];
                    var owner = command.Parameters["owner"];
                    var reservedHours = int.Parse(command.Parameters["hours"]);
                    var place = int.Parse(command.Parameters["place"]);
                    var sector = int.Parse(command.Parameters["sector"]);
                    var time = DateTime.Parse(command.Parameters["time"]);
                    switch (command.Parameters["type"])
                    {
                        case "car":
                            var car = new Car(licensePlate, owner, reservedHours);
                            message = this.vehiclePark.InsertCar(car, sector, place, time);
                            break;
                        case "motorbike":
                            var bike = new Motorbike(licensePlate, owner, reservedHours);
                            message = this.vehiclePark.InsertMotorbike(bike, sector, place, time);
                            break;
                        case "truck":
                            var truck = new Truck(licensePlate, owner, reservedHours);
                            message = this.vehiclePark.InsertTruck(truck, sector, place, time);
                            break;
                    }

                    break;
                case "Exit":
                    var exitLicesencePlate = command.Parameters["licensePlate"];
                    var exitTime = DateTime.Parse(command.Parameters["time"]);
                    var moneyOwed = decimal.Parse(command.Parameters["paid"]);
                    message = this.vehiclePark.ExitVehicle(
                        exitLicesencePlate,
                        exitTime,
                        moneyOwed);
                    break;
                case "Status":
                    message = this.vehiclePark.GetStatus();
                    break;
                case "FindVehicle":
                    message = this.vehiclePark.FindVehicle(command.Parameters["licensePlate"]);
                    break;
                case "VehiclesByOwner":
                    message = this.vehiclePark.FindVehiclesByOwner(command.Parameters["owner"]);
                    break;
                default:
                    throw new InvalidOperationException("Invalid command");
            }

            return message;
        }
示例#23
0
文件: CarGame.cs 项目: Biskus/rush
        protected override void LoadContent()
        {
            spriteBatch = new SpriteBatch(GraphicsDevice);

            // La inn en spritefont i content-prosjektet for å
            // tegne tekst. Denne vises her.
            spritefont = Content.Load<SpriteFont>("Arial");

            // Opprett egendefinerte spillobjekter
            car = new Car(Content, "buggy");
            track = new Track(device, Content);
            obstacle = new Obstacle(device, Content);
            terrain = new Terrain(device, Content);
            skybox = new Skybox(device, Content, "miramar");
        }
示例#24
0
 public string InsertCar(Car car, int sector, int place, DateTime time)
 {
     var message = this.InsertVehicle(car, sector, place, time);
     return message;
 }
 public override string ToString()
 {
     return((ReturnTime != default(DateTime) ? "[RETURNED]" : "[ACTIVE]") +
            $" {CustomerInfo.FirstName} {CustomerInfo.LastName} " +
            $"{StartTime}-{EndTime} {Car.ToString()}");
 }