Ejemplo n.º 1
0
        public void IRefBM_TargetChangedEvent_get()
        {
            var bm = new RefBM <Int32BM>();

            var ibm = (IRefBM)bm;
//			IWeakEventSource<EventHandler<ValueChangedEventArgs>> targetChangedEvent = ibm.TargetChangedEvent;
            IEventSource targetChangedEvent = ibm.TargetChangedEvent;

            Assert.AreNotEqual(null, targetChangedEvent);
            var e1 = (IEventSource <EventHandler <ValueChangedEventArgs <Int32BM> > >)targetChangedEvent;
        }
        public void Test_ObjectVM()
        {
            TestDM dm = null;
            var    bm = new RefBM <TestBM> {
                Metadata = new BusinessObjectMetadata {
                    DataProvider = new CustomDataProvider <TestDM>(() => dm, value => dm = value)
                }
            };
            var vm = new RefVM <TestVM>();

            vm.Metadata.DataProvider.Data = bm;

            Assert.That(vm.Target, Is.Null, "vm.Target");

            #region change ref in business layer
            //var bmRef1=new TestBM{Metadata = {DataProvider = {Data = new TestDM{Test="1"}}}};
            var bmRef1 = new TestBM();
            var p      = bmRef1.Metadata.DataProvider;
            var dm1    = new TestDM {
                Test = "1"
            };
            p.Data    = dm1;
            bm.Target = bmRef1;

            Assert.That(dm, Is.Not.Null, "dm");
            Assert.That(dm.Test, Is.EqualTo("1"), "m.Test");
            Assert.That(vm.Target.Test, Is.EqualTo("1"), "vm.Target.Test");
            #endregion

            #region change ref in viewmodel layer
            var bmRef2 = new TestBM {
                Metadata = { DataProvider              = { Data = new TestDM {
                                                               Test          = "2"
                                                           } } }
            };
            var vmRef2 = new TestVM {
                Metadata = { DataProvider = { Data = bmRef2 } }
            };
            vm.Target = vmRef2;

            Assert.AreEqual("2", dm.Test);
            Assert.AreEqual("2", bm.Target.Test);
            #endregion

//			#region change ref in viewmodel layer
//			var bmRef2=new TestBM{Test = "2"};
//			var vmRef2 = new TestVM {Metadata = {DataProvider = {Data = bmRef2}}};
//			vm.Ref = vmRef2;
//
//			Assert.AreEqual("2",bm.Ref.Test);
//			#endregion
        }
        [Test, Ignore("TODO")]       //TODO Test RefVM with StringVM->StringBM
        public void Test_StringVM()
        {
            var bm = new RefBM <StringBM>();
            var vm = new RefVM <StringVM> {
                Metadata = new BusinessReferenceViewModelMetadata <StringVM, StringBM>()
            };

            vm.Metadata.DataProvider.Data = bm;

            Assert.AreEqual(null, vm.Target);

            #region change ref in business layer
            var newBM = new StringBM {
                Metadata = { DataProvider = { Data = "2" } }
            };
            bm.Target = newBM;

            Assert.AreEqual("2", vm.Target.Value);
            #endregion
        }