コード例 #1
0
        public void RenderScene_ShouldRenderEntityTransformedWithParentTransform_WhenEntityHasParentWithTransform2DComponent()
        {
            // Arrange
            var renderingSystem       = GetRenderingSystem();
            var renderingSceneBuilder = new RenderingSceneBuilder();

            renderingSceneBuilder.AddCamera();
            var(parentEntity, childEntity) = renderingSceneBuilder.AddParentEllipseWithChildEllipse();
            var scene = renderingSceneBuilder.Build();

            var parentExpectedTransform = parentEntity.Get2DTransformationMatrix();
            var childExpectedTransform  = parentExpectedTransform * childEntity.Get2DTransformationMatrix();


            // Act
            renderingSystem.RenderScene(scene);

            // Assert
            var parentEllipseRenderer = parentEntity.GetComponent <EllipseRendererComponent>();

            _renderer2D.Received(1).RenderEllipse(new Ellipse(parentEllipseRenderer.RadiusX, parentEllipseRenderer.RadiusY), parentEllipseRenderer.Color,
                                                  parentEllipseRenderer.FillInterior, parentExpectedTransform);

            var childEllipseRenderer = childEntity.GetComponent <EllipseRendererComponent>();

            _renderer2D.Received(1).RenderEllipse(new Ellipse(childEllipseRenderer.RadiusX, childEllipseRenderer.RadiusY), childEllipseRenderer.Color,
                                                  childEllipseRenderer.FillInterior, childExpectedTransform);
        }