public void GetByNameShouldThrowArgumentNullForInvalidName(string name)
        {
            var options = new DbContextOptionsBuilder <ApplicationDbContext>()
                          .UseInMemoryDatabase(databaseName: "GetByNameShouldThrowArgumentNullForInvalidName").Options;
            var dbContext = new ApplicationDbContext(options);

            var repository = new EfDeletableEntityRepository <VehicleCategory>(dbContext);
            var service    = new VehicleCategoriesService(repository);

            Assert.Throws <ArgumentNullException>(() => service.GetVehicleCategoryByName(name));
        }
        public async Task GetByNameShouldWork()
        {
            var options = new DbContextOptionsBuilder <ApplicationDbContext>()
                          .UseInMemoryDatabase(databaseName: "GetByNameShouldWork").Options;
            var dbContext = new ApplicationDbContext(options);

            var repository = new EfDeletableEntityRepository <VehicleCategory>(dbContext);
            var service    = new VehicleCategoriesService(repository);

            await service.AddAsync("Sedan");

            Assert.Equal("Sedan", service.GetVehicleCategoryByName("Sedan").Name);
        }
        public async Task GetAllGenericShouldWork()
        {
            var options = new DbContextOptionsBuilder <ApplicationDbContext>()
                          .UseInMemoryDatabase(databaseName: "GetAllGenericShouldWork").Options;
            var dbContext = new ApplicationDbContext(options);

            dbContext.VehicleCategories.Add(new VehicleCategory());
            dbContext.VehicleCategories.Add(new VehicleCategory());
            dbContext.VehicleCategories.Add(new VehicleCategory());
            await dbContext.SaveChangesAsync();

            var repository = new EfDeletableEntityRepository <VehicleCategory>(dbContext);
            var service    = new VehicleCategoriesService(repository);

            Assert.Equal(3, service.GetAll <VehicleCategory>().Count());
        }