Exemplo n.º 1
0
        public void CanUnregisterPropertyRoute()
        {
            Package               pkg          = new Package();
            OutComponent          outComponent = new OutComponent();
            InComponent           inComponent  = new InComponent();
            PropertyToMethodRoute route        = PropertyToMethodRoute.Create <string>(outComponent, x => outComponent.StringOutProperty, inComponent, (x) => inComponent.StringActionIn(x));

            pkg.RegisterPropertyRoute(route);
            pkg.UnregisterPropertyRoute(route);

            Assert.IsTrue(!pkg.RegisteredPropertyRoutes.Any());
        }
Exemplo n.º 2
0
        public void DuplicatePropertyRoutesDisalllowed()
        {
            Package               pkg          = new Package();
            OutComponent          outComponent = new OutComponent();
            InComponent           inComponent  = new InComponent();
            PropertyToMethodRoute route        = PropertyToMethodRoute.Create <string>(outComponent, x => outComponent.StringOutProperty, inComponent, (x) => inComponent.StringActionIn(x));

            pkg.RegisterPropertyRoute(route);
            pkg.RegisterPropertyRoute(route);

            Assert.AreEqual(pkg.RegisteredPropertyRoutes.Count(), 1);

            pkg.UnregisterPropertyRoute(route);
        }
Exemplo n.º 3
0
        public void CanUnregisterAllRoutes()
        {
            Package               pkg          = new Package();
            OutComponent          outComponent = new OutComponent();
            InComponent           inComponent  = new InComponent();
            EventToMethodRoute    eRoute       = EventToMethodRoute.Create <TestEventArgs>(outComponent, "TestEventOut", inComponent, (x) => inComponent.TestEventArgsActionIn(x));
            PropertyToMethodRoute pRoute       = PropertyToMethodRoute.Create <string>(outComponent, x => outComponent.StringOutProperty, inComponent, (x) => inComponent.StringActionIn(x));

            pkg.RegisterEventRoute(eRoute);
            pkg.RegisterPropertyRoute(pRoute);

            pkg.UnregisterAll();

            Assert.IsTrue(!pkg.RegisteredEventRoutes.Any() & !pkg.RegisteredPropertyRoutes.Any());
        }
Exemplo n.º 4
0
            public void CanAttachToPropertyRouteUnregistered()
            {
                Package               pkg          = new Package();
                OutComponent          outComponent = new OutComponent();
                InComponent           inComponent  = new InComponent();
                PropertyToMethodRoute route        = PropertyToMethodRoute.Create <string>(outComponent, x => outComponent.StringOutProperty, inComponent, (x) => inComponent.StringActionIn(x));
                bool caught = false;

                pkg.PropertyRouteUnregistered += (s, e) =>
                {
                    caught = e.PropertyRoute == route;
                };

                pkg.RegisterPropertyRoute(route);
                pkg.UnregisterPropertyRoute(route);

                Assert.IsTrue(caught);
            }
Exemplo n.º 5
0
            public void CanCancelPropertyRouteUnregistration()
            {
                Package               pkg          = new Package();
                OutComponent          outComponent = new OutComponent();
                InComponent           inComponent  = new InComponent();
                PropertyToMethodRoute route        = PropertyToMethodRoute.Create <string>(outComponent, x => outComponent.StringOutProperty, inComponent, (x) => inComponent.StringActionIn(x));
                bool shouldCancel = true;

                pkg.PropertyRoutePreUnregister += (s, e) =>
                {
                    e.Cancel     = shouldCancel;
                    shouldCancel = false;
                };

                pkg.RegisterPropertyRoute(route);
                pkg.UnregisterPropertyRoute(route);
                Assert.IsTrue(pkg.RegisteredPropertyRoutes.Any());
                pkg.UnregisterPropertyRoute(route);
            }
Exemplo n.º 6
0
            public void CanRegisterPropertyRoute()
            {
                OutComponent outComponent = new OutComponent();
                InComponent  inComponent  = new InComponent();

                PropertyToMethodRoute route = PropertyToMethodRoute.Create(outComponent, x => outComponent.IntOutProperty, inComponent, (x) => inComponent.IntActionIn(x));

                route.RegisterRoute();

                if (!route.IsRegistered)
                {
                    Assert.Fail("Route not registered.");
                }

                outComponent.IntOutProperty = 100;
                route.UnregisterRoute();

                Assert.AreEqual(outComponent.IntOutProperty, inComponent.IntInProperty);
            }
Exemplo n.º 7
0
            public void CanRegisterPropertyRouteWithValueConverter()
            {
                OutComponent outComponent           = new OutComponent();
                InComponent  inComponent            = new InComponent();
                StringToIntRouteConverter converter = new StringToIntRouteConverter();

                PropertyToMethodRoute route = PropertyToMethodRoute.Create <int>(outComponent, "StringOutProperty", inComponent, (x) => inComponent.IntActionIn(x), converter);

                route.RegisterRoute();

                if (!route.IsRegistered)
                {
                    Assert.Fail("Route not registered.");
                }

                outComponent.StringOutProperty = "100";
                route.UnregisterRoute();

                Assert.AreEqual(100, inComponent.IntInProperty);
            }
Exemplo n.º 8
0
            public void CanRegisterPropertyRouteWithReferenceConverter()
            {
                OutComponent outComponent           = new OutComponent();
                InComponent  inComponent            = new InComponent();
                IntToStringRouteConverter converter = new IntToStringRouteConverter();

                PropertyToMethodRoute route = PropertyToMethodRoute.Create <string>(outComponent, "IntOutProperty", inComponent, (x) => inComponent.StringActionIn(x), converter);

                route.RegisterRoute();

                if (!route.IsRegistered)
                {
                    Assert.Fail("Route not registered.");
                }

                outComponent.IntOutProperty = 100;
                route.UnregisterRoute();

                Assert.IsTrue(string.Compare(outComponent.IntOutProperty.ToString(), inComponent.StringInProperty, false) == 0);
            }
Exemplo n.º 9
0
        static void Main(string[] args)
        {
            PublisherComponent    publisher  = new PublisherComponent();
            SubscriberComponent   subscriber = new SubscriberComponent();
            PropertyToMethodRoute route      = PropertyToMethodRoute.Create(publisher, x => publisher.Count, subscriber, (x) => subscriber.Increment(x));
            Package package = new Package();

            package.RegisterPropertyRoute(route);

            foreach (Component component in package.Components)
            {
                Console.WriteLine(component.ToString() + " " + component.Id.ToString());
            }

            Console.WriteLine();
            Console.WriteLine();

            foreach (PropertyRoute propRoute in package.RegisteredPropertyRoutes)
            {
                Console.WriteLine("Route info -- " + propRoute.ToString());
            }

            Console.WriteLine();
            Console.WriteLine();

            for (int i = 0; i < 10; i++)
            {
                publisher.Count = i;
            }

            package.UnregisterAll();

            Console.WriteLine();
            Console.WriteLine("Press any key to exit.");
            Console.ReadKey();
        }