Exemplo n.º 1
0
        public async Task DeleteAsync_WithNonExistentId_ReturnsFalse()
        {
            // Arrange
            var testId = Guid.NewGuid().ToString();

            var context = new PoolItDbContext(new DbContextOptionsBuilder <PoolItDbContext>()
                                              .UseInMemoryDatabase(Guid.NewGuid().ToString())
                                              .Options);

            context.CarModels.AddRange(
                new CarModel
            {
                Model = "OtherModel1"
            },
                new CarModel
            {
                Model = "OtherModel2"
            });

            context.SaveChanges();

            var modelsService = new ModelsService(new EfRepository <CarModel>(context));

            // Act
            var result = await modelsService.DeleteAsync(testId);

            // Assert
            Assert.False(result);

            var dbCount = await context.CarModels.CountAsync();

            Assert.Equal(2, dbCount);
        }
Exemplo n.º 2
0
        public async Task DeleteAsync_WithCorrectId_WorksCorrectly()
        {
            // Arrange
            const string testName = "TestName";

            var model = new CarModel
            {
                Model = testName
            };

            var context = new PoolItDbContext(new DbContextOptionsBuilder <PoolItDbContext>()
                                              .UseInMemoryDatabase(Guid.NewGuid().ToString())
                                              .Options);

            context.CarModels.AddRange(
                model,
                new CarModel
            {
                Model = "OtherModel1"
            },
                new CarModel
            {
                Model = "OtherModel2"
            });

            context.SaveChanges();

            var modelsService = new ModelsService(new EfRepository <CarModel>(context));

            // Act
            var result = await modelsService.DeleteAsync(model.Id);

            // Assert
            Assert.True(result);

            var existsInDb = await context.CarModels.AnyAsync(m => m.Model == testName);

            Assert.False(existsInDb);

            var dbCount = await context.CarModels.CountAsync();

            Assert.Equal(2, dbCount);
        }
Exemplo n.º 3
0
        public async Task DeleteAsync_WithCars_DoesNotDelete()
        {
            // Arrange
            const string testName = "TestName";

            var model = new CarModel
            {
                Model = testName,
                Cars  = new List <Car>
                {
                    new Car
                    {
                        Colour = "Green"
                    }
                }
            };

            var context = new PoolItDbContext(new DbContextOptionsBuilder <PoolItDbContext>()
                                              .UseInMemoryDatabase(Guid.NewGuid().ToString())
                                              .Options);

            context.CarModels.Add(model);

            context.SaveChanges();

            var modelsService = new ModelsService(new EfRepository <CarModel>(context));

            // Act
            var result = await modelsService.DeleteAsync(model.Id);

            // Assert
            Assert.False(result);

            var existsInDb = await context.CarModels.AnyAsync(m => m.Model == testName);

            Assert.True(existsInDb);

            var dbCount = await context.CarModels.CountAsync();

            Assert.Equal(1, dbCount);
        }
Exemplo n.º 4
0
        public async Task DeleteAsyncShouldDeleteModel()
        {
            var options = new DbContextOptionsBuilder <NeedForCarsDbContext>()
                          .UseInMemoryDatabase("DeleteModelDb")
                          .Options;

            var context = new NeedForCarsDbContext(options);

            var makesService  = new MakesService(context);
            var modelsService = new ModelsService(context, makesService);

            var make = new Make
            {
                Name        = "Make",
                Description = "Desc"
            };

            await context.Makes.AddAsync(make);

            await context.SaveChangesAsync();

            var model = new Model
            {
                MakeId = make.Id,
                Name   = "Model"
            };

            await context.Models.AddAsync(model);

            await context.SaveChangesAsync();

            await modelsService.DeleteAsync(model);

            await context.SaveChangesAsync();

            var result = await context.Models.CountAsync();

            Assert.Equal(0, result);
        }