public void WillMarkImageAsSpriteIfUrlIsReferencedInAnotherImage()
            {
                var testable = new TestableSpriteManager();
                var image1   = new BackgroundImageClass("", 0)
                {
                    ImageUrl = "url1"
                };
                var image2 = new BackgroundImageClass("", 0)
                {
                    ImageUrl = "url2"
                };
                var image3 = new BackgroundImageClass("", 0)
                {
                    ImageUrl = "url1", XOffset = new Position()
                    {
                        Offset = -100
                    }
                };

                testable.ClassUnderTest.Add(image1);
                testable.ClassUnderTest.Add(image2);
                testable.ClassUnderTest.Add(image3);

                Assert.True(image1.IsSprite);
                Assert.True(image3.IsSprite);
                Assert.False(image2.IsSprite);
            }
Example #2
0
            public void WillWriteEachImage()
            {
                var testable = new TestableSpriteManager();

                testable.ClassUnderTest.MockSpriteContainer.Setup(x => x.Width).Returns(35);
                testable.ClassUnderTest.MockSpriteContainer.Setup(x => x.Height).Returns(18);
                var images = new List <SpritedImage>
                {
                    new SpritedImage(1, null, TestableSpriteManager.Image15X17),
                    new SpritedImage(1, null, TestableSpriteManager.Image18X18)
                };

                testable.ClassUnderTest.MockSpriteContainer.Setup(x => x.GetEnumerator()).Returns(images.GetEnumerator());
                testable.ClassUnderTest.MockSpriteContainer.Setup(x => x.Size).Returns(1);
                byte[] bytes = null;
                testable.Mock <IPngOptimizer>().Setup(x => x.OptimizePng(It.IsAny <byte[]>(), It.IsAny <int>(), false)).Callback
                <byte[], int, bool>((a, b, c) => bytes = a).Returns(() => bytes);;

                testable.ClassUnderTest.Flush();

                var bitMap = new Bitmap(new MemoryStream(bytes));

                Assert.Equal(TestableSpriteManager.Image15X17.GraphicsImage(), bitMap.Clone(new Rectangle(0, 0, 15, 17), TestableSpriteManager.Image15X17.PixelFormat), new BitmapPixelComparer(true));
                Assert.Equal(TestableSpriteManager.Image18X18.GraphicsImage(), bitMap.Clone(new Rectangle(16, 0, 18, 18), TestableSpriteManager.Image18X18.PixelFormat), new BitmapPixelComparer(true));
            }
Example #3
0
            public void WillNotCreateImageWriterIfContainerIsEmpty()
            {
                var testable = new TestableSpriteManager();

                testable.ClassUnderTest.MockSpriteContainer.Setup(x => x.Size).Returns(0);

                testable.ClassUnderTest.Flush();

                testable.Mock <IStore>().Verify(x => x.Save(It.IsAny <byte[]>(), It.IsAny <string>(), It.IsAny <string>()), Times.Never());
            }
Example #4
0
            public void WillResetSpriteContainerAfterFlush()
            {
                var testable = new TestableSpriteManager();

                testable.ClassUnderTest.MockSpriteContainer.Setup(x => x.Width).Returns(20);

                testable.ClassUnderTest.Flush();

                Assert.Equal(0, testable.ClassUnderTest.SpriteContainer.Width);
            }
Example #5
0
            public void WillThrowInvalidOperationExceptionIfCssKeyIsEmpty()
            {
                var testable = new TestableSpriteManager();

                testable.ClassUnderTest.MockSpriteContainer.Setup(x => x.Size).Returns(1);
                testable.ClassUnderTest.SpritedCssKey = Guid.Empty;

                var ex = Assert.Throws <InvalidOperationException>(() => testable.ClassUnderTest.Flush());

                Assert.NotNull(ex);
            }
Example #6
0
            public void WillAddImageToSpriteContainer()
            {
                var testable = new TestableSpriteManager();
                var image    = new BackgroundImageClass("", "http://server/content/style.css")
                {
                    ImageUrl = ""
                };

                testable.ClassUnderTest.Add(image);

                testable.ClassUnderTest.MockSpriteContainer.Verify(x => x.AddImage(image), Times.Exactly(1));
            }
