Пример #1
0
        public async Task UpdateAsync_WithNonExistentId_ReturnsFalse()
        {
            // Arrange
            var context = new PoolItDbContext(new DbContextOptionsBuilder <PoolItDbContext>()
                                              .UseInMemoryDatabase(Guid.NewGuid().ToString())
                                              .Options);

            context.CarManufacturers.AddRange(
                new CarManufacturer
            {
                Name = "OtherManufacturer1"
            },
                new CarManufacturer
            {
                Name = "OtherManufacturer2"
            });

            context.SaveChanges();

            var manufacturersService = new ManufacturersService(new EfRepository <CarManufacturer>(context));

            var serviceModel = new CarManufacturerServiceModel
            {
                Id   = Guid.NewGuid().ToString(),
                Name = "TestName"
            };

            // Act
            var result = await manufacturersService.UpdateAsync(serviceModel);

            // Assert
            Assert.False(result);
        }
Пример #2
0
        public async Task CreateAsync_WithValidModel_WorksCorrectly()
        {
            // Arrange
            const string testName = "TestName";

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

            var manufacturersService = new ManufacturersService(new EfRepository <CarManufacturer>(context));

            var serviceModel = new CarManufacturerServiceModel
            {
                Name = testName
            };

            // Act
            var result = await manufacturersService.CreateAsync(serviceModel);

            // Assert
            Assert.True(result);

            var addedToDb = await context.CarManufacturers.AnyAsync(m => m.Name == testName);

            Assert.True(addedToDb);
        }
Пример #3
0
        public async Task <bool> CreateAsync(CarManufacturerServiceModel model)
        {
            if (!this.IsEntityStateValid(model))
            {
                return(false);
            }

            var carManufacturer = Mapper.Map <CarManufacturer>(model);

            await this.carManufacturersRepository.AddAsync(carManufacturer);

            await this.carManufacturersRepository.SaveChangesAsync();

            return(true);
        }
Пример #4
0
        public async Task UpdateAsync_WithInvalidModel_DoesNotChange()
        {
            // Arrange
            const string expectedResult = "InitialName";

            var manufacturer = new CarManufacturer
            {
                Name = expectedResult
            };

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

            context.CarManufacturers.AddRange(
                manufacturer,
                new CarManufacturer
            {
                Name = "OtherManufacturer1"
            },
                new CarManufacturer
            {
                Name = "OtherManufacturer2"
            });

            context.SaveChanges();

            var manufacturersService = new ManufacturersService(new EfRepository <CarManufacturer>(context));

            var serviceModel = new CarManufacturerServiceModel
            {
                Id   = manufacturer.Id,
                Name = "a"
            };

            // Act
            var result = await manufacturersService.UpdateAsync(serviceModel);

            // Assert
            Assert.False(result);

            var actualResult = (await context.CarManufacturers.SingleAsync(m => m.Id == manufacturer.Id)).Name;

            Assert.Equal(expectedResult, actualResult);
        }
Пример #5
0
        public async Task CreateAsync_WithInvalidModel_WorksCorrectly()
        {
            // Arrange
            var context = new PoolItDbContext(new DbContextOptionsBuilder <PoolItDbContext>()
                                              .UseInMemoryDatabase(Guid.NewGuid().ToString())
                                              .Options);

            var manufacturersService = new ManufacturersService(new EfRepository <CarManufacturer>(context));

            var serviceModel = new CarManufacturerServiceModel();

            // Act
            var result = await manufacturersService.CreateAsync(serviceModel);

            // Assert
            Assert.False(result);

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

            Assert.Equal(0, dbCount);
        }
Пример #6
0
        public async Task <bool> UpdateAsync(CarManufacturerServiceModel model)
        {
            if (!this.IsEntityStateValid(model) || model.Id == null)
            {
                return(false);
            }

            var carManufacturer =
                await this.carManufacturersRepository.All().SingleOrDefaultAsync(c => c.Id == model.Id);

            if (carManufacturer == null)
            {
                return(false);
            }

            carManufacturer.Name = model.Name;

            this.carManufacturersRepository.Update(carManufacturer);
            await this.carManufacturersRepository.SaveChangesAsync();

            return(true);
        }