public void AddEllipseRendererComponent_ShouldAddEllipseRendererComponentAndNotifyWithEvent()
        {
            // Arrange
            var entity      = new Entity();
            var entityModel = new EntityModel(entity);

            object?eventSender = null;
            ComponentAddedEventArgs?eventArgs = null;

            entityModel.ComponentAdded += (sender, args) =>
            {
                eventSender = sender;
                eventArgs   = args;
            };

            // Act
            entityModel.AddEllipseRendererComponent();

            // Assert
            Assert.That(entity.Components, Has.Count.EqualTo(1));
            Assert.That(entityModel.Components, Has.Count.EqualTo(1));

            var ellipseRendererComponent      = entity.Components.Single();
            var ellipseRendererComponentModel = entityModel.Components.Single();

            Assert.That(ellipseRendererComponent, Is.TypeOf <EllipseRendererComponent>());
            Assert.That(ellipseRendererComponentModel, Is.TypeOf <EllipseRendererComponentModel>());

            // Assert that created component model is bound to component
            ((EllipseRendererComponentModel)ellipseRendererComponentModel).RadiusX = 123;
            Assert.That(((EllipseRendererComponent)ellipseRendererComponent).RadiusX, Is.EqualTo(123));

            Assert.That(eventSender, Is.EqualTo(entityModel));
            Debug.Assert(eventArgs != null, nameof(eventArgs) + " != null");
            Assert.That(eventArgs.ComponentModel, Is.EqualTo(ellipseRendererComponentModel));
        }