Example #7
0
            public void WillSwallowInvalidOperationException()
            {
                var testable = new TestableSpriteManager();
                var image    = new BackgroundImageClass("", "http://server/content/style.css")
                {
                    ImageUrl = ""
                };

                testable.ClassUnderTest.MockSpriteContainer.Setup(x => x.AddImage(image)).Throws(new InvalidOperationException());

                var ex = Record.Exception(() => testable.ClassUnderTest.Add(image));

                Assert.Null(ex);
            }
Example #8
0
            public void WillNotAddImageToSpriteContainerIfTheRegistryFiltersIt()
            {
                var testable = new TestableSpriteManager();
                var image    = new BackgroundImageClass("", "http://server/content/style.css")
                {
                    ImageUrl = "", Width = 110
                };

                Registry.AddFilter(new SpriteFilter(x => x.BackgroundImage.Width > 100));

                testable.ClassUnderTest.Add(image);

                testable.ClassUnderTest.MockSpriteContainer.Verify(x => x.AddImage(image), Times.Never());
            }
            public void WillNotAddImageToSpriteContainerIfImageAlreadySprited()
            {
                var testable = new TestableSpriteManager();
                var image    = new BackgroundImageClass("", 0)
                {
                    ImageUrl = ""
                };

                testable.ClassUnderTest.Add(image);

                testable.ClassUnderTest.Add(image);

                testable.ClassUnderTest.MockSpriteContainer.Verify(x => x.AddImage(image), Times.Exactly(1));
            }
Example #10
0
            public void WillFlushWhenColorCountPassesThreshold()
            {
                var testable = new TestableSpriteManager();

                testable.Mock <IRRConfiguration>().Setup(x => x.SpriteColorLimit).Returns(1);
                testable.ClassUnderTest.MockSpriteContainer.Setup(x => x.Colors).Returns(1);

                testable.ClassUnderTest.Add(new BackgroundImageClass("", "http://server/content/style.css")
                {
                    ImageUrl = "imageUrl"
                });

                Assert.NotEqual(testable.ClassUnderTest.MockSpriteContainer.Object, testable.ClassUnderTest.SpriteContainer);
            }
            public void WillFlushWhenSizePassesThreshold()
            {
                var testable = new TestableSpriteManager();

                testable.Mock <IRRConfiguration>().Setup(x => x.SpriteSizeLimit).Returns(1);
                testable.ClassUnderTest.MockSpriteContainer.Setup(x => x.Size).Returns(1);

                testable.ClassUnderTest.Add(new BackgroundImageClass("", 0)
                {
                    ImageUrl = "imageUrl"
                });

                Assert.NotEqual(testable.ClassUnderTest.MockSpriteContainer.Object, testable.ClassUnderTest.SpriteContainer);
            }
Example #12
0
            public void WillSaveSpriteUrlWithApngExtension()
            {
                var testable = new TestableSpriteManager();

                testable.ClassUnderTest.MockSpriteContainer.Setup(x => x.Size).Returns(1);
                var url = string.Empty;

                testable.Mock <IStore>().Setup(x => x.Save(It.IsAny <byte[]>(), It.IsAny <string>(), null)).Callback
                <byte[], string, string>((a, b, c) => url = b);

                testable.ClassUnderTest.Flush();

                Assert.True(url.EndsWith(".png"));
            }
Example #13
0
            public void WillSaveSpriteUrlWithKeyInPath()
            {
                var testable = new TestableSpriteManager();

                testable.Mock <IRRConfiguration>().Setup(x => x.SpriteVirtualPath).Returns("spritedir");
                testable.ClassUnderTest.MockSpriteContainer.Setup(x => x.Size).Returns(1);
                var url = string.Empty;

                testable.Mock <IStore>().Setup(x => x.Save(It.IsAny <byte[]>(), It.IsAny <string>(), null)).Callback
                <byte[], string, string>((a, b, c) => url = b);

                testable.ClassUnderTest.Flush();

                Assert.True(url.Contains("/" + testable.ClassUnderTest.SpritedCssKey.RemoveDashes() + "-"));
            }
            public void WillNotFlushWhenColorCountPassesThresholdAndImageQuantizationIsDisabed()
            {
                var testable = new TestableSpriteManager();

                testable.Mock <IRRConfiguration>().Setup(x => x.SpriteColorLimit).Returns(1);
                testable.Mock <IRRConfiguration>().Setup(x => x.ImageQuantizationDisabled).Returns(true);
                testable.ClassUnderTest.MockSpriteContainer.Setup(x => x.Colors).Returns(1);

                testable.ClassUnderTest.Add(new BackgroundImageClass("", 0)
                {
                    ImageUrl = "imageUrl"
                });

                Assert.Same(testable.ClassUnderTest.MockSpriteContainer.Object, testable.ClassUnderTest.SpriteContainer);
            }
