Exemple #1
0
        public void TestProxyFactory()
        {
            var proxyFactory = CreateProxyObjectFactory(ProxyObjectFactoryOptions.NoPurgeState, null, null);

            var collection = new ObservableCollection(ObservableCollectionOptions.None);
            var proxy      = proxyFactory.ToProxyObject(collection);

            var typeProperties = new TestModel.TypeProperties();

            proxy = proxyFactory.ToProxyObject(typeProperties);
            var typePropertiesProxy = proxy as TestModel.ITypeProperties;

            typeProperties.IntProperty = 200;
            Assert.Equal(typePropertiesProxy.IntProperty, 200);
            PropertyChangedEventArgs    lastEventArgs = null;
            PropertyChangedEventHandler eventHandler  = null;

            eventHandler = (object sender, PropertyChangedEventArgs e) =>
            {
                lastEventArgs = e;
            };
            typePropertiesProxy.PropertyChanged += eventHandler;
            typeProperties.IntProperty           = 300;
            Assert.NotNull(lastEventArgs);
            Assert.Equal(lastEventArgs.NewValue, 300);
        }
Exemple #2
0
        public void TestWithWorkingDisptahcer()
        {
            var workingDispatcher = Dispatcher.CreateThreadingPoolDispatcher();

            var proxyFactory        = CreateProxyObjectFactory(ProxyObjectFactoryOptions.NoPurgeState, workingDispatcher, null);
            var typeProperties      = new TestModel.TypeProperties();
            var typePropertiesProxy = proxyFactory.ToProxyObject(typeProperties) as TestModel.ITypeProperties;

            var notifyReceived = new EventWaitHandle(false, EventResetMode.AutoReset);
            PropertyChangedEventHandler eventHandler = null;

            eventHandler = (object sender, PropertyChangedEventArgs e) =>
            {
                notifyReceived.Set();
            };
            typePropertiesProxy.PropertyChanged += eventHandler;
            typeProperties.IntProperty           = 100;
            Assert.True(notifyReceived.WaitOne(1000));
        }