public async Task <IActionResult> SingleItem(string key) { int id = Int32.Parse(key); var statusMessage = await logicValidation.CheckGetSingleDataModelAsync(id); if (statusMessage.IsCompleted) { var model = await logic.GetSingleDataModelAsync(id); return(View(model)); } else { return(View("CustomError", statusMessage)); } }
public async void GetProductCatalogModel_FromInitializedDbTables_LogicProductCatalogModelEqualExpectedProductCatalogModel() { // arrange var productsCatalog = GetProductsCatalog(); var licenses = GetLicenses(); var storages = GetStorages(); var recipes = GetRecipes(); var products = GetProducts(); var recipeProductsChanges = GetRecipeProductsChanges(); fixture.db.ProductCatalog.AddRange(productsCatalog); fixture.db.License.AddRange(licenses); fixture.db.Storage.AddRange(storages); fixture.db.Product.AddRange(products); fixture.db.Recipe.AddRange(recipes); fixture.db.RecipeProductChanges.AddRange(recipeProductsChanges); await fixture.db.SaveChangesAsync(); var expected = new ProductCatalogModel { ProductId = 44440, CAS = 4040404, Name = "Testin", LicenseRequired = true, Licenses = new List <(License license, bool isValid)>(), Storages = new List <ValueTuple <string, int> >(), Recipes = new List <ValueTuple <string, int> >() }; foreach (var license in licenses) { expected.Licenses.Add((license, true)); } foreach (var storage in storages) { expected.Storages.Add(new ValueTuple <string, int> { Item1 = storage.Name, Item2 = storage.Id }); } foreach (var recipe in recipes) { if (recipe.Content.Length >= 45) { expected.Recipes.Add(new ValueTuple <string, int> { Item2 = recipe.Id, Item1 = recipe.Content.Substring(0, 45) + "..." }); } } // act var actual = await logic.GetSingleDataModelAsync(expected.ProductId); // assert Assert.Equal(actual.ProductId, expected.ProductId); Assert.Equal(actual.CAS, expected.CAS); Assert.Equal(actual.Name, expected.Name); Assert.Equal(actual.LicenseRequired, expected.LicenseRequired); foreach (var expectedStorage in expected.Storages) { Assert.Contains(actual.Storages, actualStorage => expectedStorage.Item2 == actualStorage.Item2 && expectedStorage.Item1 == actualStorage.Item1); } foreach (var expectedRecipe in expected.Recipes) { Assert.Contains(actual.Recipes, actualRecipe => expectedRecipe.Item2 == actualRecipe.Item2 && expectedRecipe.Item1 == actualRecipe.Item1); } }