Example #15
0
            public void WillSaveWriterToContainerUrlUsingPngMimeType()
            {
                var testable = new TestableSpriteManager();

                byte[] bytes = null;
                testable.Mock <IPngOptimizer>().Setup(x => x.OptimizePng(It.IsAny <byte[]>(), It.IsAny <int>(), false)).Callback
                <byte[], int, bool>((a, b, c) => bytes = a).Returns(() => bytes);
                testable.ClassUnderTest.MockSpriteContainer.Setup(x => x.Size).Returns(1);

                testable.ClassUnderTest.Flush();

                var bitMap = new Bitmap(new MemoryStream(bytes));

                Assert.Equal(ImageFormat.Png, bitMap.RawFormat);
            }
Example #16
0
            public void WillNotOptimizeImageIfNotInFullTrust()
            {
                var testable = new TestableSpriteManager();

                testable.Mock <IRRConfiguration>().Setup(x => x.IsFullTrust).Returns(false);
                testable.ClassUnderTest.MockSpriteContainer.Setup(x => x.Size).Returns(1);
                var optimizedBytes = new byte[0];

                testable.Mock <IPngOptimizer>().Setup(x => x.OptimizePng(It.IsAny <byte[]>(), It.IsAny <int>(), false)).
                Callback <byte[], int, bool>((a, b, c) => optimizedBytes = a).Returns(() => optimizedBytes);

                testable.ClassUnderTest.Flush();

                Assert.Empty(optimizedBytes);
            }
Example #17
0
            public void WillSaveSpriteUrlInCorrectConfigDirectory()
            {
                var testable = new TestableSpriteManager();

                testable.Mock <IRRConfiguration>().Setup(x => x.SpriteVirtualPath).Returns("spritedir");
                testable.ClassUnderTest.MockSpriteContainer.Setup(x => x.Size).Returns(1);
                var url = string.Empty;

                testable.Mock <IStore>().Setup(x => x.Save(It.IsAny <byte[]>(), It.IsAny <string>(), null)).Callback
                <byte[], string, string>((a, b, c) => url = b);

                testable.ClassUnderTest.Flush();

                Assert.True(url.StartsWith("spritedir/"));
            }
Example #18
0
            public void WillPassConfiguredCompressionLevelToOptimizer(int expectedCompression)
            {
                var testable    = new TestableSpriteManager();
                int compression = 0;

                byte[] bytes = null;
                testable.Mock <IRRConfiguration>().Setup(x => x.ImageOptimizationDisabled).Returns(false);
                testable.Mock <IRRConfiguration>().Setup(x => x.ImageOptimizationCompressionLevel).Returns(expectedCompression);
                testable.ClassUnderTest.MockSpriteContainer.Setup(x => x.Size).Returns(1);
                testable.Mock <IPngOptimizer>().Setup(x => x.OptimizePng(It.IsAny <byte[]>(), It.IsAny <int>(), false)).
                Callback <byte[], int, bool>((a, b, c) => { compression = b;
                                                            bytes       = a; }).Returns(() => bytes);

                testable.ClassUnderTest.Flush();

                Assert.Equal(expectedCompression, compression);
            }
Example #19
0
            public void WillPassOptimizationErrorToErrorHandler()
            {
                var       testable  = new TestableSpriteManager();
                var       exception = new OptimizationException("Appropriately friendly error message");
                Exception error     = null;

                Registry.CaptureErrorAction = (x => error = x);
                testable.Mock <IRRConfiguration>().Setup(x => x.ImageOptimizationDisabled).Returns(false);
                testable.Mock <IRRConfiguration>().Setup(x => x.ImageOptimizationCompressionLevel).Returns(2);
                testable.ClassUnderTest.MockSpriteContainer.Setup(x => x.Size).Returns(1);
                testable.Mock <IPngOptimizer>().Setup(x => x.OptimizePng(It.IsAny <byte[]>(), 2, false)).Throws(exception);

                testable.ClassUnderTest.Flush();

                Assert.Equal(error, exception);
                Assert.Equal(error.Message, "Appropriately friendly error message");
            }
