private TestDrive SheduleTestDrive(ApplicationDbContext dbContext, string userId = "") { var dbStatus = SeedStatusesMethods.SeedStatus(dbContext, TestDriveStatus.Upcoming); var dbTestDrive = SeedTestDrivesMethods.SeedTestDriveWithCar <NewCar>(dbContext, userId, dbStatus); return(dbTestDrive); }
public async void WithotPassedStatus_ShouldTrowException() { var dbContext = this.GetDbContext(); var service = this.GetService(dbContext); var dbTestDrive = SeedTestDrivesMethods.SeedTestDriveWithStatus(dbContext, TestDriveStatus.Canceled); var exception = await Assert.ThrowsAsync <InvalidOperationException>( async() => await service.ChangeTestDriveStatusToPassedAsync(dbTestDrive.Id)); }
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 WithUpcomingTestDrive_ShouldChangeStatusToPassed() { var dbContext = this.GetDbContext(); var service = this.GetService(dbContext); var dbTestDrive = SeedTestDrivesMethods.SeedTestDrive(dbContext, "", this.UpcomingStatus); await service.ChangeTestDriveStatusToPassedAsync(dbTestDrive.Id); Assert.Equal(TestDriveStatus.Passed.ToString(), dbTestDrive.Status.Name); }
public async void WithCorrectId_ShouldDeleteTestDrive() { var dbContext = this.GetDbContext(); var dbTestDrive = SeedTestDrivesMethods.SeedTestDriveWithStatus(dbContext); var service = this.GetService(dbContext); await service.DeleteAsync(dbTestDrive.Id); Assert.Empty(dbContext.TestDrives); }
public void WithTestDrive_ShouldReturnTestDrive() { var dbContext = this.GetDbContext(); SeedTestDrivesMethods.SeedTestDriveWithEverything(dbContext); var models = this.CallGetAllSorted(dbContext); Assert.Single(models); }
public async void WithTestDriveOnAnotherUser_ShouldThrowException() { var dbContext = this.GetDbContext(); var dbUser = SeedUsersMethods.SeedUser(dbContext); var dbUpcomingStatus = SeedStatusesMethods.SeedStatus(dbContext, TestDriveStatus.Upcoming); var dbTestDrive = SeedTestDrivesMethods.SeedTestDriveWithCar <NewCar>(dbContext, "", dbUpcomingStatus); var service = this.GetService(dbContext, dbUser.Id); var user = new Mock <ClaimsPrincipal>().Object; await Assert.ThrowsAnyAsync <Exception>(async() => await service.GetByIdAsync(dbTestDrive.Id, user)); }
public async void WithCanceledTestDrive_ShouldThrowException() { var dbContext = this.GetDbContext(); var service = this.GetService(dbContext); var dbTestDrive = SeedTestDrivesMethods.SeedTestDriveWithStatus(dbContext, TestDriveStatus.Canceled); var exception = await Assert.ThrowsAsync <InvalidOperationException>( async() => await service.ChangeTestDriveStatusToPassedAsync(dbTestDrive.Id)); Assert.Equal(ErrorConstants.StatusIsNotUpcoming, exception.Message); }
public void WithBiggerPageNumber_ShouldReturnEmptyCollection() { var dbContext = this.GetDbContext(); SeedTestDrivesMethods.SeedTestDriveWithEverything(dbContext); var pageNumber = 2; var models = this.CallGetAllSorted(dbContext, pageNumber); Assert.Empty(models); }
public async void WithUpcomingTestDrive_ShouldCancelTestDrive() { var dbContext = this.GetDbContext(); var dbUser = SeedUsersMethods.SeedUser(dbContext); var dbUpcomingStatus = SeedStatusesMethods.SeedStatus(dbContext, TestDriveStatus.Upcoming); var dbTestDrive = SeedTestDrivesMethods.SeedTestDriveWithCar <NewCar>(dbContext, dbUser.Id, dbUpcomingStatus); await this.CallCancelTestDriveAsync(dbContext, dbTestDrive.Id, dbUser.Id); Assert.Equal(TestDriveStatus.Canceled.ToString(), dbTestDrive.Status.Name); }
public async void WithCanceledTestDrive_ShouldThrowExcpetion() { var dbContext = this.GetDbContext(); var dbUser = SeedUsersMethods.SeedUser(dbContext); SeedStatusesMethods.SeedStatus(dbContext, TestDriveStatus.Upcoming); var dbTestDrive = SeedTestDrivesMethods.SeedTestDriveWithCar <NewCar>(dbContext, dbUser.Id, this.CanceledStatus); var exception = await Assert.ThrowsAsync <ArgumentException>(async() => await this.CallCancelTestDriveAsync(dbContext, dbTestDrive.Id, dbUser.Id)); Assert.Equal(ErrorConstants.UpcomingStatusRequired, exception.Message); }
public async void WithUpcomingTestDriveFromAnotherUser_ShouldThrowExcpetion() { var dbContext = this.GetDbContext(); var notSignInUser = SeedUsersMethods.SeedUser(dbContext); var signInUser = SeedUsersMethods.SeedUser(dbContext); var dbUpcomingStatus = SeedStatusesMethods.SeedStatus(dbContext, TestDriveStatus.Upcoming); var dbTestDrive = SeedTestDrivesMethods.SeedTestDriveWithCar <NewCar>(dbContext, notSignInUser.Id, dbUpcomingStatus); var exception = await Assert.ThrowsAsync <ArgumentException>(async() => await this.CallCancelTestDriveAsync(dbContext, dbTestDrive.Id, signInUser.Id)); Assert.Equal(ErrorConstants.IncorrectId, exception.Message); }
public async void WithCorrectId_ShouldReturnTestDrive() { var dbContext = this.GetDbContext(); var dbUser = SeedUsersMethods.SeedUser(dbContext); var dbUpcomingStatus = SeedStatusesMethods.SeedStatus(dbContext, TestDriveStatus.Upcoming); var dbTestDrive = SeedTestDrivesMethods.SeedTestDriveWithCar <NewCar>(dbContext, dbUser.Id, dbUpcomingStatus); var service = this.GetService(dbContext, dbUser.Id); var user = new Mock <ClaimsPrincipal>().Object; var model = await service.GetByIdAsync(dbTestDrive.Id, user); Assert.Equal(dbTestDrive.Id, model.Id); }
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 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 WithTestDrives_ShouldReturnModelWithCorrectUsedCarsTestDrivesFromPast24HoursCount() { var dbContext = this.GetDbContext(); var service = this.GetService(dbContext); var yeasterday = this.GetYearterdayTime(); var today = DateTime.UtcNow; this.SeedTestDrivesWithCars(dbContext, today); SeedTestDrivesMethods.SeedTestDriveWithCar <UsedCar>(dbContext, yeasterday); this.SeedTestDrivesWithCars(dbContext, yeasterday); dbContext.SaveChanges(); var model = await service.GetStatisticsAsync(); Assert.Equal(1, model.UsedCarsTestDrivesFromPast24HoursCount); }
private void SeedTestDrivesWithCars(ApplicationDbContext dbContext, DateTime scheduleDate) { SeedTestDrivesMethods.SeedTestDriveWithCar <NewCar>(dbContext, scheduleDate); SeedTestDrivesMethods.SeedTestDriveWithCar <UsedCar>(dbContext, scheduleDate); }