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()); }
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); }
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); }
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); }
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()); }
public void CanRegisterEventArgsRouteWithReferenceConverter() { OutComponent outComponent = new OutComponent(); InComponent inComponent = new InComponent(); TestEventArgs e = new TestEventArgs("RouteOut", 100); TestEventArgsToStringRouteConverter converter = new TestEventArgsToStringRouteConverter(); EventToMethodRoute route = EventToMethodRoute.Create <string>(outComponent, "TestEventOut", inComponent, (x) => inComponent.StringActionIn(x), converter); route.RegisterRoute(); if (!route.IsRegistered) { Assert.Fail("Route not registered."); } outComponent.RaiseTestEventOut(e); route.UnregisterRoute(); Assert.IsTrue(string.Compare(e.EventString, inComponent.StringInProperty, false) == 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); }