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

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

            // Assert
            Assert.That(entityModel.Components, Has.Count.EqualTo(1));
            Assert.That(entityModel.Components.Single().Name, Is.EqualTo("Rectangle Renderer Component"));
        }
        public void Name_ShouldSetEntityModelName_WhenSet()
        {
            // Arrange
            var entity = new Entity {
                Name = "Old name"
            };
            var entityModel = new EntityModel(entity);
            var entityPropertiesEditorViewModel = new EntityPropertiesEditorViewModel(entityModel, _componentPropertiesEditorViewModelFactory);

            // Act
            entityPropertiesEditorViewModel.Name = "New name";

            // Assert
            Assert.That(entityPropertiesEditorViewModel.Name, Is.EqualTo("New name"));
            Assert.That(entityModel.Name, Is.EqualTo("New name"));
        }
        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));
        }