Example #20
0
            public void WillCreateImageWriterWithCorrectDimensions()
            {
                var testable = new TestableSpriteManager();

                testable.ClassUnderTest.MockSpriteContainer.Setup(x => x.Width).Returns(1);
                testable.ClassUnderTest.MockSpriteContainer.Setup(x => x.Height).Returns(1);
                testable.ClassUnderTest.MockSpriteContainer.Setup(x => x.Size).Returns(1);
                byte[] bytes = null;
                testable.Mock <IPngOptimizer>().Setup(x => x.OptimizePng(It.IsAny <byte[]>(), It.IsAny <int>(), false)).Callback
                <byte[], int, bool>((a, b, c) => bytes = a).Returns(() => bytes);

                testable.ClassUnderTest.Flush();

                var bitMap = new Bitmap(new MemoryStream(bytes));

                Assert.Equal(1, bitMap.Width);
                Assert.Equal(1, bitMap.Height);
            }
Example #21
0
            public void WillOptimizeImageIfOptimizationIsEnabled()
            {
                var testable = new TestableSpriteManager();

                byte[] bytes = null;
                testable.Mock <IRRConfiguration>().Setup(x => x.ImageOptimizationDisabled).Returns(false);
                testable.Mock <IRRConfiguration>().Setup(x => x.ImageOptimizationCompressionLevel).Returns(2);
                testable.Mock <IStore>().Setup(x => x.Save(It.IsAny <byte[]>(), It.IsAny <string>(), null)).Callback
                <byte[], string, string>((a, b, c) => bytes = a);
                testable.ClassUnderTest.MockSpriteContainer.Setup(x => x.Size).Returns(1);
                var optimizedBytes = new byte[] { 5, 5, 5, 5, 5 };

                testable.Mock <IPngOptimizer>().Setup(x => x.OptimizePng(It.IsAny <byte[]>(), 2, false)).Returns(optimizedBytes);

                testable.ClassUnderTest.Flush();

                Assert.Equal(optimizedBytes, bytes);
            }
Example #22
0
            public void WillReturnAllImages()
            {
                var testable = new TestableSpriteManager();

                testable.ClassUnderTest.Add(new BackgroundImageClass("class1", "")
                {
                    Height = 1
                });
                testable.ClassUnderTest.Add(new BackgroundImageClass("class2", "")
                {
                    Height = 2
                });

                var results = testable.ClassUnderTest.ToArray();

                Assert.Equal(2, results.Length);
                Assert.True(results.Any(x => x.CssClass.OriginalClassString == "class1"));
                Assert.True(results.Any(x => x.CssClass.OriginalClassString == "class2"));
            }
Example #23
0
            public void WillAddUrlsToSpritesUponFlush()
            {
                var testable = new TestableSpriteManager();

                testable.ClassUnderTest.MockSpriteContainer.Setup(x => x.Size).Returns(1);
                var sprites = new List <SpritedImage> {
                    new SpritedImage(1, null, TestableSpriteManager.Image15X17), new SpritedImage(1, null, TestableSpriteManager.Image18X18)
                };

                testable.ClassUnderTest.MockSpriteContainer.Setup(x => x.GetEnumerator()).Returns(
                    () => sprites.GetEnumerator());
                var url = string.Empty;

                testable.Mock <IStore>().Setup(x => x.Save(It.IsAny <byte[]>(), It.IsAny <string>(), null)).Callback
                <byte[], string, string>((a, b, c) => url = b);

                testable.ClassUnderTest.Flush();

                Assert.Equal(url, sprites[0].Url);
                Assert.Equal(url, sprites[1].Url);
            }
            public void WillCopySpritesToContainerButAddDistinctCssClass()
            {
                var testable = new TestableSpriteManager();
                var image    = new BackgroundImageClass("", 0)
                {
                    ImageUrl = "url", Selector = ".class"
                };

                testable.ClassUnderTest.Add(image);
                var image2 = new BackgroundImageClass("", 0)
                {
                    ImageUrl = "url", Selector = ".class2"
                };

                testable.ClassUnderTest.Add(image2);

                Assert.Equal(2, testable.ClassUnderTest.SpriteList.Count);
                Assert.Equal(image, testable.ClassUnderTest.SpriteList[0].Value.CssClass);
                Assert.Equal(image2, testable.ClassUnderTest.SpriteList[1].Value.CssClass);
                Assert.Equal(testable.ClassUnderTest.SpriteList[0].Key, testable.ClassUnderTest.SpriteList[1].Key);
            }
