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