示例#1
0
        public void AddBrand_With_Correct_Parameter()
        {
            //ARRANGE
            var options = new DbContextOptionsBuilder <FleetManagmentContext>()
                          .UseInMemoryDatabase(databaseName: MethodBase.GetCurrentMethod().Name)
                          .Options;

            using var context = new FleetManagmentContext(options);

            IBrandRepository brandRepository = new BrandRepository(context);
            BrandTO          brand           = new BrandTO
            {
                Cars   = new List <CarTO>(),
                Models = new List <ModelTO>(),
                Name   = "VW",
            };

            BrandTO brand2 = new BrandTO
            {
                Cars   = new List <CarTO>(),
                Models = new List <ModelTO>(),
                Name   = "Audi",
            };

            //ACT
            var addedBrand  = brandRepository.Insert(brand);
            var addedBrand2 = brandRepository.Insert(brand2);

            context.SaveChanges();
            //ASSERT
            Assert.IsNotNull(addedBrand);
            Assert.AreNotEqual(0, addedBrand.Id);
            Assert.AreEqual("VW", addedBrand.Name);
        }
示例#2
0
        public void UpdapteBrand_With_Correct_Parameter()
        {
            //ARRANGE
            var options = new DbContextOptionsBuilder <FleetManagmentContext>()
                          .UseInMemoryDatabase(databaseName: MethodBase.GetCurrentMethod().Name)
                          .Options;

            using var context = new FleetManagmentContext(options);

            IBrandRepository brandRepository = new BrandRepository(context);

            BrandTO brand = new BrandTO {
                Name = "VW"
            };

            //ACT
            var addedBrand = brandRepository.Insert(brand);

            context.SaveChanges();

            addedBrand.Name = "Ferrari";
            brandRepository.Update(addedBrand);
            context.SaveChanges();

            //ASSERT
            Assert.IsNotNull(addedBrand);
            Assert.AreNotEqual(0, addedBrand.Id);
            Assert.AreEqual("Ferrari", addedBrand.Name);
        }
示例#3
0
 public bool Remove(BrandTO entity)
 {
     if (entity is null)
     {
         throw new ArgumentException(nameof(entity));
     }
     return(RemoveById(entity.Id));
 }
示例#4
0
 public BrandTO Insert(BrandTO entity)
 {
     if (entity is null)
     {
         throw new ArgumentNullException(nameof(entity));
     }
     return(context.Brands.Add(entity.ToEntity()).Entity.ToTransfertObject());
 }
示例#5
0
        public BrandTO Update(BrandTO entity)
        {
            if (entity is null)
            {
                throw new ArgumentException(nameof(entity));
            }

            var modified = context.Brands.FirstOrDefault(b => b.Id == entity.Id);

            modified.Cars   = entity.Cars?.Select(c => c.ToEntity()).ToList();
            modified.Models = entity.Models?.Select(c => c.ToEntity()).ToList();
            modified.Name   = entity.Name;
            return(modified.ToTransfertObject());
        }
示例#6
0
        public static Brand ToEntity(this BrandTO brand)
        {
            if (brand is null)
            {
                throw new ArgumentNullException(nameof(brand));
            }

            return(new Brand
            {
                Id = brand.Id,
                Name = brand.Name,
                Cars = brand.Cars?.Select(c => c.ToEntity()).ToList(),
                Models = brand.Models?.Select(m => m.ToEntity()).ToList()
            });
        }
示例#7
0
        public static Brand ToDomain(this BrandTO brand)
        {
            if (brand is null)
            {
                throw new ArgumentNullException(nameof(brand));
            }

            return(new Brand
            {
                Id = brand.Id,
                Cars = brand.Cars?.Select(x => x.ToDomain()).ToList(),
                Models = brand.Models?.Select(x => x.ToDomain()).ToList(),
                Name = brand.Name
            });
        }
示例#8
0
        public void Get_All_Brand()
        {
            var options = new DbContextOptionsBuilder <FleetManagmentContext>()
                          .UseInMemoryDatabase(databaseName: MethodBase.GetCurrentMethod().Name)
                          .Options;

            using var context = new FleetManagmentContext(options);

            IBrandRepository brandRepository = new BrandRepository(context);

            BrandTO brand = new BrandTO
            {
                Cars   = new List <CarTO>(),
                Models = new List <ModelTO>(),
                Name   = "VW",
            };

            BrandTO brand2 = new BrandTO
            {
                Cars   = new List <CarTO>(),
                Models = new List <ModelTO>(),
                Name   = "Audi",
            };

            List <BrandTO> brands = new List <BrandTO>();

            //ACT
            var addedBrand  = brandRepository.Insert(brand);
            var addedBrand2 = brandRepository.Insert(brand2);

            context.SaveChanges();

            brands = brandRepository.GetAll().ToList();

            //ASSERT
            Assert.IsNotNull(addedBrand);
            Assert.AreNotEqual(0, addedBrand.Id);
            Assert.AreEqual("VW", addedBrand.Name);
            Assert.AreEqual(2, brands.Count);
        }
示例#9
0
        public void AddBrand_ThrowsException_WhenNullIsProvided()
        {
            var options = new DbContextOptionsBuilder <FleetManagmentContext>()
                          .UseInMemoryDatabase(databaseName: MethodBase.GetCurrentMethod().Name)
                          .Options;

            using var context = new FleetManagmentContext(options);

            IBrandRepository brandRepository = new BrandRepository(context);
            BrandTO          brand           = new BrandTO
            {
                Id     = 1,
                Cars   = new List <CarTO>(),
                Models = new List <ModelTO>(),
                Name   = "VW",
            };

            //ACT
            var addedBrand = brandRepository.Insert(brand);

            context.SaveChanges();
            //ASSERT
            Assert.ThrowsException <ArgumentNullException>(() => brandRepository.Insert(null));
        }