public async void CloseTransaction_AtInitializedDbTable_DataAtDbEqualExpected() { // arrange var transaction = GetTransaction(); var operations = GetOperations(); var productsCatalog = GetProductCatalog(); var products = GetProductsForClose(); var storages = GetStorages(); 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 expected = new Product { Id = 0, Uid = 44440, StorageId = 44440, Price = 0, Quantity = 30, QuantityUnit = "mg." }; // act await logic.CloseTransactionAsync(transaction.Id); // assert var actual = await fixture.db.Product.FirstOrDefaultAsync(i => i.Uid == expected.Uid && i.StorageId == expected.StorageId); Assert.NotNull(actual); Assert.Equal(expected.Quantity, actual.Quantity); }
public async Task <IActionResult> CloseTransaction(string key) { int id = Int32.Parse(key); var statusMessage = await logicValidation.CheckCloseTransactionAsync(id); if (statusMessage.IsCompleted) { await logic.CloseTransactionAsync(id); await logProvider.AddToLogAsync($"Closed transaction (Id: {key})."); return(RedirectToRoute(TransactionsRouting.SingleItem, new { key })); } else { return(View("CustomError", statusMessage)); } }