Esempio n. 1
0
        public async Task <ActionResult <CarAdvert> > PostCarAdvert(CarAdvert carAdvert)
        {
            _context.CarAdverts.Add(carAdvert);
            await _context.SaveChangesAsync();

            return(CreatedAtAction("GetCarAdvert", new { id = carAdvert.Id }, carAdvert));
        }
Esempio n. 2
0
        public async Task <IActionResult> PutCarAdvert(int id, CarAdvert carAdvert)
        {
            if (id != carAdvert.Id)
            {
                return(BadRequest());
            }

            _context.Entry(carAdvert).State = EntityState.Modified;

            try
            {
                await _context.SaveChangesAsync();
            }
            catch (DbUpdateConcurrencyException)
            {
                if (!CarAdvertExists(id))
                {
                    return(NotFound());
                }
                else
                {
                    throw;
                }
            }

            return(NoContent());
        }
Esempio n. 3
0
        public void TestValidGetId()
        {
            var carAdvert = new CarAdvert()
            {
                Id    = 1,
                Title = "Audi",
                Price = 1500,
                Fuel  = FuelType.Diesel,
                IsNew = true
            };
            var vm = Substitute.For <IViewModel <CarAdvert> >();

            vm.Get(Arg.Any <int>()).Returns(c => carAdvert);
            var controller = new CarAdvertController(vm, CreateMappings());

            var result = controller.Get(1) as OkNegotiatedContentResult <CarAdvertDto>;

            Assert.IsNotNull(result);

            var item = result.Content;

            Assert.AreEqual(item.Id, 1);
            Assert.AreEqual(item.Title, "Audi");
            Assert.AreEqual(item.Price, 1500);
            Assert.AreEqual(item.Fuel, "diesel");
            Assert.AreEqual(item.New, true);
        }
Esempio n. 4
0
        public void TestValidCreate()
        {
            using (var connection = Effort.DbConnectionFactory.CreateTransient())
            {
                // arrange
                var dbContext = new CarAdvertDbContext(connection, false);

                var dbContextProvider = Substitute.For <IDbContextProvider>();
                dbContextProvider.Provide().Returns(p => dbContext);

                using (var unitOfWork = new DbContextUnitOfWork(dbContextProvider))
                {
                    var carAdvert = new CarAdvert()
                    {
                        Title = "Audi",
                        Price = 1500,
                        IsNew = true
                    };

                    var repository = new CarAdvertRepository(unitOfWork);

                    // act
                    repository.Create(carAdvert);
                    unitOfWork.Commit();

                    // assert
                    var item = dbContext.CarAdverts.Single();
                    Assert.AreEqual(item.Title, carAdvert.Title);
                    Assert.AreEqual(item.Price, carAdvert.Price);
                    Assert.AreEqual(item.IsNew, carAdvert.IsNew);
                }
            }
        }
Esempio n. 5
0
        public void TestValidGetById()
        {
            using (var connection = Effort.DbConnectionFactory.CreateTransient())
            {
                // arrange
                var dbContext = new CarAdvertDbContext(connection, false);
                var carAdvert = new CarAdvert()
                {
                    Title = "Audi",
                    Price = 1500,
                    IsNew = true
                };
                dbContext.CarAdverts.Add(carAdvert);
                dbContext.SaveChanges();

                var unitOfWork = Substitute.For <IUnitOfWork>();
                unitOfWork.ProvideContext <CarAdvertDbContext>().Returns(p => dbContext);
                var repository = new CarAdvertRepository(unitOfWork);

                // act
                var item = repository.Get(carAdvert.Id);

                // assert
                Assert.AreEqual(item.Title, carAdvert.Title);
                Assert.AreEqual(item.Price, carAdvert.Price);
                Assert.AreEqual(item.IsNew, carAdvert.IsNew);
            }
        }
