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); }
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); }