public void policies_can_be_applied_locally()
        {
            var graph = BehaviorGraph.BuildFrom(x => {
                x.Import <BlueRegistry>();
                x.Import <GreenRegistry>();
                x.Policies.ChainSource <ImportHandlers>(); // This would be here by Bottles normally
            });

            var cache = new ChainResolutionCache(new TypeResolver(), graph);

            cache.FindUniqueByType(typeof(Message1)).IsWrappedBy(typeof(GreenWrapper)).ShouldBeTrue();
            cache.FindUniqueByType(typeof(Message2)).IsWrappedBy(typeof(GreenWrapper)).ShouldBeTrue();
            cache.FindUniqueByType(typeof(Message3)).IsWrappedBy(typeof(GreenWrapper)).ShouldBeTrue();

            cache.FindUniqueByType(typeof(Message4)).IsWrappedBy(typeof(GreenWrapper)).ShouldBeFalse();
            cache.FindUniqueByType(typeof(Message5)).IsWrappedBy(typeof(GreenWrapper)).ShouldBeFalse();
            cache.FindUniqueByType(typeof(Message6)).IsWrappedBy(typeof(GreenWrapper)).ShouldBeFalse();

            cache.FindUniqueByType(typeof(Message1)).IsWrappedBy(typeof(BlueWrapper)).ShouldBeFalse();
            cache.FindUniqueByType(typeof(Message2)).IsWrappedBy(typeof(BlueWrapper)).ShouldBeFalse();
            cache.FindUniqueByType(typeof(Message3)).IsWrappedBy(typeof(BlueWrapper)).ShouldBeFalse();

            cache.FindUniqueByType(typeof(Message4)).IsWrappedBy(typeof(BlueWrapper)).ShouldBeTrue();
            cache.FindUniqueByType(typeof(Message5)).IsWrappedBy(typeof(BlueWrapper)).ShouldBeTrue();
            cache.FindUniqueByType(typeof(Message6)).IsWrappedBy(typeof(BlueWrapper)).ShouldBeTrue();
        }
        public void can_find_behavior_chain_for_topic()
        {
            var resolver = new ChainResolutionCache(new TypeResolver(), ObjectMother.Behaviors);

            ObjectMother.ProjectRoot.AllTopics().Each(x => {
                resolver.FindUniqueByType(typeof(Topic), x.Key).ShouldNotBeNull();
            });
        }
        private void resolve(MenuNode node, Action <BehaviorGraph> configure)
        {
            var graph = new BehaviorGraph();

            configure(graph);
            var resolver = new ChainResolutionCache(new TypeResolver(), graph);

            node.Resolve(resolver);
        }
Esempio n. 4
0
        public void SetUp()
        {
            graph = BehaviorGraph.BuildFrom(x =>
            {
                x.Actions.IncludeType <ChainResolverController>();
            });

            _resolutionCache = new ChainResolutionCache(graph);
        }
        public void SetUp()
        {
            graph = BehaviorGraph.BuildFrom(x =>
            {
                x.Actions.IncludeType <ChainResolverController>();
            });

            typeResolver = new TypeResolver();
            typeResolver.AddStrategy <ProxyDetector>();

            _resolutionCache = new ChainResolutionCache(typeResolver, graph);
        }
Esempio n. 6
0
        public void SetUp()
        {
            graph = new FubuRegistry(x =>
            {
                x.Actions.IncludeType <ChainResolverController>();
            }).BuildGraph();

            typeResolver = new TypeResolver();
            typeResolver.AddStrategy <ProxyDetector>();

            _resolutionCache = new ChainResolutionCache(typeResolver, graph);
        }
        public void Configure(BehaviorGraph graph)
        {
            var navigation = graph.Settings.Get <NavigationGraph>();

            navigation.Compile();

            var resolver = new ChainResolutionCache(new TypeResolver(), graph);

            navigation.AllNodes().OfType <MenuNode>().Each(x =>
            {
                try
                {
                    x.Resolve(resolver);
                }
                catch (Exception ex)
                {
                    throw new FubuException(4001, ex, "Failed to resolve a BehaviorChain for navigation element " + x.Key);
                }
            });
        }
Esempio n. 8
0
 public void SetUp()
 {
     theCache = new ChainResolutionCache(setupActions());
 }
Esempio n. 9
0
 public void SetUp()
 {
     theCache = new ChainResolutionCache(new TypeResolver(), setupActions());
 }