public void AddCircleColliderComponent_ShouldAddCircleColliderComponentAndNotifyWithEvent()
        {
            // 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.AddCircleColliderComponent();

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

            var circleColliderComponent      = entity.Components.Single();
            var circleColliderComponentModel = entityModel.Components.Single();

            Assert.That(circleColliderComponent, Is.TypeOf <CircleColliderComponent>());
            Assert.That(circleColliderComponentModel, Is.TypeOf <CircleColliderComponentModel>());

            // Assert that created component model is bound to component
            ((CircleColliderComponentModel)circleColliderComponentModel).Radius = 123;
            Assert.That(((CircleColliderComponent)circleColliderComponent).Radius, Is.EqualTo(123));

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