public async Task AddOrUpdateCustomerShouldAddDesiredRecordToTheListAndHaveIdOneIfListIsEmpty() { // Arrange var initialCustomersDataList = new List <Customer>(); var customerToInsert = new CustomerViewModel("test", "test", "test", "test", "test"); var expectedData = new List <Customer>() { new Customer(1, "test", "test", "test", "test", "test") }; var expectedId = 1; dataProviderMock.Setup(s => s.InitializeCustomers()).ReturnsAsync(initialCustomersDataList); customerRepository = new CustomerRepository(dataProviderMock.Object); // Act var actualUserId = await customerRepository.AddOrUpdateCustomer(customerToInsert); var actualData = customerRepository.GetAllCustomers().Result.ToList(); // Assert Assert.That(actualData.Count, Is.EqualTo(expectedData.Count)); Assert.That(actualUserId, Is.EqualTo(expectedId)); for (int i = 0; i < actualData.Count(); i++) { Assert.That(actualData[i].Id, Is.EqualTo(expectedData[i].Id)); Assert.That(actualData[i].Name, Is.EqualTo(expectedData[i].Name)); Assert.That(actualData[i].Email, Is.EqualTo(expectedData[i].Email)); Assert.That(actualData[i].IBAN, Is.EqualTo(expectedData[i].IBAN)); Assert.That(actualData[i].Phone, Is.EqualTo(expectedData[i].Phone)); Assert.That(actualData[i].Suffix, Is.EqualTo(expectedData[i].Suffix)); } }
public async Task AddOrUpdateCustomerShouldUpdateItemInList() { // Arrange var initialCustomersDataList = new List <Customer>() { new Customer(1, "test1", "test1", "test1", "test1", "test1"), new Customer(2, "test2", "test2", "test2", "testEmail", "test2"), new Customer(3, "test3", "test3", "test3", "test3", "test3") }; var customerToInsert = new CustomerViewModel("test4", "test4", "test4", "testEmail", "test4"); var expectedData = new List <Customer>() { new Customer(1, "test1", "test1", "test1", "test1", "test1"), new Customer(2, "test4", "test4", "test4", "testEmail", "test4"), new Customer(3, "test3", "test3", "test3", "test3", "test3") }; var expectedId = 2; dataProviderMock.Setup(s => s.InitializeCustomers()).ReturnsAsync(initialCustomersDataList); customerRepository = new CustomerRepository(dataProviderMock.Object); // Act var actualUserId = await customerRepository.AddOrUpdateCustomer(customerToInsert); var actualData = customerRepository.GetAllCustomers().Result.ToList(); // Assert Assert.That(actualData.Count, Is.EqualTo(expectedData.Count)); Assert.That(actualUserId, Is.EqualTo(expectedId)); for (int i = 0; i < actualData.Count(); i++) { Assert.That(actualData[i].Id, Is.EqualTo(expectedData[i].Id)); Assert.That(actualData[i].Name, Is.EqualTo(expectedData[i].Name)); Assert.That(actualData[i].Email, Is.EqualTo(expectedData[i].Email)); Assert.That(actualData[i].IBAN, Is.EqualTo(expectedData[i].IBAN)); Assert.That(actualData[i].Phone, Is.EqualTo(expectedData[i].Phone)); Assert.That(actualData[i].Suffix, Is.EqualTo(expectedData[i].Suffix)); } }
public JsonResult CompleteSale(SaleViewModel model) { bool success = true; BeSpokeContext context = new BeSpokeContext(); using (var dbContextTransaction = context.Database.BeginTransaction()) { try { // Add Customer var custRepo = new CustomerRepository(); custRepo.AddOrUpdateCustomer(model.Customer, model.SaleDate); //Create Sale Sale sale = new Sale(); sale.CustomerId = model.Customer.CustomerId; sale.ProductId = model.Product.ProductId; sale.SalesPersonId = model.SalesPersonId; sale.Date = model.SaleDate; var salesRepo = new SalesRepository(); salesRepo.CreateSale(sale); //Update Product Count var productRepo = new ProductRepository(); productRepo.UpdateQtyOnHand(model.Product.ProductId); dbContextTransaction.Commit(); } catch (Exception e) { success = false; dbContextTransaction.Rollback(); } } return(new JsonResult { Data = success }); }