private void SeedCarWithYear(ApplicationDbContext dbContext, string year) { var dbCar = SeedCarsMethods.SeedCar <NewCar>(dbContext); dbCar.Year = year; dbContext.SaveChanges(); }
private void SeedTestDrivesWithCars(ApplicationDbContext dbContext) { var newCar = SeedCarsMethods.SeedCar <NewCar>(dbContext); SeedTestDrivesMethods.SeedTestDrive(dbContext, newCar); var usedCar = SeedCarsMethods.SeedCar <UsedCar>(dbContext); SeedTestDrivesMethods.SeedTestDrive(dbContext, usedCar); }
public async void WithCorrectId_ShouldDeleteCar() { var dbContext = this.GetDbContext(); var dbCar = SeedCarsMethods.SeedCar <NewCar>(dbContext); var service = this.GetService(dbContext); await service.DeleteAsync(dbCar.Id); Assert.Empty(dbContext.BaseCars); }
public async void WithTestDrivesAndCarAndNotSignInUser_ShouldReturnIsTestDriveScheduledFalse() { var dbContext = this.GetDbContext(); var dbStatus = SeedStatusesMethods.SeedStatus(dbContext, TestDriveStatus.Upcoming); var dbCar = SeedCarsMethods.SeedCarWithTestDrive <NewCar>(dbContext, "", dbStatus); var model = await this.CallGetCarViewModelAsync(dbContext, dbCar.Id, false, null); Assert.False(model.IsTestDriveScheduled); }
public async void WithModel_ShouldScheduleTestDriveWithUpcomingStatus() { var dbContext = this.GetDbContext(); var dbUser = SeedUsersMethods.SeedUser(dbContext); var dbCar = SeedCarsMethods.SeedCar <NewCar>(dbContext); var model = this.GetModel(dbCar.Id); await this.CallScheduleTestDriveAsync(model, dbContext, dbUser.Id); Assert.Equal(TestDriveStatus.Upcoming.ToString(), dbContext.TestDrives.First().Status.Name); }
public async void WithSignInUserWithTestDrive_ShouldReturnIsTestDriveScheduledTrue() { var dbContext = this.GetDbContext(); var dbUser = SeedUsersMethods.SeedUser(dbContext); var dbStatus = SeedStatusesMethods.SeedStatus(dbContext, TestDriveStatus.Upcoming); var dbCar = SeedCarsMethods.SeedCarWithTestDrive <NewCar>(dbContext, dbUser.Id, dbStatus); var model = await this.CallGetCarViewModelAsync(dbContext, dbCar.Id, true, dbUser.Id); Assert.True(model.IsTestDriveScheduled); }
public async void WithCar_ShouldReturnModelWithCorrectValue() { var dbContext = this.GetDbContext(); var service = this.GetService(); var dbCar = SeedCarsMethods.SeedCarWithEverything <UsedCar>(dbContext); var models = await service.GetSeriesFilterModelsAsync(dbContext.BaseCars); Assert.Equal(dbCar.Series.Name, models.First().Value); Assert.Single(models); }
public async void WithNotSignInUser_ShouldThrowException() { var dbContext = this.GetDbContext(); var dbCar = SeedCarsMethods.SeedCar <NewCar>(dbContext); var model = this.GetModel(dbCar.Id); var exception = await Assert.ThrowsAsync <InvalidOperationException>(async() => await this.CallScheduleTestDriveAsync(model, dbContext, null)); Assert.Equal(ErrorConstants.NotSignIn, exception.Message); }
public async void WithCarsAndNewCarType_ShouldFilterModelTypesByNewCars() { var dbContext = this.GetDbContext(); var dbNewCar = SeedCarsMethods.SeedCarWithEverything <NewCar>(dbContext); var dbUsedCar = SeedCarsMethods.SeedCarWithEverything <UsedCar>(dbContext); var service = this.GetService(dbContext); var model = await service.GetSearchModelAsync(dbContext.BaseCars, CarType.NewCar); Assert.Single(model.ModelTypes); Assert.Single(model.ModelTypes, mt => mt.Value == dbNewCar.ModelType.Name); }
public async void WithSignInUserWithTestDrive_ShouldReturnCorrectTestDriveId() { var dbContext = this.GetDbContext(); var dbUser = SeedUsersMethods.SeedUser(dbContext); var dbStatus = SeedStatusesMethods.SeedStatus(dbContext, TestDriveStatus.Upcoming); var dbCar = SeedCarsMethods.SeedCarWithTestDrive <NewCar>(dbContext, dbUser.Id, dbStatus); var model = await this.CallGetCarViewModelAsync(dbContext, dbCar.Id, true, dbUser.Id); Assert.Equal(dbCar.TestDrives.First().Id, model.TestDriveId); }
public async void WithNewAndUsedCars_ShouldReturnModelWithCorrectTotalUsedCarsCount() { var dbContext = this.GetDbContext(); var service = this.GetService(dbContext); SeedCarsMethods.SeedCar <NewCar>(dbContext); SeedCarsMethods.SeedCar <UsedCar>(dbContext); var model = await service.GetStatisticsAsync(); Assert.Equal(1, model.UsedCarsCount); }
public async void WithCarsWithDifferentModels_ShouldReturnCorrectModelTypes() { var dbContext = this.GetDbContext(); var service = this.GetService(); var dbCar1 = SeedCarsMethods.SeedCarWithEverything <UsedCar>(dbContext); var dbCar2 = SeedCarsMethods.SeedCarWithEverything <UsedCar>(dbContext); var models = await service.GetSeriesFilterModelsAsync(dbContext.BaseCars); Assert.Contains(models, m => m.Value == dbCar1.Series.Name); Assert.Contains(models, m => m.Value == dbCar2.Series.Name); Assert.Equal(2, models.Count); }
public async void WithScheduledTestDriveFromAnother_ShouldSheduleTestDrive() { var dbContext = this.GetDbContext(); this.SheduleTestDrive(dbContext); var dbUser = SeedUsersMethods.SeedUser(dbContext); var dbCar = SeedCarsMethods.SeedCar <NewCar>(dbContext); var model = this.GetModel(dbCar.Id); await this.CallScheduleTestDriveAsync(model, dbContext, dbUser.Id); Assert.Equal(2, dbContext.TestDrives.Count()); }
public async void WithUsedCarAndModelWithMileage_ShouldEditMiles() { var dbContext = this.GetDbContext(); var dbCar = SeedCarsMethods.SeedCar <UsedCar>(dbContext); var service = this.GetService(dbContext); var mileage = 10.0; var model = CarServiceModelCreateMethods.Create(dbCar.Id, mileage); await service.EditAsync <UsedCar>(model); Assert.Equal(mileage, dbCar.Mileage); }
public async void WithoutPictures_ShouldNotChangePictures() { var dbContext = this.GetDbContext(); var dbPicture = EntitiesCreateMethods.CreatePicture(Guid.NewGuid().ToString()); var dbCar = SeedCarsMethods.SeedCar <NewCar>(dbContext, dbPicture); var service = this.GetService(dbContext); var model = CarServiceModelCreateMethods.Create(dbCar.Id); var exception = await Assert.ThrowsAsync <RepositoryUpdateNoRowsAffectedException>( async() => await service.EditAsync <NewCar>(model)); Assert.Equal(ErrorConstants.UnitOfWorkNoRowsAffected, exception.Message); }
public async void WithFilteredCars_ShouldReturnModelWithCorrectSeries() { var dbContext = this.GetDbContext(); var dbCar1 = SeedCarsMethods.SeedCarWithEverything <NewCar>(dbContext); var dbCar2 = SeedCarsMethods.SeedCarWithEverything <NewCar>(dbContext); var service = this.GetService(dbContext); var model = await service.GetCarFilterModelAsync(dbContext.BaseCars, dbContext.BaseCars); Assert.Equal(2, model.Series.Count); Assert.Contains(model.Series, mt => mt.Value == dbCar1.Series.Name && mt.Text == dbCar1.Series.Name); Assert.Contains(model.Series, mt => mt.Value == dbCar2.Series.Name && mt.Text == dbCar2.Series.Name); Assert.True(model.Series.All(s => s.CarsCount == 1)); }
public async void WithSignInUser_ShouldReturnCorrectIsTestDriveScheduledForTheCurrentUser() { var dbContext = this.GetDbContext(); var dbSignInUser = SeedUsersMethods.SeedUser(dbContext); var dbNotSignInUser = SeedUsersMethods.SeedUser(dbContext); var dbCar = SeedCarsMethods.SeedCarWithEverything <NewCar>(dbContext); SeedTestDrivesMethods.SeedUpcomingTestDrive(dbContext, dbCar, dbNotSignInUser.Id); var model = await this.CallGetCarViewModelAsync(dbContext, dbCar.Id, true, dbSignInUser.Id); Assert.False(model.IsTestDriveScheduled); }
public async void WithCarsAndNewCarType_ShouldFilterYearsByNewCars() { var dbContext = this.GetDbContext(); var newCarYear = "2020"; var usedCarYear = "2018"; SeedCarsMethods.SeedCar <NewCar>(dbContext, newCarYear); SeedCarsMethods.SeedCar <UsedCar>(dbContext, usedCarYear); var service = this.GetService(dbContext); var model = await service.GetSearchModelAsync(dbContext.BaseCars, CarType.NewCar); Assert.Single(model.Years); Assert.Single(model.Years, m => m.Value == newCarYear); }
public async void WithPictures_ShouldReplacePictures() { var dbContext = this.GetDbContext(); var dbPictures = EntitiesCreateMethods.CreatePicture(Guid.NewGuid().ToString()); var dbCar = SeedCarsMethods.SeedCar <NewCar>(dbContext, dbPictures); var picturePublicId = Guid.NewGuid().ToString(); var model = CarServiceModelCreateMethods.Create(dbCar.Id, picturePublicId); var service = this.GetService(dbContext); await service.EditAsync <NewCar>(model); Assert.Single(dbContext.Pictures); Assert.Equal(picturePublicId, dbContext.Pictures.First().PublicId); }
public async void WithUsersWithTestDrivesWithTheSameCar_ShouldReturnCorrectTestDriveIdForTheCurrentUser() { var dbContext = this.GetDbContext(); var dbSignInUser = SeedUsersMethods.SeedUser(dbContext); var dbNotSignInUser = SeedUsersMethods.SeedUser(dbContext); var dbCar = SeedCarsMethods.SeedCarWithEverything <NewCar>(dbContext); var dbSignInUserTestDrive = SeedTestDrivesMethods.SeedUpcomingTestDrive(dbContext, dbCar, dbSignInUser.Id); var dbNotSignInUserTestDrive = SeedTestDrivesMethods.SeedUpcomingTestDrive(dbContext, dbCar, dbNotSignInUser.Id); var model = await this.CallGetCarViewModelAsync(dbContext, dbCar.Id, true, dbSignInUser.Id); Assert.Equal(dbSignInUserTestDrive.Id, model.TestDriveId); }
public async void WithOptions_ShouldReplaceOptions() { var dbContext = this.GetDbContext(); var carOption = SeedOptionsMethods.SeedOption(dbContext); var dbCarOptions = EntitiesCreateMethods.CreateCarOption(carOption); var dbCar = SeedCarsMethods.SeedCar <NewCar>(dbContext, dbCarOptions); var service = this.GetService(dbContext); var inputOption = SeedOptionsMethods.SeedOption(dbContext); var model = CarServiceModelCreateMethods.Create(dbCar.Id, inputOption); await service.EditAsync <NewCar>(model); Assert.True(dbCar.Options.All(o => inputOption.Id == o.OptionId)); }
public void WithTestDrives_ShouldReturnOnlyUserTestDrives() { var dbContext = this.GetDbContext(); var dbUser = SeedUsersMethods.SeedUser(dbContext); var upcomingStatus = SeedStatusesMethods.SeedStatus(dbContext, TestDriveStatus.Upcoming); SeedCarsMethods.SeedCarWithTestDrive <NewCar>(dbContext, dbUser.Id, upcomingStatus); SeedCarsMethods.SeedCarWithTestDrive <NewCar>(dbContext, "", upcomingStatus); var user = new Mock <ClaimsPrincipal>().Object; var service = this.GetService(dbContext, dbUser.Id); var models = service.GetAll(user); Assert.Equal(dbUser.TestDrives.First().Id, models.First().Id); Assert.Single(models); }