Example #1
0
        private static void DemoVehicleInventory()
        {
            IVehicleInventory inventory = new VehicleInventory();
            var vehicle = VehicleFactory.CreateVehicle("vinnumber3", VehicleMake.Tesla, "Model S", 2017, "yellow", 1500, 2500, 100);

            //var temp = vehicle.Mfg;
            inventory.Add(vehicle);
            vehicle = VehicleFactory.CreateVehicle("vinnumber1", VehicleMake.BMW, "325i", 2016, "red", 2500, 4000, 100);
            inventory.Add(vehicle);

            inventory.Remove(vehicle);

            inventory.Add(vehicle);
            var v1 = inventory.List(SortOrder.Vin);

            Console.WriteLine("List of Vehicles");
            v1.ForEach(v => Console.WriteLine($"{v.VinNumber}, {v.Make}, {v.Model}"));

            var v2 = inventory.FindByYear(2017);

            var v3 = inventory.List(SortOrder.Vin).FindByMake(VehicleMake.BMW);

            v3.AddToMileage(99);
            var v3_1 = inventory.List().FindByMake(VehicleMake.BMW);

            var v4 = inventory.List().FindByMake(VehicleMake.Ford);

            var stringList = inventory.ListAsString(SortOrder.Vin);

            Console.WriteLine("List of Vehicles - in Json(string) format");
            Console.WriteLine($"{stringList}");
        }
Example #2
0
        public void TestMethod_BasicFeatures()
        {
            IVehicleInventory inventory = new VehicleInventory();
            var vehicle = VehicleFactory.CreateVehicle("vinnumber3", VehicleMake.Tesla, "model", 2017, "yellow", 1500, 2500, 100);

            //var temp = vehicle.Mfg;
            inventory.Add(vehicle);
            vehicle = VehicleFactory.CreateVehicle("vinnumber1", VehicleMake.BMW, "model", 2016, "red", 2500, 4000, 100);
            inventory.Add(vehicle);
            var v1 = inventory.List(SortOrder.Vin);

            Assert.AreEqual(2, v1.Count);
            Assert.AreEqual(v1[0].VinNumber, "vinnumber1");

            inventory.Remove(vehicle);
            v1 = inventory.List(SortOrder.Vin);
            Assert.AreEqual(1, v1.Count);

            inventory.Add(vehicle);

            var v2 = inventory.FindByYear(2017);

            Assert.AreEqual(1, v2.Count);

            var v3 = inventory.List(SortOrder.Vin).FindByMake(VehicleMake.BMW);

            Assert.AreEqual(1, v3.Count);
            Assert.IsTrue(v3[0].Disclaimer.Contains("Copyright BMW AG, Munich, Germany"));

            v3.AddToMileage(99);
            var v3_1 = inventory.List().FindByMake(VehicleMake.BMW);

            Assert.AreEqual(199, v3_1[0].Miles);

            var v4 = inventory.List().FindByMake(VehicleMake.Ford);

            Assert.AreEqual(0, v4.Count);

            var stringList = inventory.ListAsString(SortOrder.Vin);

            Assert.IsTrue(stringList.Contains("vinnumber3"));
            Assert.IsTrue(stringList.Contains("vinnumber1"));
            // verify that the BMW has the disclaimer
            Assert.IsTrue(stringList.Contains("Copyright BMW AG, Munich, Germany"));

            // test for tesla manufacturer info
            Assert.IsTrue(stringList.Contains("Teslaphone"));
        }
Example #3
0
        public void TestMethod_Statistics()
        {
            IVehicleInventory inventory = new VehicleInventory();
            var mfg = new Manufacturer("Toyota", "100 main", "800-999-9999");

            var vehicle = VehicleFactory.CreateVehicle("vinnumber3", VehicleMake.Ford, "model", 2017, "yellow", 1500, 10000, 10000);

            inventory.Add(vehicle);
            vehicle = VehicleFactory.CreateVehicle("vinnumber1", VehicleMake.BMW, "model", 2016, "red", 2500, 60000, 60000);
            inventory.Add(vehicle);
            vehicle = VehicleFactory.CreateVehicle("vinnumber1", VehicleMake.Toyota, "model", 2016, "red", 2500, 20000, 20000);
            inventory.Add(vehicle);

            var vehicleList = inventory.List();

            Assert.AreEqual(30000, vehicleList.AverageMSRP());
            Assert.AreEqual(10000, vehicleList.MinMSRP());
            Assert.AreEqual(60000, vehicleList.MaxMSRP());

            Assert.AreEqual(30000, vehicleList.AverageMileage());
            Assert.AreEqual(10000, vehicleList.MinMileage());
            Assert.AreEqual(60000, vehicleList.MaxMileage());

            Assert.AreEqual(3, vehicleList.CountDueForOilChange());

            //do an oil change, then re-check count
            vehicle.LastOilChangeDate  = DateTime.Now;
            vehicle.LastOilChangeMiles = 20000;
            Assert.AreEqual(2, vehicleList.CountDueForOilChange());
        }