public void TestEditCarCommand() { Car car = new Car() { CarId = 1, Color = "White", Year = 2013, RentalPrice = 100, Description = "Just some car" }; Mock <IServiceFactory> mockServiceFactory = new Mock <IServiceFactory>(); MaintainCarsViewModel viewModel = new MaintainCarsViewModel(mockServiceFactory.Object); viewModel.Cars = new ObservableCollection <Car>() { car }; Assert.IsTrue(viewModel.Cars[0].Color == "White"); Assert.IsTrue(viewModel.CurrentCarViewModel == null); viewModel.EditCarCommand.Execute(car); Assert.IsTrue(viewModel.CurrentCarViewModel != null); mockServiceFactory.Setup(mock => mock.CreateClient <IInventoryService>().UpdateCar(It.IsAny <Car>())).Returns(viewModel.CurrentCarViewModel.Car); viewModel.CurrentCarViewModel.Car.Color = "Black"; viewModel.CurrentCarViewModel.SaveCommand.Execute(null); Assert.IsTrue(viewModel.Cars[0].Color == "Black"); }
public void TestViewLoaded() { Car[] data = new List <Car>() { new Car() { CarId = 1 }, new Car() { CarId = 2 } }.ToArray(); Mock <IServiceFactory> mockServiceFactory = new Mock <IServiceFactory>(); mockServiceFactory.Setup(mock => mock.CreateClient <IInventoryService>().GetAllCars()).Returns(data); MaintainCarsViewModel viewModel = new MaintainCarsViewModel(mockServiceFactory.Object); Assert.IsTrue(viewModel.Cars == null); object loaded = viewModel.ViewLoaded; Assert.IsTrue(viewModel.Cars != null && viewModel.Cars.Count == data.Length && viewModel.Cars[0] == data[0]); }
public void TestDeleteCarCommand() { Car car = new Car() { CarId = 1, Color = "White" }; Mock <IServiceFactory> mockServiceFactory = new Mock <IServiceFactory>(); mockServiceFactory.Setup(mock => mock.CreateClient <IRentalService>().IsCarCurrentlyRented(car.CarId)).Returns(false); mockServiceFactory.Setup(mock => mock.CreateClient <IInventoryService>().DeleteCar(car.CarId)); MaintainCarsViewModel viewModel = new MaintainCarsViewModel(mockServiceFactory.Object); viewModel.Cars = new ObservableCollection <Car>() { car }; viewModel.ConfirmDelete += (s, e) => e.Cancel = false; Assert.IsTrue(viewModel.Cars.Count == 1); viewModel.DeleteCarCommand.Execute(car); Assert.IsTrue(viewModel.Cars.Count == 0); }
public void TestAddCarCommand() { Car car = new Car() { CarId = 1, Color = "White" }; Mock <IServiceFactory> mockServiceFactory = new Mock <IServiceFactory>(); MaintainCarsViewModel viewModel = new MaintainCarsViewModel(mockServiceFactory.Object); viewModel.Cars = new ObservableCollection <Car>(); Assert.IsTrue(viewModel.CurrentCarViewModel == null); viewModel.AddCarCommand.Execute(car); Assert.IsTrue(viewModel.CurrentCarViewModel != null); mockServiceFactory.Setup(mock => mock.CreateClient <IInventoryService>().UpdateCar(It.IsAny <Car>())).Returns(viewModel.CurrentCarViewModel.Car); viewModel.CurrentCarViewModel.SaveCommand.Execute(null); Assert.IsTrue(viewModel.Cars != null && viewModel.Cars.Count == 1); }
public void TestDeleteCarCommandWithError() { Car car = new Car() { CarId = 1, Color = "White" }; Mock <IServiceFactory> mockServiceFactory = new Mock <IServiceFactory>(); mockServiceFactory.Setup(mock => mock.CreateClient <IRentalService>().IsCarCurrentlyRented(car.CarId)).Returns(true); // currently rented mockServiceFactory.Setup(mock => mock.CreateClient <IInventoryService>().DeleteCar(car.CarId)); MaintainCarsViewModel viewModel = new MaintainCarsViewModel(mockServiceFactory.Object); viewModel.Cars = new ObservableCollection <Car>() { car }; bool errorOccured = false; viewModel.ErrorOccured += (s, e) => errorOccured = true; Assert.IsTrue(viewModel.Cars.Count == 1); viewModel.DeleteCarCommand.Execute(car); Assert.IsTrue(errorOccured && viewModel.Cars.Count == 1); }
public void TestCurrentCarSetting() { Car car = new Car() { CarId = 1 }; Mock <IServiceFactory> mockServiceFactory = new Mock <IServiceFactory>(); MaintainCarsViewModel viewModel = new MaintainCarsViewModel(mockServiceFactory.Object); Assert.IsTrue(viewModel.CurrentCarViewModel == null); viewModel.EditCarCommand.Execute(car); Assert.IsTrue(viewModel.CurrentCarViewModel != null && viewModel.CurrentCarViewModel.Car.CarId == car.CarId); }