Example #25
0
            public void WillTreatSameUrlwithDifferentWidthHeightOrXOffsetAsDifferentImagesAndReturnDistinctSprite(int image1Width, int image1Height, int image1XOffset, int image2Width, int image2Height, int image2XOffset)
            {
                var testable = new TestableSpriteManager();

                testable.ClassUnderTest.Add(new BackgroundImageClass("", "http://server/content/style.css")
                {
                    ImageUrl = "image1", Width = image1Width, Height = image1Height, XOffset = new Position()
                    {
                        Offset = image1XOffset, PositionMode = PositionMode.Unit
                    }
                });
                testable.ClassUnderTest.Add(new BackgroundImageClass("", "http://server/content/style.css")
                {
                    ImageUrl = "image1", Width = image2Width, Height = image2Height, XOffset = new Position()
                    {
                        Offset = image2XOffset, PositionMode = PositionMode.Unit
                    }
                });

                testable.ClassUnderTest.MockSpriteContainer.Verify(x => x.AddImage(It.IsAny <BackgroundImageClass>()), Times.Exactly(2));
            }
Example #26
0
            public void WillPassConfiguredQuantiaztionEnablementToOptimizer(bool expectedToBeDisabled)
            {
                var  testable = new TestableSpriteManager();
                bool isQuantizationDisabled = false;

                byte[] bytes = null;
                testable.Mock <IRRConfiguration>().Setup(x => x.ImageOptimizationDisabled).Returns(false);
                testable.Mock <IRRConfiguration>().Setup(x => x.ImageQuantizationDisabled).Returns(expectedToBeDisabled);
                testable.ClassUnderTest.MockSpriteContainer.Setup(x => x.Size).Returns(1);
                testable.Mock <IPngOptimizer>().Setup(
                    x => x.OptimizePng(It.IsAny <byte[]>(), It.IsAny <int>(), It.IsAny <bool>())).Callback
                <byte[], int, bool>((a, b, c) =>
                {
                    isQuantizationDisabled = c;
                    bytes = a;
                }).Returns(() => bytes);

                testable.ClassUnderTest.Flush();

                Assert.Equal(expectedToBeDisabled, isQuantizationDisabled);
            }
Example #27
0
            public void WillIncrementPositionByWidthOfPreviousImage()
            {
                var testable = new TestableSpriteManager();

                testable.ClassUnderTest.MockSpriteContainer.Setup(x => x.Width).Returns(35);
                testable.ClassUnderTest.MockSpriteContainer.Setup(x => x.Height).Returns(18);
                var images = new List <SpritedImage>()
                {
                    new SpritedImage(1, null, TestableSpriteManager.Image15X17),
                    new SpritedImage(1, null, TestableSpriteManager.Image18X18)
                };

                testable.ClassUnderTest.MockSpriteContainer.Setup(x => x.GetEnumerator()).Returns(images.GetEnumerator());
                testable.ClassUnderTest.MockSpriteContainer.Setup(x => x.Size).Returns(1);
                byte[] bytes = null;
                testable.Mock <IPngOptimizer>().Setup(x => x.OptimizePng(It.IsAny <byte[]>(), It.IsAny <int>(), false)).Callback
                <byte[], int, bool>((a, b, c) => bytes = a).Returns(() => bytes);

                testable.ClassUnderTest.Flush();

                Assert.Equal(16, images[1].Position);
            }
