コード例 #1
0
        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));
            }
        }
コード例 #2
0
ファイル: ProductsCatalogTests.cs プロジェクト: No0zZy/Cursed
        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);
            }
        }