public async void OpenTransaction_AtInitializedDbTable_DataAtDbEqualExpected() { // arrange var transaction = GetTransaction(); var operations = GetOperations(); var productsCatalog = GetProductCatalog(); var products = GetProductsForOpen(); var storages = GetStorages(); transaction.IsOpen = false; fixture.db.Add(transaction); fixture.db.AddRange(productsCatalog); fixture.db.AddRange(products); fixture.db.AddRange(storages); fixture.db.AddRange(operations); await fixture.db.SaveChangesAsync(); var expectedA = new Product { Id = 0, Uid = 44440, StorageId = 44441, Price = 0, Quantity = 22, QuantityUnit = "mg." }; var expectedB = new Product { Id = 0, Uid = 44440, StorageId = 44442, Price = 0, Quantity = 9, QuantityUnit = "mg." }; // act await logic.OpenTransactionAsync(transaction.Id); // assert var actualA = await fixture.db.Product.FirstOrDefaultAsync(i => i.Uid == expectedA.Uid && i.StorageId == expectedA.StorageId); var actualB = await fixture.db.Product.FirstOrDefaultAsync(i => i.Uid == expectedB.Uid && i.StorageId == expectedB.StorageId); Assert.NotNull(actualA); Assert.NotNull(actualB); Assert.Equal(expectedA.Quantity, actualA.Quantity); Assert.Equal(expectedB.Quantity, actualB.Quantity); }
public async Task <IActionResult> OpenTransaction(string key) { int id = Int32.Parse(key); var statusMessage = await logicValidation.CheckOpenTransactionAsync(id); if (statusMessage.IsCompleted) { await logic.OpenTransactionAsync(id); await logProvider.AddToLogAsync($"Opened transaction (Id: {key})."); return(RedirectToRoute(TransactionsRouting.SingleItem, new { key })); } else { return(View("CustomError", statusMessage)); } }