Exemplo n.º 1
0
        public void TestSpriteCompositeDrawWithChangesButIdentityTransform()
        {
            var source1 = new RectangleInt(10, 10, 20, 20);
            var source2 = new RectangleInt(40, 40, 30, 30);
            var origin = new Vector(4, 7);

            var expected1 = CreateDrawImageParams(source1, origin,
                destination: new Rectangle(12, 8, 10, 10), rotation: 4.2f, color: Color.Red);

            var expected2 = CreateDrawImageParams(source2, origin,
                destination: new Rectangle(12, 8, 15, 15), rotation: 4.2f, color: Color.Red);

            // ARRANGE
            var sprite1 = CreateSprite(source1, origin);
            var sprite2 = CreateSprite(source2, origin);
            var spriteComposite = new SpriteComposite("tata", new[] { sprite1, sprite2 })
            {
                Position = new Vector(12, 8),
                Rotation = 4.2f,
                Scale = 0.5f,
                Color = Color.Red
            };

            DrawImageParams actual1 = null;
            DrawImageParams actual2 = null;
            var callCount = 0;
            var drawContext = CreateDrawContextMock(p =>
            {
                callCount++;
                if (callCount == 1) actual1 = p;
                if (callCount == 2) actual2 = p;
            });

            // ACT
            spriteComposite.Draw(drawContext.Object, SpriteTransform.SpriteIdentity);

            // ASSERT
            drawContext.VerifyAll();
            Assert.AreEqual(2, callCount);
            AssertDrawImageParamsAreEquals(expected1, actual1);
            AssertDrawImageParamsAreEquals(expected2, actual2);
        }
Exemplo n.º 2
0
        public void TestSpriteCompositeDrawWithDefaultValuesAndIdentityTransform()
        {
            var source1 = new RectangleInt(10, 10, 20, 20);
            var source2 = new RectangleInt(40, 40, 30, 30);
            var origin = new Vector(4, 7);

            var expected1 = CreateDrawImageParams(source1, origin, destination: new Rectangle(0, 0, 20, 20));
            var expected2 = CreateDrawImageParams(source2, origin, destination: new Rectangle(0, 0, 30, 30));

            // ARRANGE
            var sprite1 = CreateSprite(source1, origin);
            var sprite2 = CreateSprite(source2, origin);
            var spriteComposite = new SpriteComposite("tata", new[] { sprite1, sprite2 });

            DrawImageParams actual1 = null;
            DrawImageParams actual2 = null;
            var callCount = 0;
            var drawContext = CreateDrawContextMock(p =>
            {
                callCount++;
                if (callCount == 1) actual1 = p;
                if (callCount == 2) actual2 = p;
            });

            // ACT
            spriteComposite.Draw(drawContext.Object, SpriteTransform.SpriteIdentity);

            // ASSERT
            drawContext.VerifyAll();
            Assert.AreEqual(2, callCount);
            AssertDrawImageParamsAreEquals(expected1, actual1);
            AssertDrawImageParamsAreEquals(expected2, actual2);
        }