Esempio n. 6
0
        public void TestValidDelete()
        {
            using (var connection = Effort.DbConnectionFactory.CreateTransient())
            {
                // arrange
                var dbContext = new CarAdvertDbContext(connection, false);
                var carAdvert = new CarAdvert()
                {
                    Title = "Audi",
                    Price = 1500,
                    IsNew = true
                };
                dbContext.CarAdverts.Add(carAdvert);
                dbContext.SaveChanges();

                var dbContextProvider = Substitute.For <IDbContextProvider>();
                dbContextProvider.Provide().Returns(p => dbContext);

                using (var unitOfWork = new DbContextUnitOfWork(dbContextProvider))
                {
                    var repository        = new CarAdvertRepository(unitOfWork);
                    var carAdvertToDelete = repository.Get(carAdvert.Id);

                    // act
                    repository.Delete(carAdvertToDelete);
                    unitOfWork.Commit();

                    // assert
                    var isAny = dbContext.CarAdverts.Any();
                    Assert.IsFalse(isAny);
                }
            }
        }
        public async Task Update(CarAdvertDto obj)
        {
            await _validator.ValidateAndThrowAsync(obj);

            CarAdvert entity = Mapper <CarAdvert, CarAdvertDto> .Map(obj);

            await _carAdvertRepository.UpdateAsync(entity);
        }
        public async Task <int> Add(CarAdvertDto obj)
        {
            await _validator.ValidateAndThrowAsync(obj);

            CarAdvert entity = Mapper <CarAdvert, CarAdvertDto> .Map(obj);

            return(await _carAdvertRepository.InsertAsync(entity));
        }
Esempio n. 9
0
        public void Update(CarAdvert carAdvert)
        {
            if (carAdvert == null)
            {
                throw new ArgumentNullException(nameof(carAdvert));
            }

            context.Entry(carAdvert).State = EntityState.Modified;
            context.SaveChanges();
        }
Esempio n. 10
0
        public async Task Delete(int id)
        {
            CarAdvert entity = await _carAdvertRepository.GetAsync(id);

            if (entity == null)
            {
                throw new ArgumentException($"There is no advert with id {id}");
            }

            await _carAdvertRepository.DeleteAsync(entity);
        }
Esempio n. 11
0
        public CarAdvert Add(CarAdvert carAdvert)
        {
            if (carAdvert == null)
            {
                throw new ArgumentNullException(nameof(carAdvert));
            }
            var result = context.CarAdverts.Add(carAdvert);

            context.SaveChanges();
            return(result.Entity);
        }
Esempio n. 12
0
        public void TestMapCarAdvertToDto_NewCar()
        {
            var mapper    = AutoMapperConfig.Create();
            var carAdvert = new CarAdvert()
            {
                Id    = 1,
                Title = "Audi",
                Price = 1500,
                Fuel  = FuelType.Diesel,
                IsNew = true
            };

            var dto = mapper.Map <CarAdvertDto>(carAdvert);

            Assert.AreEqual(dto.Id, 1);
            Assert.AreEqual(dto.Title, "Audi");
            Assert.AreEqual(dto.Price, 1500);
            Assert.AreEqual(dto.Fuel, "diesel");
            Assert.AreEqual(dto.New, true);
        }
Esempio n. 13
0
        public void TestMapCarAdvertToDto_UsedCar()
        {
            var mapper    = AutoMapperConfig.Create();
            var carAdvert = new CarAdvert()
            {
                Id                = 1,
                Title             = "Audi",
                Price             = 1500,
                Fuel              = FuelType.Diesel,
                IsNew             = false,
                Mileage           = 14000,
                FirstRegistration = DateTime.Now
            };

            var dto = mapper.Map <CarAdvertDto>(carAdvert);

            Assert.AreEqual(dto.Id, 1);
            Assert.AreEqual(dto.Title, "Audi");
            Assert.AreEqual(dto.Price, 1500);
            Assert.AreEqual(dto.Fuel, "diesel");
            Assert.AreEqual(dto.New, false);
            Assert.AreEqual(dto.Mileage, 14000);
            Assert.AreEqual(dto.FirstRegistration, DateTime.Now.Date);
        }