public void DeleteVehicleSubmission_ShouldDeleteVehicle() { //Given var options = new DbContextOptionsBuilder <CarDealerContext>() .UseInMemoryDatabase(databaseName: Guid.NewGuid().ToString()) .Options; var databaseContext = new CarDealerContext(options); var vehicleSubmissionsService = new VehicleSubmissionsService(databaseContext, mockMarketValueService.Object); //When var submission = new VehicleSubmissions() { UserId = "abc123", TimeStamp = new DateTime(12, 12, 12), VehicleId = 1 }; databaseContext.VehicleSubmissions.Add(submission); databaseContext.SaveChanges(); submission.TimeStamp = new DateTime(1999, 1, 13, 3, 57, 32, 11); vehicleSubmissionsService.DeleteVehicleSubmission(submission); //Then var result = databaseContext.VehicleSubmissions.ToList().Count; result.Should().Be(0); }
public void GetVehicleSubmissionByVin_ShouldReturnNull_WhenUserDoesntExist() { //Given var options = new DbContextOptionsBuilder <CarDealerContext>() .UseInMemoryDatabase(databaseName: Guid.NewGuid().ToString()) .Options; var databaseContext = new CarDealerContext(options); var vehicleSubmissionsService = new VehicleSubmissionsService(databaseContext, mockMarketValueService.Object); var vehicle = new Vehicle { Id = 1, Make = "testMake", MarketValue = 10000, Model = "TestModel", VinNumber = "1GCCT19X738198141", Year = 2020 }; databaseContext.VehicleSubmissions.Add(new VehicleSubmissions { UserId = "12", VehicleId = 2, Vehicle = vehicle }); databaseContext.SaveChanges(); //When Action action = () => vehicleSubmissionsService.GetVehicleSubmissionsByVIN("1GCCT19X738198141"); //Then action.Should().Throw <NullReferenceException>(); databaseContext.Database.EnsureDeleted(); }
public void GetVehicleSubmissionByVin_ShouldReturnVehicleSubmission_WhenCalled() { //Given var options = new DbContextOptionsBuilder <CarDealerContext>() .UseInMemoryDatabase(databaseName: Guid.NewGuid().ToString()) .Options; var databaseContext = new CarDealerContext(options); var vehicleSubmissionsService = new VehicleSubmissionsService(databaseContext, mockMarketValueService.Object); var user = new User { Id = "1", Email = "*****@*****.**", UserName = "******", FirstName = "ha", LastName = "Ha" }; databaseContext.UserTable.Add(user); //setup Vehicles var vehicle = new Vehicle { Id = 2, Make = "toyoya", MarketValue = 12313, Model = "camry", VinNumber = "1GCCT19X738198141", Year = 1997 }; databaseContext.VehicleInventory.Add(vehicle); databaseContext.VehicleSubmissions.Add(new VehicleSubmissions { UserId = "1", VehicleId = 2 }); databaseContext.SaveChanges(); //When var response = vehicleSubmissionsService.GetVehicleSubmissionsByVIN("1GCCT19X738198141"); //Then response.Vehicle.Should().Be(vehicle); databaseContext.Database.EnsureDeleted(); }
public void AddVehicleSubmissionUnitTest_ShouldThrowArgumentException_WhenThereIsNoVehicle() { //Given var options = new DbContextOptionsBuilder <CarDealerContext>() .UseInMemoryDatabase(databaseName: Guid.NewGuid().ToString()) .Options; var databaseContext = new CarDealerContext(options); var user = new User { Id = "1", Email = "*****@*****.**", UserName = "******" }; databaseContext.UserTable.Add(user); databaseContext.SaveChanges(); marketMock.Setup(x => x.GetAverageVehiclePrice("jnksjnf")).ReturnsAsync("nice"); //When var service = new VehicleSubmissionsService(databaseContext, marketMock.Object); var sub = new VehicleSubmissions { TimeStamp = new DateTime(), UserId = "1" }; Func <Task> action = async() => await service.AddVehicleSubmission(sub, 4984982); //Then action.Should().Throw <ArgumentException>().WithMessage("Vehicle not found"); databaseContext.Database.EnsureDeleted(); }
public void GetAllSubmissions_ShouldReturn1_WhenListHas1Element() { //Given var options = new DbContextOptionsBuilder <CarDealerContext>() .UseInMemoryDatabase(databaseName: Guid.NewGuid().ToString()) .Options; var databaseContext = new CarDealerContext(options); var vehicleSubmissionsService = new VehicleSubmissionsService(databaseContext, mockMarketValueService.Object); //When User MyUser = new User() { Id = "abc123", Email = "*****@*****.**", PasswordHash = "xxxxxx" }; Vehicle vehicle = new Vehicle() { Id = 1 }; databaseContext.UserTable.Add(MyUser); databaseContext.VehicleInventory.Add(vehicle); var submission = new VehicleSubmissions() { User = MyUser, TimeStamp = new DateTime(12, 12, 12), Vehicle = vehicle }; databaseContext.VehicleSubmissions.Add(submission); databaseContext.SaveChanges(); var result = vehicleSubmissionsService.GetAllVehicleSubmissionsByUser("abc123").Count; //Then result.Should().Be(1); }
public void GetAllSubmissions_ShouldReturn3_WhenListHas3Elements() { //Given var options = new DbContextOptionsBuilder <CarDealerContext>() .UseInMemoryDatabase(databaseName: Guid.NewGuid().ToString()) .Options; var databaseContext = new CarDealerContext(options); var vehicleSubmissionsService = new VehicleSubmissionsService(databaseContext, mockMarketValueService.Object); //When User MyUser = new User() { Id = "abc123" }; Vehicle vehicle1 = new Vehicle() { Id = 1, Make = "Toyota" }; Vehicle vehicle2 = new Vehicle() { Id = 2, Make = "Chevy" }; Vehicle vehicle3 = new Vehicle() { Id = 3, Make = "SUV" }; var submission1 = new VehicleSubmissions() { User = MyUser, TimeStamp = new DateTime(12, 12, 12), Vehicle = vehicle1 }; var submission2 = new VehicleSubmissions() { User = MyUser, TimeStamp = new DateTime(12, 12, 12), Vehicle = vehicle2 }; var submission3 = new VehicleSubmissions() { User = MyUser, TimeStamp = new DateTime(12, 12, 12), Vehicle = vehicle3 }; databaseContext.VehicleSubmissions.Add(submission1); databaseContext.VehicleSubmissions.Add(submission2); databaseContext.VehicleSubmissions.Add(submission3); databaseContext.SaveChanges(); var result = vehicleSubmissionsService.GetAllVehicleSubmissionsByUser("abc123"); //Then result.Count.Should().Be(3); }
public void DeleteVehicleSubmissionByVIN_ShouldThrowException_WhenCalledWithAVINThatDoesntExist() { //Given var options = new DbContextOptionsBuilder <CarDealerContext>() .UseInMemoryDatabase(databaseName: Guid.NewGuid().ToString()) .Options; var databaseContext = new CarDealerContext(options); //When var service = new VehicleSubmissionsService(databaseContext, mockMarketValueService.Object); Action action = () => service.DeleteVehicleSubmissionByVIN("4T1BF3EK5BU638805"); //Then action.Should().Throw <InvalidOperationException>().WithMessage("delete vehicle submission is null "); }
public void DeleteVehicleSubmissionByVIN_ShouldThrowException_WhenCalledWithoutVIN() { //Given var options = new DbContextOptionsBuilder <CarDealerContext>() .UseInMemoryDatabase(databaseName: Guid.NewGuid().ToString()) .Options; var databaseContext = new CarDealerContext(options); //When var service = new VehicleSubmissionsService(databaseContext, mockMarketValueService.Object); Action action = () => service.DeleteVehicleSubmissionByVIN(null); //Then action.Should().Throw <ArgumentNullException>(); }
public void UpdateVehicleSubmission_ShouldThrowException_WhenPassedNull() { //Given var options = new DbContextOptionsBuilder <CarDealerContext>() .UseInMemoryDatabase(databaseName: Guid.NewGuid().ToString()) .Options; var databaseContext = new CarDealerContext(options); var vehicleSubmissionsService = new VehicleSubmissionsService(databaseContext, mockMarketValueService.Object); //When Action action = () => vehicleSubmissionsService.UpdateVehicleSubmission(null); //Then action.Should().Throw <System.ArgumentNullException>(); }
public void GetAllSubmissions_ShouldReturn0_WhenListIsEmpty() { //Given var options = new DbContextOptionsBuilder <CarDealerContext>() .UseInMemoryDatabase(databaseName: Guid.NewGuid().ToString()) .Options; var databaseContext = new CarDealerContext(options); var vehicleSubmissionsService = new VehicleSubmissionsService(databaseContext, mockMarketValueService.Object); //When var result = vehicleSubmissionsService.GetAllVehicleSubmissionsByUser("abc123").Count; //Then result.Should().Be(0); }
public void AddVehicleSubmissionUnitTest_ShouldThrowArgumentException_WhenThereIsNoUser() { //Given var options = new DbContextOptionsBuilder <CarDealerContext>() .UseInMemoryDatabase(databaseName: Guid.NewGuid().ToString()) .Options; var databaseContext = new CarDealerContext(options); marketMock.Setup(x => x.GetAverageVehiclePrice("jnksjnf")).ReturnsAsync("nice"); //When var service = new VehicleSubmissionsService(databaseContext, marketMock.Object); var sub = new VehicleSubmissions() { TimeStamp = new DateTime(), UserId = "1" }; Func <Task> action = async() => await service.AddVehicleSubmission(sub, 1461); //Then action.Should().Throw <ArgumentException>().WithMessage("User not found"); databaseContext.Database.EnsureDeleted(); }
public async Task VehicleSubmissionDeleteByID_ShouldThrowError_WhenCalledWithNoUser() { var options = new DbContextOptionsBuilder <CarDealerContext>() .UseInMemoryDatabase(databaseName: Guid.NewGuid().ToString()) .Options; var databaseContext = new CarDealerContext(options); var vehicleSubmissionsService = new VehicleSubmissionsService(databaseContext, mockMarketValueService.Object); //When var vehicle = new Vehicle() { Id = 1, Make = "Toyota", Model = "camry", VinNumber = "WDBUF83J75X173935", Year = 1997 }; var user = new User { Id = "abc123", Email = "*****@*****.**", UserName = "******", FirstName = "kevin", LastName = "huynh", PasswordHash = "sjkdfsf" }; var submission = new VehicleSubmissions() { UserId = "abc123", TimeStamp = new DateTime(12, 12, 12), VehicleId = 1, Vehicle = vehicle }; await databaseContext.VehicleInventory.AddAsync(vehicle); await databaseContext.UserTable.AddAsync(user); await databaseContext.SaveChangesAsync(); await vehicleSubmissionsService.AddVehicleSubmission(submission, 51519); databaseContext.VehicleSubmissions.Count().Should().Be(1); var deleteUser = databaseContext.UserTable.FirstOrDefault(x => true); var subId = databaseContext.VehicleSubmissions.FirstOrDefault(x => true).Id; Action action = () => vehicleSubmissionsService.DeleteVehicleSubmissionById("1sdf"); //Then action.Should().Throw <ArgumentOutOfRangeException>(); }
public async Task AddVehicleSubmission_ShouldIncreaseListCountTo1_WhenValidInfoIsPassed() { //Given var options = new DbContextOptionsBuilder <CarDealerContext>() .UseInMemoryDatabase(databaseName: Guid.NewGuid().ToString()) .Options; var databaseContext = new CarDealerContext(options); mockMarketValueService.Setup(x => x.GetAverageVehiclePrice("abc123xyzz")).ReturnsAsync("123"); var vehicleSubmissionsService = new VehicleSubmissionsService(databaseContext, mockMarketValueService.Object); User user = new User() { Id = "abc123" }; Vehicle vehicle = new Vehicle() { Make = "Toyota", Model = "Camry", Year = 1994, VinNumber = "abc123xyzz" }; databaseContext.UserTable.Add(user); databaseContext.VehicleInventory.Add(vehicle); databaseContext.SaveChanges(); var submission = new VehicleSubmissions() { UserId = user.Id, User = user, TimeStamp = new DateTime(12, 12, 12), Vehicle = vehicle, VehicleId = vehicle.Id }; //When await vehicleSubmissionsService.AddVehicleSubmission(submission, 4529); //Then databaseContext.VehicleSubmissions.Count().Should().Be(1); databaseContext.Database.EnsureDeleted(); }
public void GetVehicleSubmissionByVin_ShouldReturnNull_WhenVehicleDoesntExist() { //Given var options = new DbContextOptionsBuilder <CarDealerContext>() .UseInMemoryDatabase(databaseName: Guid.NewGuid().ToString()) .Options; var databaseContext = new CarDealerContext(options); var vehicleSubmissionsService = new VehicleSubmissionsService(databaseContext, mockMarketValueService.Object); var user = new User { Id = "1", Email = "*****@*****.**", UserName = "******", FirstName = "ha", LastName = "Ha" }; databaseContext.UserTable.Add(user); databaseContext.SaveChanges(); //When Action action = () => vehicleSubmissionsService.GetVehicleSubmissionsByVIN("1GCCT19X738198141"); //Then action.Should().Throw <NullReferenceException>(); databaseContext.Database.EnsureDeleted(); }
public async Task AddVehicleSubmission_ShouldIncreaseListCountTo3_WhenInvoked3Times() { //Given var options = new DbContextOptionsBuilder <CarDealerContext>() .UseInMemoryDatabase(databaseName: Guid.NewGuid().ToString()) .Options; var databaseContext = new CarDealerContext(options); mockMarketValueService.Setup(x => x.GetAverageVehiclePrice("abc1213xyzz")).ReturnsAsync("123"); mockMarketValueService.Setup(x => x.GetAverageVehiclePrice("abc2123xyzz")).ReturnsAsync("123"); mockMarketValueService.Setup(x => x.GetAverageVehiclePrice("abc123xyz3z")).ReturnsAsync("123"); var vehicleSubmissionsService = new VehicleSubmissionsService(databaseContext, mockMarketValueService.Object); //When User user = new User() { Id = "abc123" }; Vehicle vehicle1 = new Vehicle() { Id = 1, Make = "Toyota", Model = "Camry", Year = 1994, VinNumber = "abc1213xyzz" }; Vehicle vehicle2 = new Vehicle() { Id = 2, Make = "Toyota", Model = "Camry", Year = 1994, VinNumber = "abc2123xyzz" }; Vehicle vehicle3 = new Vehicle() { Id = 3, Make = "Toyota", Model = "Camry", Year = 1994, VinNumber = "abc123xyz3z" }; databaseContext.UserTable.Add(user); databaseContext.VehicleInventory.Add(vehicle1); databaseContext.VehicleInventory.Add(vehicle2); databaseContext.VehicleInventory.Add(vehicle3); databaseContext.SaveChanges(); var submission1 = new VehicleSubmissions() { UserId = user.Id, User = user, TimeStamp = new DateTime(12, 12, 12), Vehicle = vehicle1, VehicleId = 1 }; var submission2 = new VehicleSubmissions() { UserId = user.Id, User = user, TimeStamp = new DateTime(12, 12, 12), Vehicle = vehicle2, VehicleId = 2 }; var submission3 = new VehicleSubmissions() { UserId = user.Id, User = user, TimeStamp = new DateTime(12, 12, 12), Vehicle = vehicle3, VehicleId = 3 }; await vehicleSubmissionsService.AddVehicleSubmission(submission1, 74524); await vehicleSubmissionsService.AddVehicleSubmission(submission2, 12345); await vehicleSubmissionsService.AddVehicleSubmission(submission3, 75465); var result = vehicleSubmissionsService.GetAllVehicleSubmissionsByUser("abc123").Count; //Then result.Should().Be(3); databaseContext.Database.EnsureDeleted(); }
public async Task DuplicateVehicleIdShouldThrowException() { //Given var options = new DbContextOptionsBuilder <CarDealerContext>() .UseInMemoryDatabase(databaseName: Guid.NewGuid().ToString()) .Options; var databaseContext = new CarDealerContext(options); mockMarketValueService.Setup(x => x.GetAverageVehiclePrice("abc1213xyzz")).ReturnsAsync("123"); mockMarketValueService.Setup(x => x.GetAverageVehiclePrice("abc2123xyzz")).ReturnsAsync("123"); var vehicleSubmissionsService = new VehicleSubmissionsService(databaseContext, mockMarketValueService.Object); //When User user = new User() { Id = "abc123" }; Vehicle vehicle1 = new Vehicle() { Make = "Toyota", Model = "Camry", Year = 1994, VinNumber = "abc1213xyzz" }; Vehicle vehicle2 = new Vehicle() { Make = "Toyota", Model = "Camry", Year = 1994, VinNumber = "abc2123xyzz" }; await databaseContext.UserTable.AddAsync(user); await databaseContext.VehicleInventory.AddAsync(vehicle1); await databaseContext.VehicleInventory.AddAsync(vehicle2); await databaseContext.SaveChangesAsync(); var submission1 = new VehicleSubmissions() { UserId = user.Id, User = user, TimeStamp = new DateTime(12, 12, 12), Vehicle = vehicle1, VehicleId = 1 }; var submission2 = new VehicleSubmissions() { UserId = user.Id, User = user, TimeStamp = new DateTime(12, 12, 12), Vehicle = vehicle2, VehicleId = 2 }; var submission3 = new VehicleSubmissions() { UserId = user.Id, User = user, TimeStamp = new DateTime(12, 12, 12), Vehicle = vehicle2, VehicleId = 2 }; await vehicleSubmissionsService.AddVehicleSubmission(submission1, 789456); await vehicleSubmissionsService.AddVehicleSubmission(submission2, 789456); Func <Task> action = async() => await vehicleSubmissionsService.AddVehicleSubmission(submission3, 789456); //Then action.Should().Throw <System.ArgumentException>().WithMessage("Vehicle already used in previous submission"); databaseContext.Database.EnsureDeleted(); }