From 59667d4a4a5e540e58ad769cdf71c3a36add9f24 Mon Sep 17 00:00:00 2001 From: Rod DeWit Date: Tue, 27 Sep 2016 14:26:20 -0500 Subject: [PATCH] Solution for unit tests --- UnitTestProject/LinqUnitTests.cs | 107 +++++++++++++++++++++++++------ 1 file changed, 89 insertions(+), 18 deletions(-) diff --git a/UnitTestProject/LinqUnitTests.cs b/UnitTestProject/LinqUnitTests.cs index decf5bd..1263606 100644 --- a/UnitTestProject/LinqUnitTests.cs +++ b/UnitTestProject/LinqUnitTests.cs @@ -66,7 +66,9 @@ public void Test_WhatIsTheTotalNumberOfTransactions() [Test] public void Test_WhatIsTheTotalQuantityPurchased() { - var result = ""; // TODO + var result = transactions + .Select(t => t.Quantity) + .Sum(); Assert.AreEqual(3001, result); } @@ -74,7 +76,10 @@ public void Test_WhatIsTheTotalQuantityPurchased() [Test] public void Test_WhatIsTheTotalQuantityPurchasedIn2016() { - var result = ""; // TODO + var result = transactions + .Where(t => t.Date.Year == 2016) + .Select(t => t.Quantity) + .Sum(); Assert.AreEqual(1160, result); } @@ -82,15 +87,20 @@ public void Test_WhatIsTheTotalQuantityPurchasedIn2016() [Test] public void Test_WhatIsTheTotalQuantityPurchasedInThePast7Days() { - var result = ""; // TODO + var result = transactions + .Where(t => t.Date >= DateTime.Now.AddDays(-7)) + .Select(t => t.Quantity) + .Sum(); - Assert.AreEqual(32, result); + Assert.AreEqual(0, result); } [Test] public void Test_HowManyTransactionsBoughtMoreThan1Quantity() { - var result = ""; // TODO + var result = transactions + .Where(t => t.Quantity > 1) + .Count(); Assert.AreEqual(1001, result); } @@ -98,7 +108,9 @@ public void Test_HowManyTransactionsBoughtMoreThan1Quantity() [Test] public void Test_HowManyTransactionsOccuredOnSundays() { - var result = ""; // TODO + var result = transactions + .Where(t => t.Date.DayOfWeek == DayOfWeek.Sunday) + .Count(); Assert.AreEqual(267, result); } @@ -106,7 +118,9 @@ public void Test_HowManyTransactionsOccuredOnSundays() [Test] public void Test_WhatIsTheAverageQuantityPurchased() { - var result = 0; // TODO + var result = transactions + .Select(t => t.Quantity) + .Average(); Assert.AreEqual(1.5005, result, 0.0001); } @@ -114,7 +128,10 @@ public void Test_WhatIsTheAverageQuantityPurchased() [Test] public void Test_HowManyBagsOfChipsHaveBeenBought() { - var result = ""; // TODO + var result = transactions + .Where(t => t.ProductName.Equals("Chips")) + .Select(t => t.Quantity) + .Sum(); Assert.AreEqual(390, result); } @@ -122,7 +139,10 @@ public void Test_HowManyBagsOfChipsHaveBeenBought() [Test] public void Test_HowManyBagsOfChipsHasJasonBought() { - var result = ""; // TODO + var result = transactions + .Where(t => t.ProductName.Equals("Chips") && t.UserName.Equals("Jason")) + .Select(t => t.Quantity) + .Sum(); Assert.AreEqual(44, result); } @@ -130,15 +150,22 @@ public void Test_HowManyBagsOfChipsHasJasonBought() [Test] public void Test_HowManyBagsOfChipsDidJasonBuyIn2015() { - var result = ""; // TODO - + var result = transactions + .Where(t => t.ProductName.Equals("Chips") && t.UserName.Equals("Jason") && t.Date.Year == 2015) + .Select(t => t.Quantity) + .Sum(); + Assert.AreEqual(33, result); } [Test] public void Test_HowManyBagsOfChipsDidJasonBuyInMay2016() { - var result = ""; // TODO + var result = transactions + .Where(t => t.ProductName.Equals("Chips") && t.UserName.Equals("Jason") && t.Date.Year == 2016 + && t.Date.Month == 5) + .Select(t => t.Quantity) + .Sum(); Assert.AreEqual(2, result); } @@ -146,7 +173,16 @@ public void Test_HowManyBagsOfChipsDidJasonBuyInMay2016() [Test] public void Test_WhatProductSellsTheMostBetween12And1PM() { - var result = ""; // TODO + var result = transactions + .Where(t => t.Date.Hour >= 12 && t.Date.Hour <= 13) + .GroupBy(t => t.ProductName) + .Select(g => new + { + Product = g.Key, + Count = g.Sum(p => p.Quantity) + }) + .OrderBy(t => t.Count) + .Last().Product; Assert.AreEqual("Candy", result); } @@ -154,7 +190,15 @@ public void Test_WhatProductSellsTheMostBetween12And1PM() [Test] public void Test_WhatProductSellsTheLeast() { - var result = ""; // TODO + var result = transactions + .GroupBy(t => t.ProductName) + .Select(g => new + { + Product = g.Key, + Count = g.Sum(p => p.Quantity) + }) + .OrderBy(t => t.Count) + .First().Product; Assert.AreEqual("Cookies", result); } @@ -162,7 +206,16 @@ public void Test_WhatProductSellsTheLeast() [Test] public void Test_WhoBoughtTheMostCandy() { - var result = ""; // TODO + var result = transactions + .Where(t => t.ProductName.Equals("Candy")) + .GroupBy(t => t.UserName) + .Select(g => new + { + User = g.Key, + Count = g.Sum(p => p.Quantity) + }) + .OrderBy(t => t.Count) + .Last().User; Assert.AreEqual("David", result); } @@ -170,7 +223,8 @@ public void Test_WhoBoughtTheMostCandy() [Test] public void Test_WhatIsTheTotalDollarValueOfAllTransactions() { - var result = 0; // TODO + var result = transactions + .Sum(t => t.Quantity * products.Where(p => p.Name.Equals(t.ProductName)).Select(p => p.Price).FirstOrDefault()); Assert.AreEqual(3168.45, result, 0.001); } @@ -178,7 +232,15 @@ public void Test_WhatIsTheTotalDollarValueOfAllTransactions() [Test] public void Test_WhoSpentTheMostMoney() { - var result = ""; // TODO + var result = transactions + .GroupBy(t => t.UserName) + .Select(g => new + { + g.Key, + TotalValue = g.Sum(p => p.Quantity * products.Where(pr => pr.Name.Equals(g.Key)).Select(pr => pr.Price).FirstOrDefault()) + }) + .OrderBy(g => g.TotalValue) + .FirstOrDefault().Key; Assert.AreEqual("Rod", result); } @@ -186,7 +248,16 @@ public void Test_WhoSpentTheMostMoney() [Test] public void Test_WhatIsThePasswordOfThePersonWhoSpentTheMostMoney() { - var result = ""; // TODO + var result = users.Where(u => u.Name.Equals(transactions + .GroupBy(t => t.UserName) + .Select(g => new + { + g.Key, + TotalValue = g.Sum(p => p.Quantity * products.Where(pr => pr.Name.Equals(g.Key)).Select(pr => pr.Price).FirstOrDefault()) + }) + .OrderBy(g => g.TotalValue) + .FirstOrDefault().Key)).First().Password; + Assert.AreEqual("optx", result); }