public void Must_reuse_the_same_assembly_for_all_generated_adapter_factories() { var fooConfiguration = new MappingConfiguration <Foo, IFooView>(); fooConfiguration.Map(view => view.Name).From(foo => foo.Name); fooConfiguration.Map(view => view.Id).From(foo => foo.Id); fooConfiguration.Map(view => view.Factor).From(foo => foo.Factor); IAdapterFactory <Foo, IFooView> fooFactory = AdapterFactoryGenerator.Instance.Generate <Foo, IFooView>(fooConfiguration.Mappings); var foo1 = new Foo("test", Guid.NewGuid(), 1); IFooView fooView = fooFactory.Create(foo1); var barConfiguration = new MappingConfiguration <Bar, IFooView>(); barConfiguration.Map(view => view.Name).From(bar => bar.Name); barConfiguration.Map(view => view.Id).From(bar => bar.Id); barConfiguration.Map(view => view.Factor).From(bar => null); IAdapterFactory <Bar, IFooView> barFactory = AdapterFactoryGenerator.Instance.Generate <Bar, IFooView>(barConfiguration.Mappings); var bar1 = new Bar("test", Guid.NewGuid()); IFooView barView = barFactory.Create(bar1); Type fooViewType = fooView.GetType(); Type barViewType = barView.GetType(); Assert.That(fooViewType.Assembly, Is.SameAs(barViewType.Assembly)); }
public void Must_not_call_mapping_delegate_for_each_property_before_first_access() { var fooConfiguration = new MappingConfiguration <Foo, IFooView>(); bool nameDelegateCalled = false; bool idDelegateCalled = false; bool factorDelegateCalled = false; fooConfiguration.Map(view => view.Name).From(foo => { nameDelegateCalled = true; return(foo.Name); }); fooConfiguration.Map(view => view.Id).From(foo => { idDelegateCalled = true; return(foo.Id); }); fooConfiguration.Map(view => view.Factor).From(foo => { factorDelegateCalled = true; return(foo.Factor); }); var foo1 = new Foo("test", Guid.NewGuid(), 1); IAdapterFactory <Foo, IFooView> systemUnderTest = AdapterFactoryGenerator.Instance.Generate <Foo, IFooView>(fooConfiguration.Mappings); IFooView fooView = systemUnderTest.Create(foo1); Assert.That(nameDelegateCalled, Is.False); Assert.That(idDelegateCalled, Is.False); Assert.That(factorDelegateCalled, Is.False); // ReSharper disable UnusedVariable string name = fooView.Name; Guid id = fooView.Id; int factor = fooView.Factor.Factor; // ReSharper restore UnusedVariable Assert.That(nameDelegateCalled, Is.True); Assert.That(idDelegateCalled, Is.True); Assert.That(factorDelegateCalled, Is.True); }
public void Must_wire_up_mapping_delegate_for_each_property() { var fooConfiguration = new MappingConfiguration <Foo, IFooView>(); bool nameDelegateCalled = false; bool idDelegateCalled = false; bool factorDelegateCalled = false; fooConfiguration.Map(view => view.Name).From(foo => { nameDelegateCalled = true; return(foo.Name); }); fooConfiguration.Map(view => view.Id).From(foo => { idDelegateCalled = true; return(foo.Id); }); fooConfiguration.Map(view => view.Factor).From(foo => { factorDelegateCalled = true; return(foo.Factor); }); var foo1 = new Foo("test", Guid.NewGuid(), 1); IAdapterFactory <Foo, IFooView> systemUnderTest = AdapterFactoryGenerator.Instance.Generate <Foo, IFooView>(fooConfiguration.Mappings); IFooView fooView = systemUnderTest.Create(foo1); string name = fooView.Name; Guid id = fooView.Id; int factor = fooView.Factor.Factor; Assert.That(name, Is.EqualTo(foo1.Name)); Assert.That(id, Is.EqualTo(foo1.Id)); Assert.That(factor, Is.EqualTo(foo1.Factor.Factor)); Assert.That(nameDelegateCalled, Is.True); Assert.That(idDelegateCalled, Is.True); Assert.That(factorDelegateCalled, Is.True); }
public FooPresenter(IFooView view) { view.FooSelected += (s, e) => Fired(s, e); view.Canceled += (s, e) => Canceled = true; }
public FooPresenter2(IFooView view) { this.view = view; view.Presenter = this; }
public FooPresenter1() { view = new FooView(this); }
public FooViewModel(IFooView view) { _view = view; }