public async Task ShouldCreateWheelWithExistingDb() { var dbOptions = DbHelper.GetNewDbOptions <MockContext>(); await CreateTestDatabase(dbOptions); using (var context = new MockContext(dbOptions)) { var service = new WheelService(context); var wheelVm = new WheelViewModel { Size = 19, Width = 7 }; var isCreateSuccess = await service.CreateNewWheel(wheelVm); var wheels = context.Wheels; var wheel1 = wheels.First(); var wheel5 = wheels.Last(); Assert.True(isCreateSuccess); Assert.Equal(5, wheels.Count()); Assert.Equal(15, wheel1.Size); Assert.Equal(5, wheel1.Width); Assert.Equal(wheelVm.Size, wheel5.Size); Assert.Equal(wheelVm.Width, wheel5.Width); } }
public void ShouldGetNoWheelsWithEmptyDb() { using (var context = new MockContext(emptyDbOptions)) { var service = new WheelService(context); Assert.Empty(service.GetWheels()); } }
public void ShouldBeConstructed() { using (var context = new MockContext(emptyDbOptions)) { var service = new WheelService(context); Assert.NotNull(service); } }
public async Task ShouldCreateWheelWithEmptyDb() { using (var context = new MockContext(DbHelper.GetNewDbOptions <MockContext>())) { var service = new WheelService(context); var wheelVm = new WheelViewModel { Size = 19, Width = 7 }; var isCreateSuccess = await service.CreateNewWheel(wheelVm); var wheel = context.Wheels.First(); Assert.True(isCreateSuccess); Assert.Single(context.Wheels); Assert.Equal(wheelVm.Size, wheel.Size); Assert.Equal(wheelVm.Width, wheel.Width); } }
public async Task ShouldGetWheels() { var dbOptions = DbHelper.GetNewDbOptions <MockContext>(); await CreateTestDatabase(dbOptions); using (var context = new MockContext(dbOptions)) { var service = new WheelService(context); var results = service.GetWheels(); var wheel1 = results.First(); var wheel4 = results.Last(); Assert.Equal(4, results.Count()); Assert.Equal(15, wheel1.Size); Assert.Equal(5, wheel1.Width); Assert.Equal(18, wheel4.Size); Assert.Equal(7, wheel4.Width); } }
public async Task ShouldCreateAndFetchNewVehiclesWithWheelsAndEnginesAsync(VehicleViewModel vehicleVm) { using (var context = new MockContext(DbHelper.GetNewDbOptions <MockContext>())) { // Ensure DB was cleaned up context.ResetValueGenerators(); await context.Database.EnsureDeletedAsync(); var vehicleService = new VehicleService(context); var wheelService = new WheelService(context); var engineService = new EngineService(context); var engineVm = new EngineViewModel { Capacity = 4000, Configuration = "V8", FuelType = "Petrol" }; var wheelVm = new WheelViewModel { Size = 17, Width = 7 }; // Ensure DB emtpy var noVehicles = vehicleService.GetVehicles(); var noEngines = engineService.GetEngines(); var noWheels = wheelService.GetWheels(); Assert.Empty(noVehicles); Assert.Empty(noEngines); Assert.Empty(noWheels); // Add entities var isCreatedOk = await engineService.CreateNewEngine(engineVm); isCreatedOk = isCreatedOk && await wheelService.CreateNewWheel(wheelVm); // !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! // TODO: This should fail in the second execution due to foreign key constraint. We are trying to add a vehicle // with an engine and wheel combination that does not yet exist. This fails during normal execution. // !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! isCreatedOk = isCreatedOk && await vehicleService.CreateNewVehicle(vehicleVm); // Ensure all created ok Assert.True(isCreatedOk); // Ensure vehicle added OK var oneEngine = engineService.GetEngines(); var oneWheel = wheelService.GetWheels(); var oneVehicles = vehicleService.GetVehicles(); Assert.Single(oneEngine); Assert.Single(oneWheel); Assert.Single(oneVehicles); // Verify many-to-many tables var oneVehicleEngine = context.VehicleEngines; var fourVehicleWheels = context.VehicleWheels; Assert.Single(oneVehicleEngine); Assert.Equal(4, fourVehicleWheels.Count()); } }