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); }
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); }