|
11 | 11 | using System.Linq; |
12 | 12 | using System; |
13 | 13 | using System.Security.Cryptography.X509Certificates; |
| 14 | +using System.Collections.Generic; |
| 15 | +using BleakwindBuffet.Data.Entrees; |
| 16 | +using BleakwindBuffet.Data.Sides; |
14 | 17 |
|
15 | 18 | namespace BleakwindBuffet.DataTests.UnitTests |
16 | 19 | { |
@@ -173,5 +176,177 @@ public void MenuContainsAllOrderItems() |
173 | 176 | item => Assert.Equal("Large Warrior Water", item.ToString()) |
174 | 177 | ); |
175 | 178 | } |
| 179 | + |
| 180 | + [Fact] |
| 181 | + public void MenuSearchReturnsCorrectItems() |
| 182 | + { |
| 183 | + |
| 184 | + var menu = Menu.Search("Fried Miraak"); |
| 185 | + Assert.Collection(menu, |
| 186 | + item => Assert.Equal("Small Fried Miraak", item.ToString()), |
| 187 | + item => Assert.Equal("Medium Fried Miraak", item.ToString()), |
| 188 | + item => Assert.Equal("Large Fried Miraak", item.ToString())); |
| 189 | + menu = Menu.Search(null); |
| 190 | + Assert.Collection(menu, |
| 191 | + item => Assert.Equal("Briarheart Burger", item.ToString()), |
| 192 | + item => Assert.Equal("Double Draugr", item.ToString()), |
| 193 | + item => Assert.Equal("Garden Orc Omelette", item.ToString()), |
| 194 | + item => Assert.Equal("Philly Poacher", item.ToString()), |
| 195 | + item => Assert.Equal("Smokehouse Skeleton", item.ToString()), |
| 196 | + item => Assert.Equal("Thalmor Triple", item.ToString()), |
| 197 | + item => Assert.Equal("Thugs T-Bone", item.ToString()), |
| 198 | + item => Assert.Equal("Small Dragonborn Waffle Fries", item.ToString()), |
| 199 | + item => Assert.Equal("Medium Dragonborn Waffle Fries", item.ToString()), |
| 200 | + item => Assert.Equal("Large Dragonborn Waffle Fries", item.ToString()), |
| 201 | + item => Assert.Equal("Small Fried Miraak", item.ToString()), |
| 202 | + item => Assert.Equal("Medium Fried Miraak", item.ToString()), |
| 203 | + item => Assert.Equal("Large Fried Miraak", item.ToString()), |
| 204 | + item => Assert.Equal("Small Mad Otar Grits", item.ToString()), |
| 205 | + item => Assert.Equal("Medium Mad Otar Grits", item.ToString()), |
| 206 | + item => Assert.Equal("Large Mad Otar Grits", item.ToString()), |
| 207 | + item => Assert.Equal("Small Vokun Salad", item.ToString()), |
| 208 | + item => Assert.Equal("Medium Vokun Salad", item.ToString()), |
| 209 | + item => Assert.Equal("Large Vokun Salad", item.ToString()), |
| 210 | + item => Assert.Equal("Small Aretino Apple Juice", item.ToString()), |
| 211 | + item => Assert.Equal("Medium Aretino Apple Juice", item.ToString()), |
| 212 | + item => Assert.Equal("Large Aretino Apple Juice", item.ToString()), |
| 213 | + item => Assert.Equal("Small Candlehearth Coffee", item.ToString()), |
| 214 | + item => Assert.Equal("Medium Candlehearth Coffee", item.ToString()), |
| 215 | + item => Assert.Equal("Large Candlehearth Coffee", item.ToString()), |
| 216 | + item => Assert.Equal("Small Markarth Milk", item.ToString()), |
| 217 | + item => Assert.Equal("Medium Markarth Milk", item.ToString()), |
| 218 | + item => Assert.Equal("Large Markarth Milk", item.ToString()), |
| 219 | + item => Assert.Equal("Small Blackberry Sailor Soda", item.ToString()), |
| 220 | + item => Assert.Equal("Medium Blackberry Sailor Soda", item.ToString()), |
| 221 | + item => Assert.Equal("Large Blackberry Sailor Soda", item.ToString()), |
| 222 | + item => Assert.Equal("Small Cherry Sailor Soda", item.ToString()), |
| 223 | + item => Assert.Equal("Medium Cherry Sailor Soda", item.ToString()), |
| 224 | + item => Assert.Equal("Large Cherry Sailor Soda", item.ToString()), |
| 225 | + item => Assert.Equal("Small Grapefruit Sailor Soda", item.ToString()), |
| 226 | + item => Assert.Equal("Medium Grapefruit Sailor Soda", item.ToString()), |
| 227 | + item => Assert.Equal("Large Grapefruit Sailor Soda", item.ToString()), |
| 228 | + item => Assert.Equal("Small Lemon Sailor Soda", item.ToString()), |
| 229 | + item => Assert.Equal("Medium Lemon Sailor Soda", item.ToString()), |
| 230 | + item => Assert.Equal("Large Lemon Sailor Soda", item.ToString()), |
| 231 | + item => Assert.Equal("Small Peach Sailor Soda", item.ToString()), |
| 232 | + item => Assert.Equal("Medium Peach Sailor Soda", item.ToString()), |
| 233 | + item => Assert.Equal("Large Peach Sailor Soda", item.ToString()), |
| 234 | + item => Assert.Equal("Small Watermelon Sailor Soda", item.ToString()), |
| 235 | + item => Assert.Equal("Medium Watermelon Sailor Soda", item.ToString()), |
| 236 | + item => Assert.Equal("Large Watermelon Sailor Soda", item.ToString()), |
| 237 | + item => Assert.Equal("Small Warrior Water", item.ToString()), |
| 238 | + item => Assert.Equal("Medium Warrior Water", item.ToString()), |
| 239 | + item => Assert.Equal("Large Warrior Water", item.ToString()) |
| 240 | + ); |
| 241 | + menu = Menu.Search("small"); |
| 242 | + Assert.Collection(menu, |
| 243 | + item => Assert.Equal("Small Dragonborn Waffle Fries", item.ToString()), |
| 244 | + item => Assert.Equal("Small Fried Miraak", item.ToString()), |
| 245 | + item => Assert.Equal("Small Mad Otar Grits", item.ToString()), |
| 246 | + item => Assert.Equal("Small Vokun Salad", item.ToString()), |
| 247 | + item => Assert.Equal("Small Aretino Apple Juice", item.ToString()), |
| 248 | + item => Assert.Equal("Small Candlehearth Coffee", item.ToString()), |
| 249 | + item => Assert.Equal("Small Markarth Milk", item.ToString()), |
| 250 | + item => Assert.Equal("Small Blackberry Sailor Soda", item.ToString()), |
| 251 | + item => Assert.Equal("Small Cherry Sailor Soda", item.ToString()), |
| 252 | + item => Assert.Equal("Small Grapefruit Sailor Soda", item.ToString()), |
| 253 | + item => Assert.Equal("Small Lemon Sailor Soda", item.ToString()), |
| 254 | + item => Assert.Equal("Small Peach Sailor Soda", item.ToString()), |
| 255 | + item => Assert.Equal("Small Watermelon Sailor Soda", item.ToString()), |
| 256 | + item => Assert.Equal("Small Warrior Water", item.ToString()) |
| 257 | + ); |
| 258 | + menu = Menu.Search("Some random input"); |
| 259 | + Assert.Empty(menu); |
| 260 | + } |
| 261 | + |
| 262 | + [Fact] |
| 263 | + public void FilterByCaloriesFiltersCorrectly() |
| 264 | + { |
| 265 | + var fullMenu = new List<IOrderItem>(); |
| 266 | + fullMenu.Add(new AretinoAppleJuice() { Size = Size.Medium }); |
| 267 | + fullMenu.Add(new BriarheartBurger()); |
| 268 | + fullMenu.Add(new FriedMiraak() { Size = Size.Large }); |
| 269 | + var menu = Menu.FilterByCalories(fullMenu, null, null); |
| 270 | + Assert.Collection(menu, |
| 271 | + item => Assert.Equal("Medium Aretino Apple Juice", item.ToString()), |
| 272 | + item => Assert.Equal("Briarheart Burger", item.ToString()), |
| 273 | + item => Assert.Equal("Large Fried Miraak", item.ToString()) |
| 274 | + ); |
| 275 | + menu = Menu.FilterByCalories(fullMenu, null, 742); |
| 276 | + Assert.Collection(menu, |
| 277 | + item => Assert.Equal("Medium Aretino Apple Juice", item.ToString()), |
| 278 | + item => Assert.Equal("Large Fried Miraak", item.ToString()) |
| 279 | + ); |
| 280 | + menu = Menu.FilterByCalories(fullMenu, 307, null); |
| 281 | + Assert.Collection(menu, |
| 282 | + item => Assert.Equal("Briarheart Burger", item.ToString()) |
| 283 | + ); |
| 284 | + menu = Menu.FilterByCalories(fullMenu, 89, 742); |
| 285 | + Assert.Collection(menu, |
| 286 | + item => Assert.Equal("Large Fried Miraak", item.ToString()) |
| 287 | + ); |
| 288 | + } |
| 289 | + |
| 290 | + [Fact] |
| 291 | + public void FilterByPriceFiltersCorrectly() |
| 292 | + { |
| 293 | + var fullMenu = new List<IOrderItem>(); |
| 294 | + fullMenu.Add(new AretinoAppleJuice() { Size = Size.Medium }); |
| 295 | + fullMenu.Add(new BriarheartBurger()); |
| 296 | + fullMenu.Add(new FriedMiraak() { Size = Size.Large }); |
| 297 | + var menu = Menu.FilterByPrice(fullMenu, null, null); |
| 298 | + Assert.Collection(menu, |
| 299 | + item => Assert.Equal("Medium Aretino Apple Juice", item.ToString()), |
| 300 | + item => Assert.Equal("Briarheart Burger", item.ToString()), |
| 301 | + item => Assert.Equal("Large Fried Miraak", item.ToString()) |
| 302 | + ); |
| 303 | + menu = Menu.FilterByPrice(fullMenu, null, 6.31); |
| 304 | + Assert.Collection(menu, |
| 305 | + item => Assert.Equal("Medium Aretino Apple Juice", item.ToString()), |
| 306 | + item => Assert.Equal("Large Fried Miraak", item.ToString()) |
| 307 | + ); |
| 308 | + menu = Menu.FilterByPrice(fullMenu, 0.88, null); |
| 309 | + Assert.Collection(menu, |
| 310 | + item => Assert.Equal("Briarheart Burger", item.ToString()), |
| 311 | + item => Assert.Equal("Large Fried Miraak", item.ToString()) |
| 312 | + ); |
| 313 | + menu = Menu.FilterByPrice(fullMenu, 0.88, 6.31); |
| 314 | + Assert.Collection(menu, |
| 315 | + item => Assert.Equal("Large Fried Miraak", item.ToString()) |
| 316 | + ); |
| 317 | + } |
| 318 | + |
| 319 | + [Fact] |
| 320 | + public void FilterByItemTypesFiltersCorrectly() |
| 321 | + { |
| 322 | + var fullMenu = new List<IOrderItem>(); |
| 323 | + fullMenu.Add(new AretinoAppleJuice()); |
| 324 | + fullMenu.Add(new BriarheartBurger()); |
| 325 | + fullMenu.Add(new FriedMiraak()); |
| 326 | + string[] options = { "Entrees", "Sides", "Drinks" }; |
| 327 | + var menu = Menu.FilterByItemTypes(fullMenu, null); |
| 328 | + Assert.Collection(menu, |
| 329 | + item => Assert.Equal("Small Aretino Apple Juice", item.ToString()), |
| 330 | + item => Assert.Equal("Briarheart Burger", item.ToString()), |
| 331 | + item => Assert.Equal("Small Fried Miraak", item.ToString()) |
| 332 | + ); |
| 333 | + menu = Menu.FilterByItemTypes(fullMenu, options); |
| 334 | + Assert.Collection(menu, |
| 335 | + item => Assert.Equal("Small Aretino Apple Juice", item.ToString()), |
| 336 | + item => Assert.Equal("Briarheart Burger", item.ToString()), |
| 337 | + item => Assert.Equal("Small Fried Miraak", item.ToString()) |
| 338 | + ); |
| 339 | + options[0] = null; |
| 340 | + menu = Menu.FilterByItemTypes(fullMenu, options); |
| 341 | + Assert.Collection(menu, |
| 342 | + item => Assert.Equal("Small Aretino Apple Juice", item.ToString()), |
| 343 | + item => Assert.Equal("Small Fried Miraak", item.ToString()) |
| 344 | + ); |
| 345 | + options[2] = null; |
| 346 | + menu = Menu.FilterByItemTypes(fullMenu, options); |
| 347 | + Assert.Collection(menu, |
| 348 | + item => Assert.Equal("Small Fried Miraak", item.ToString()) |
| 349 | + ); |
| 350 | + } |
176 | 351 | } |
177 | 352 | } |
0 commit comments