public async Task Imperative_ReturnCorrectAmoutGivenBasket(BasketTest basketTest)
        {
            var basketLineArticles = basketTest.BasketLineArticles;
            var amountTotal        = await BasketOperation.GetAmountTotal(basketLineArticles);

            Assert.Equal(basketTest.ExpectedPrice, amountTotal);
        }
        public async Task OrientedObject_ReturnCorrectAmoutGivenBasket(BasketTest basketTest)
        {
            var basketLineArticles = basketTest.BasketLineArticles;
            var basketOperation    = new Basket.OrientedObject.BasketOperation(new ArticleRepositoryMock());
            var amountTotal        = await basketOperation.GetAmountTotal(basketLineArticles);

            Assert.Equal(basketTest.ExpectedPrice, amountTotal);
        }
        public async Task Declarative_ReturnCorrectAmoutGivenBasket(BasketTest basketTest)
        {
            var basketLineArticles = basketTest.BasketLineArticles;
            var databaseFunc       = BasketCore.Declarative.BasketOperation.RegleMetier(BasketCore.Declarative.BasketOperation
                                                                                        .GetArticleDatabaseMockAsync);
            var basketOperation =
                BasketCore.Declarative.BasketOperation.GetAmountTotal(databaseFunc);

            var amountTotal = await basketOperation(basketLineArticles);

            Assert.Equal(basketTest.ExpectedPrice, amountTotal);
        }
Example #4
0
        public async Task Imperative_ReturnCorrectAmoutGivenBasket(BasketTest basketTest)
        {
            var basketLineArticles = basketTest.BasketLineArticles;
            var amountTotal        = 0D;

            foreach (var basketLineArticle in basketLineArticles)
            {
                var id = basketLineArticle.Id;

                var codeBase          = Assembly.GetExecutingAssembly().CodeBase;
                var uri               = new UriBuilder(codeBase);
                var path              = Uri.UnescapeDataString(uri.Path);
                var assemblyDirectory = Path.GetDirectoryName(path);
                var jsonPath          = Path.Combine(assemblyDirectory, "article-database.json");
                var json              = await File.ReadAllTextAsync(jsonPath);

                var articleDatabases =
                    JsonConvert.DeserializeObject <List <ArticleDatabase> >(json);
                var article = articleDatabases.First(articleDatabase => articleDatabase.Id == id);

                var amount = 0;
                switch (article.Category)
                {
                case "food":
                    amount += article.Price * 100 + article.Price * 12;
                    break;

                case "electronic":
                    amount += article.Price * 100 + article.Price * 20 + 4;
                    break;

                case "desktop":
                    amount += article.Price * 100 + article.Price * 20;
                    break;
                }

                amountTotal += amount * basketLineArticle.Number;
            }
            Assert.Equal(basketTest.ExpectedPrice, amountTotal);
        }