public void Property_Changed_Registered()
        {
            IComponentForm form  = MockRepository.GenerateMock <IComponentForm>();
            Component      obj   = MockRepository.GenerateMock <Component>();
            IMainPanel     panel = MockRepository.GenerateMock <IMainPanel>();

            ComponentPresenter presenter = new ComponentPresenter(panel, form);

            presenter.AttachToModel(obj);

            obj.AssertWasCalled(o => o.PropertyChanged += null, c => c.IgnoreArguments());
        }
        public void Form_Is_Set_Up()
        {
            IComponentForm form  = MockRepository.GenerateMock <IComponentForm>();
            IMainPanel     panel = MockRepository.GenerateMock <IMainPanel>();

            var mappingSet = new MappingSetImpl();
            var entity     = new EntityImpl("Entity1");

            entity.AddProperty(new PropertyImpl("Property1"));
            var table = new Table("Table1");

            table.AddColumn(new Column("Column1"));
            table.AddColumn(new Column("Street"));
            mappingSet.EntitySet.AddEntity(entity);

            mappingSet.ChangeMappedColumnFor(entity.Properties.First()).To(table.Columns[0]);

            ComponentSpecification spec = new ComponentSpecificationImpl("Address");

            spec.AddProperty(new ComponentPropertyImpl("Street"));
            Component obj = spec.CreateImplementedComponentFor(entity, "Street");

            mappingSet.EntitySet.AddComponentSpecification(spec);

            var mapping = new ComponentMappingImpl {
                ToComponent = obj, FromTable = table
            };

            mapping.AddPropertyAndColumn(obj.Properties[0], table.Columns[0]);
            mappingSet.AddMapping(mapping);

            form.Expect(f => f.SetMappings(null))
            .IgnoreArguments()
            .WhenCalled(action => Assert.That(((IEnumerable <ColumnComponentPropertyMapping>)action.Arguments[0]).Count(), Is.EqualTo(1)));

            form.Expect(f => f.SetPossibleColumns(null))
            .IgnoreArguments()
            .WhenCalled(action => Assert.That(((IEnumerable <IColumn>)action.Arguments[0]).Count(), Is.EqualTo(2)));

            ComponentPresenter presenter = new ComponentPresenter(panel, form);

            presenter.AttachToModel(obj);

            form.AssertWasCalled(f => f.Clear());

            form.AssertWasCalled(f => f.ComponentName = obj.Name);
            form.AssertWasCalled(f => f.SetParentEntity(obj.ParentEntity.Name));
            form.AssertWasCalled(f => f.SetVirtualProperties(obj.Ex));
            form.VerifyAllExpectations();
        }
        public void Init()
        {
            drawableComponent = A.Fake <DrawableComponent>();

            component = A.Fake <Component>();

            presenter        = A.Fake <ComponentPresenter>();
            viewForPresenter = A.Fake <IView <IPresenter> >();
            A.CallTo(() => viewForPresenter.Visible).Returns(true);

            A.CallTo(() => presenter.AsDrawable()).Returns(viewForPresenter);

            collection = new ComponentCollection();

            collection.Add(drawableComponent);
            collection.Add(component);
            collection.Add(presenter);
        }