Example #28
0
            public void WillSaveSpriteWithAFileNameWithThebyteHashInTheFileName()
            {
                var testable = new TestableSpriteManager();

                testable.ClassUnderTest.MockSpriteContainer.Setup(x => x.Size).Returns(1);
                testable.ClassUnderTest.Flush();
                testable.ClassUnderTest.MockSpriteContainer.Setup(x => x.GetEnumerator()).Returns(new List <SpritedImage>().GetEnumerator());
                testable.ClassUnderTest.SpriteContainer = testable.ClassUnderTest.MockSpriteContainer.Object;
                testable.ClassUnderTest.MockSpriteContainer.Setup(x => x.Size).Returns(1);
                var url = string.Empty;

                byte[] bytes = new byte[] { 1, 2, 3 };
                testable.Mock <IPngOptimizer>().Setup(x => x.OptimizePng(It.IsAny <byte[]>(), It.IsAny <int>(), false)).Returns(bytes);
                testable.Mock <IStore>().Setup(x => x.Save(bytes, It.IsAny <string>(), null)).Callback
                <byte[], string, string>((a, b, c) =>
                {
                    url = b;
                });

                testable.ClassUnderTest.Flush();

                Assert.True(url.EndsWith(string.Format("{0}.png", Hasher.Hash(bytes).RemoveDashes())));
            }
Example #29
0
            public void WillUseUnoptimizedBytesIfOptimizationFails()
            {
                var testable = new TestableSpriteManager();

                byte[] originalBytes  = null;
                byte[] optimizedBytes = null;
                var    images         = new List <SpritedImage>()
                {
                    new SpritedImage(1, null, TestableSpriteManager.Image15X17), new SpritedImage(1, null, TestableSpriteManager.Image18X18)
                };

                testable.ClassUnderTest.MockSpriteContainer.Setup(x => x.GetEnumerator()).Returns(images.GetEnumerator());
                testable.Mock <IRRConfiguration>().Setup(x => x.ImageOptimizationDisabled).Returns(false);
                testable.Mock <IRRConfiguration>().Setup(x => x.ImageOptimizationCompressionLevel).Returns(2);
                testable.Mock <IStore>().Setup(x => x.Save(It.IsAny <byte[]>(), It.IsAny <string>(), null)).Callback
                <byte[], string, string>((a, b, c) => optimizedBytes = a);
                testable.ClassUnderTest.MockSpriteContainer.Setup(x => x.Size).Returns(1);
                testable.Mock <IPngOptimizer>().Setup(x => x.OptimizePng(It.IsAny <byte[]>(), 2, false)).Callback
                <byte[], int, bool>((a, b, c) => originalBytes = a).Throws(new OptimizationException(""));

                testable.ClassUnderTest.Flush();

                Assert.Equal(optimizedBytes, originalBytes);
            }
            public void WillSetPositionToSamePositionOfPreviousDuplicate()
            {
                var testable = new TestableSpriteManager();

                testable.ClassUnderTest.MockSpriteContainer.Setup(x => x.Width).Returns(35);
                testable.ClassUnderTest.MockSpriteContainer.Setup(x => x.Height).Returns(18);
                var metadata  = new SpriteManager.ImageMetadata(new BackgroundImageClass("css1", 1));
                var metadata2 = new SpriteManager.ImageMetadata(new BackgroundImageClass("css2", 2));

                testable.ClassUnderTest.SpriteList.Add(new KeyValuePair <SpriteManager.ImageMetadata, SpritedImage>(metadata, new SpritedImage(1, null, TestableSpriteManager.Image15X17)
                {
                    Metadata = metadata
                }));
                testable.ClassUnderTest.SpriteList.Add(new KeyValuePair <SpriteManager.ImageMetadata, SpritedImage>(metadata2, new SpritedImage(1, null, TestableSpriteManager.Image18X18)
                {
                    Metadata = metadata
                }));
                testable.ClassUnderTest.SpriteList.Add(new KeyValuePair <SpriteManager.ImageMetadata, SpritedImage>(metadata, new SpritedImage(1, null, TestableSpriteManager.Image15X17)
                {
                    Metadata = metadata
                }));
                var images = new List <SpritedImage>()
                {
                    testable.ClassUnderTest.SpriteList[0].Value,
                    testable.ClassUnderTest.SpriteList[1].Value,
                };

                testable.ClassUnderTest.MockSpriteContainer.Setup(x => x.GetEnumerator()).Returns(() => images.GetEnumerator());
                testable.ClassUnderTest.MockSpriteContainer.Setup(x => x.Size).Returns(1);

                testable.ClassUnderTest.Flush();

                Assert.Equal(0, testable.ClassUnderTest.SpriteList[0].Value.Position);
                Assert.Equal(16, testable.ClassUnderTest.SpriteList[1].Value.Position);
                Assert.Equal(0, testable.ClassUnderTest.SpriteList[2].Value.Position);
            }