public void Triggering_The_CreateTable_Event_Creates_A_Table_With_One_To_One_Mapping_To_The_Entity() { IMainPanel mainPanel = MockRepository.GenerateStub <IMainPanel>(); IEntityForm form = MockRepository.GenerateMock <IEntityForm>(); Entity entity = new EntityImpl("Entity1"); entity.AddProperty(new PropertyImpl("Property1") { Type = "System.Int32" }); EntitySet entitySet = new EntitySetImpl(); entitySet.AddEntity(entity); IDatabase database = new Database("DB1"); new MappingSetImpl(database, entitySet); var presenter = new EntityPresenter(mainPanel, form); presenter.AttachToModel(entity); form.Raise(f => f.CreateNewTableFromEntity += null, form, new EventArgs()); Assert.That(database.Tables.Count, Is.EqualTo(1)); ITable table = database.Tables[0]; Assert.That(table.Name, Is.EqualTo("Entity1s")); Assert.That(table.Columns.Count, Is.EqualTo(1)); Assert.That(table.Columns[0].Name, Is.EqualTo("Property1")); }
public void SetUp() { mainPanel = MockRepository.GenerateStub <IMainPanel>(); form = MockRepository.GenerateMock <IEntityForm>(); ms = MockRepository.GenerateStub <MappingSet>(); Property property = new PropertyImpl("Prop1"); EntityKey key = new EntityKeyImpl(); entity = new EntityImpl("Entity1") { Key = key }; entity.AddProperty(property); key.AddProperty(property); mapping = new MappingImpl(); form.Stub(f => f.Mappings).Return(new List <Mapping> { mapping }); EntitySet es = new EntitySetImpl(); es.AddEntity(entity); ms.EntitySet = es; es.MappingSet = ms; ms.Stub(m => m.GetMappingsContaining(entity)).Return(new List <Mapping>()); var presenter = new EntityPresenter(mainPanel, form); presenter.AttachToModel(entity); }
public void Triggering_The_AddProperty_Event_Adds_A_New_Property_To_The_Entity() { IMainPanel mainPanel = MockRepository.GenerateStub <IMainPanel>(); IEntityForm form = MockRepository.GenerateMock <IEntityForm>(); Entity entity = new EntityImpl("Entity1") { Key = new EntityKeyImpl() }; entity.AddProperty(new PropertyImpl("Prop1")); form.Expect(f => f.SetProperties(Arg <IEnumerable <Property> > .List.ContainsAll(entity.ConcreteProperties))); var presenter = new EntityPresenter(mainPanel, form); presenter.AttachToModel(entity); form.Raise(f => f.AddNewProperty += null, form, new EventArgs()); Assert.That(entity.Properties.Count(), Is.EqualTo(2)); form.AssertWasCalled(f => f.Mappings = entity.Mappings(), c => c.Repeat.Twice()); form.AssertWasCalled(f => f.SetSelectedPropertyName(entity.Properties.ElementAt(1))); form.VerifyAllExpectations(); }
public void The_Presenter_Fills_In_The_Form() { IMainPanel mainPanel = MockRepository.GenerateStub <IMainPanel>(); IEntityForm form = MockRepository.GenerateMock <IEntityForm>(); form.Expect(f => f.Mappings = null) .IgnoreArguments() .WhenCalled(action => Assert.That(((IEnumerable <Mapping>)action.Arguments[0]).Count(), Is.EqualTo(0))); form.Expect(f => f.SetAvailableTables(null)) .IgnoreArguments() .WhenCalled(action => Assert.That(((IEnumerable <ITable>)action.Arguments[0]).Count(), Is.EqualTo(0))); form.Expect(f => f.SetProperties(null)) .IgnoreArguments() .WhenCalled(action => Assert.That(((IEnumerable <Property>)action.Arguments[0]).Count(), Is.EqualTo(1))); form.Expect(f => f.SetAvailableEntities(null)) .IgnoreArguments() .WhenCalled(action => Assert.That(((IEnumerable <Entity>)action.Arguments[0]).Count(), Is.EqualTo(2))); form.Expect(f => f.SetChildEntities(null)) .IgnoreArguments() .WhenCalled(action => Assert.That(((IEnumerable <Entity>)action.Arguments[0]).Count(), Is.EqualTo(1))); Entity parentEntity = new EntityImpl("Parent"); Entity childEntity = new EntityImpl("Child"); Property property = new PropertyImpl("Prop1"); EntityKey key = new EntityKeyImpl(); Entity entity = new EntityImpl("Entity1") { Key = key }; entity.Parent = parentEntity; entity.AddChild(childEntity); entity.AddProperty(property); key.AddProperty(property); EntitySet es = new EntitySetImpl(); es.AddEntity(parentEntity); es.AddEntity(entity); es.AddEntity(childEntity); MappingSet ms = new MappingSetImpl(); ms.EntitySet = es; var presenter = new EntityPresenter(mainPanel, form); presenter.AttachToModel(entity); form.AssertWasCalled(f => f.EntityName = entity.Name); form.AssertWasCalled(f => f.Discriminator = entity.Discriminator); form.AssertWasCalled(f => f.ParentEntity = entity.Parent); form.AssertWasCalled(f => f.SetVirtualProperties(entity.Ex)); form.VerifyAllExpectations(); }
public void Clear_Called() { IEntityForm form = MockRepository.GenerateMock <IEntityForm>(); Entity obj = MockRepository.GenerateStub <Entity>(); obj.Key = new EntityKeyImpl(); IMainPanel panel = MockRepository.GenerateMock <IMainPanel>(); var presenter = new EntityPresenter(panel, form); presenter.AttachToModel(obj); form.AssertWasCalled(f => f.Clear()); }
public void Triggering_The_ChildEntityRemoved_Event_Adds_The_New_Child() { IMainPanel mainPanel = MockRepository.GenerateStub <IMainPanel>(); IEntityForm form = MockRepository.GenerateMock <IEntityForm>(); Entity entity = MockRepository.GenerateMock <Entity>(); Entity childEntity = MockRepository.GenerateMock <Entity>(); var presenter = new EntityPresenter(mainPanel, form); presenter.AttachToModel(entity); form.Raise(f => f.ChildEntityRemoved += null, form, new GenericEventArgs <Entity>(childEntity)); entity.AssertWasCalled(e => e.RemoveChild(childEntity)); }
public void Show_Property_Grid_Called() { IEntityForm form = MockRepository.GenerateMock <IEntityForm>(); Entity obj = MockRepository.GenerateStub <Entity>(); obj.Key = new EntityKeyImpl(); IMainPanel panel = MockRepository.GenerateMock <IMainPanel>(); EntityPresenter presenter = new EntityPresenter(panel, form); presenter.AttachToModel(obj); presenter.Show(); panel.AssertWasCalled(p => p.ShowPropertyGrid(form)); }
public void Triggering_The_PropertyNameChanged_Event_Changes_The_Property() { IMainPanel mainPanel = MockRepository.GenerateStub <IMainPanel>(); IEntityForm form = MockRepository.GenerateMock <IEntityForm>(); Entity entity = MockRepository.GenerateMock <Entity>(); Property property = MockRepository.GenerateMock <Property>(); var presenter = new EntityPresenter(mainPanel, form); presenter.AttachToModel(entity); form.Raise(f => f.PropertyNameChanged += null, form, new PropertyNameChangeEventArgs(property, "NewName")); property.AssertWasCalled(e => e.Name = "NewName"); }
public void Triggering_The_ParentEntityChanged_Event_Changes_The_Parent() { IMainPanel mainPanel = MockRepository.GenerateStub <IMainPanel>(); IEntityForm form = MockRepository.GenerateMock <IEntityForm>(); Entity entity = MockRepository.GenerateMock <Entity>(); form.Stub(f => f.ParentEntity).Return(new EntityImpl("Parent2")); var presenter = new EntityPresenter(mainPanel, form); presenter.AttachToModel(entity); form.Raise(f => f.ParentEntityChanged += null, form, new EventArgs()); entity.AssertWasCalled(e => e.Parent = form.ParentEntity); }
public void Property_Changed_Registered() { IEntityForm form = MockRepository.GenerateMock <IEntityForm>(); Entity obj = MockRepository.GenerateStub <Entity>(); obj.Key = new EntityKeyImpl(); obj.EntitySet = new EntitySetImpl(); obj.EntitySet.MappingSet = MockRepository.GenerateMock <MappingSet>(); IMainPanel panel = MockRepository.GenerateMock <IMainPanel>(); var presenter = new EntityPresenter(panel, form); presenter.AttachToModel(obj); obj.AssertWasCalled(o => o.PropertyChanged += null, c => c.IgnoreArguments()); obj.EntitySet.MappingSet.AssertWasCalled(ms => ms.PropertyChanged += null, c => c.IgnoreArguments()); }
public void Triggering_The_RemoveEntity_Event_Removes_It_From_The_Model_And_Clears_The_Screen() { IMainPanel mainPanel = MockRepository.GenerateStub <IMainPanel>(); IEntityForm form = MockRepository.GenerateMock <IEntityForm>(); Entity entity = new EntityImpl("Entity1"); EntitySet entitySet = new EntitySetImpl(); entitySet.AddEntity(entity); var presenter = new EntityPresenter(mainPanel, form); presenter.AttachToModel(entity); form.Raise(f => f.RemoveEntity += null, form, new EventArgs()); Assert.That(entity.EntitySet, Is.Null); Assert.That(entitySet.Entities.Count(), Is.EqualTo(0)); // Assert that the main panel was instructed to clear the property grid. mainPanel.AssertWasCalled(m => m.ShowPropertyGrid(null)); }