public void GetItemsToCleanup_SomeItemsAreSpecified_ReturnItemsAccordingToStrategy()
        {
            var strategy = new LargeImagesRemoveFirstCleanupStrategy();
            var cacheItems = new Dictionary<string, List<CacheImageLoader.CacheItem>>();

            cacheItems["McLaren"] = new List<CacheImageLoader.CacheItem>
                {
                    new CacheImageLoader.CacheItem { Key = "McLaren", ImageSize = "10x10".Pixels(), Size = 10 },
                    new CacheImageLoader.CacheItem { Key = "McLaren", ImageSize = "50x50".Pixels(), Size = 50 },
                    new CacheImageLoader.CacheItem { Key = "McLaren", ImageSize = "100x100".Pixels(), Size = 100 },
                };

            cacheItems["MU"] = new List<CacheImageLoader.CacheItem> {
                    new CacheImageLoader.CacheItem { Key = "MU", ImageSize = "10x10".Pixels(), Size = 10 },
                    new CacheImageLoader.CacheItem { Key = "MU", ImageSize = "50x50".Pixels(), Size = 50 },
                };

            cacheItems["Rooney"] = new List<CacheImageLoader.CacheItem> {
                    new CacheImageLoader.CacheItem { Key = "Rooney", ImageSize = "70x70".Pixels(), Size = 70 },
                };

            cacheItems["Magnussen"] = new List<CacheImageLoader.CacheItem> {
                    new CacheImageLoader.CacheItem { Key = "Magnussen", ImageSize = "20x20".Pixels(), Size = 20 },
                    new CacheImageLoader.CacheItem { Key = "Magnussen", ImageSize = "80x80".Pixels(), Size = 80 }
                };

            var expectedItems = new[] { cacheItems["McLaren"][1], cacheItems["McLaren"][2], cacheItems["MU"][1], cacheItems["Magnussen"][1] };
            var itemsToDelete = strategy.GetItemsToCleanup(cacheItems, i => i.Size, 280);

            itemsToDelete.CheckContainsSameItemsAs(expectedItems);
        }
        public void GetItemsToCleanup_SomeItemsAreSpecified_ReturnItemsAccordingToStrategy()
        {
            var strategy   = new LargeImagesRemoveFirstCleanupStrategy();
            var cacheItems = new Dictionary <string, List <CacheImageLoader.CacheItem> >();

            cacheItems["McLaren"] = new List <CacheImageLoader.CacheItem>
            {
                new CacheImageLoader.CacheItem {
                    Key = "McLaren", ImageSize = "10x10".Pixels(), Size = 10
                },
                new CacheImageLoader.CacheItem {
                    Key = "McLaren", ImageSize = "50x50".Pixels(), Size = 50
                },
                new CacheImageLoader.CacheItem {
                    Key = "McLaren", ImageSize = "100x100".Pixels(), Size = 100
                },
            };

            cacheItems["MU"] = new List <CacheImageLoader.CacheItem> {
                new CacheImageLoader.CacheItem {
                    Key = "MU", ImageSize = "10x10".Pixels(), Size = 10
                },
                new CacheImageLoader.CacheItem {
                    Key = "MU", ImageSize = "50x50".Pixels(), Size = 50
                },
            };

            cacheItems["Rooney"] = new List <CacheImageLoader.CacheItem> {
                new CacheImageLoader.CacheItem {
                    Key = "Rooney", ImageSize = "70x70".Pixels(), Size = 70
                },
            };

            cacheItems["Magnussen"] = new List <CacheImageLoader.CacheItem> {
                new CacheImageLoader.CacheItem {
                    Key = "Magnussen", ImageSize = "20x20".Pixels(), Size = 20
                },
                new CacheImageLoader.CacheItem {
                    Key = "Magnussen", ImageSize = "80x80".Pixels(), Size = 80
                }
            };

            var expectedItems = new[] { cacheItems["McLaren"][1], cacheItems["McLaren"][2], cacheItems["MU"][1], cacheItems["Magnussen"][1] };
            var itemsToDelete = strategy.GetItemsToCleanup(cacheItems, i => i.Size, 280);

            itemsToDelete.CheckContainsSameItemsAs(expectedItems);
        }