コード例 #1
0
        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);
            }
        }
コード例 #2
0
 public void ShouldGetNoWheelsWithEmptyDb()
 {
     using (var context = new MockContext(emptyDbOptions))
     {
         var service = new WheelService(context);
         Assert.Empty(service.GetWheels());
     }
 }
コード例 #3
0
 public void ShouldBeConstructed()
 {
     using (var context = new MockContext(emptyDbOptions))
     {
         var service = new WheelService(context);
         Assert.NotNull(service);
     }
 }
コード例 #4
0
        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);
            }
        }
コード例 #5
0
        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());
            }
        }