public void OnComponentAdded_ShouldAddComponentPropertiesEditorViewModelToComponents()
        {
            // Arrange
            var entity      = new Entity();
            var entityModel = new EntityModel(entity);
            var entityPropertiesEditorViewModel = new EntityPropertiesEditorViewModel(entityModel, _componentPropertiesEditorViewModelFactory);

            var componentPropertiesEditorViewModel = new TestComponentPropertiesEditorViewModel();

            _componentPropertiesEditorViewModelFactory.Create(Arg.Any <Transform3DComponentModel>()).Returns(componentPropertiesEditorViewModel);

            // Act
            entityPropertiesEditorViewModel.AddTransform3DComponentCommand.Execute(null);

            // Assert
            Assert.That(entityPropertiesEditorViewModel.Components, Has.Count.EqualTo(1));
            Assert.That(entityPropertiesEditorViewModel.Components.Single(), Is.EqualTo(componentPropertiesEditorViewModel));
        }
        public void Constructor_ShouldCreateEntityPropertiesViewModelWithComponents()
        {
            // Arrange
            var entity = new Entity();

            entity.AddComponent(new Transform3DComponent());
            var entityModel = new EntityModel(entity);

            var componentPropertiesEditorViewModel = new TestComponentPropertiesEditorViewModel();

            _componentPropertiesEditorViewModelFactory.Create(Arg.Any <Transform3DComponentModel>()).Returns(componentPropertiesEditorViewModel);

            // Act
            var entityPropertiesEditorViewModel = new EntityPropertiesEditorViewModel(entityModel, _componentPropertiesEditorViewModelFactory);

            // Assert
            Assert.That(entityPropertiesEditorViewModel.Components, Has.Count.EqualTo(1));
            Assert.That(entityPropertiesEditorViewModel.Components.Single(), Is.EqualTo(componentPropertiesEditorViewModel));
        }