示例#1
0
 private static void addBuiltInDiagnostics(BehaviorGraph graph)
 {
     if (FubuMode.InDevelopment())
     {
         graph.AddChain(RoutedChain.For<AboutDiagnostics>(x => x.get__about(), "_about"));
         graph.AddChain(RoutedChain.For<AboutDiagnostics>(x => x.get__loaded(), "_loaded"));
     }
 }
 public void SetUp()
 {
     _outputPolicy = new AttachOutputPolicy();
     _graph = new BehaviorGraph();
     _graph.AddChain(BehaviorChain.For<TestEndpoint>(e => e.X()));
     _graph.AddChain(BehaviorChain.For<TestEndpoint>(e => e.AnyNumber()));
     _outputPolicy.Configure(_graph);
 }
示例#3
0
        public void should_throw_2151_if_the_input_type_has_multiple_possible_behavior_chains()
        {
            var graph = new BehaviorGraph();

            graph.AddChain(BehaviorChain.For <ControllerTarget>(x => x.OneInOneOut(null)));
            graph.AddChain(BehaviorChain.For <ControllerTarget>(x => x.OneInZeroOut(null)));

            Exception <FubuException> .ShouldBeThrownBy(() => { graph.IdForType(typeof(Model1)); }).ErrorCode.ShouldEqual
                (2151);
        }
示例#4
0
        public void SetUp()
        {
            graph = new BehaviorGraph();

            chain1 = BehaviorChain.For <ControllerTarget>(x => x.OneInOneOut(null));
            graph.AddChain(chain1);

            chain2 = BehaviorChain.For <ControllerTarget>(x => x.OneInZeroOut(null));
            graph.AddChain(chain2);
        }
        public void Configure(BehaviorGraph graph)
        {
            if (!HasLogin(graph))
            {
                graph.AddChain().AddToEnd(ActionCall.For<LoginController>(x => x.Login(null)));
            }

            if (!HasLogout(graph))
            {
                graph.AddChain().AddToEnd(ActionCall.For<LogoutController>(x => x.Logout(null)));
            }
        }
        public void Configure(BehaviorGraph graph)
        {
            if (!HasLogin(graph))
            {
                graph.AddChain().AddToEnd(ActionCall.For <LoginController>(x => x.get_login(null)));
                graph.AddChain().AddToEnd(ActionCall.For <LoginController>(x => x.post_login(null)));
            }

            if (!HasLogout(graph))
            {
                graph.AddChain().AddToEnd(ActionCall.For <LogoutController>(x => x.Logout(null)));
            }
        }
示例#7
0
        public void should_throw_an_exception_if_the_result_is_not_unique()
        {
            var call1 = ActionCall.For<Issue101Endpoint>(x => x.get_hello());
            var call2 = ActionCall.For<Issue101Endpoint>(x => x.get_hello());

            var graph = new BehaviorGraph();
            graph.AddChain().AddToEnd(call1);
            graph.AddChain().AddToEnd(call2);

            Exception<FubuException>.ShouldBeThrownBy(() => {
                graph.ChainFor<Issue101Endpoint>(x => x.get_hello());
            });
        }
示例#8
0
        public void should_throw_an_exception_if_the_result_is_not_unique()
        {
            var call1 = ActionCall.For <Issue101Endpoint>(x => x.get_hello());
            var call2 = ActionCall.For <Issue101Endpoint>(x => x.get_hello());

            var graph = new BehaviorGraph();

            graph.AddChain().AddToEnd(call1);
            graph.AddChain().AddToEnd(call2);

            Exception <FubuException> .ShouldBeThrownBy(() => {
                graph.ChainFor <Issue101Endpoint>(x => x.get_hello());
            });
        }
        public void Configure(BehaviorGraph graph)
        {
            var handlers = graph.Settings.Get<HandlerGraph>();

            // TODO -- move this to a HandlerSource after we fix the duplicate calls
            // across HandlerSource problem.
            handlers.Add(HandlerCall.For<SubscriptionsHandler>(x => x.Handle(new SubscriptionRequested())));
            handlers.Add(HandlerCall.For<SubscriptionsHandler>(x => x.Handle(new SubscriptionsChanged())));

            handlers.ApplyGeneralizedHandlers();

            var policies = graph.Settings.Get<HandlerPolicies>();
            handlers.ApplyPolicies(policies.GlobalPolicies);

            foreach (var chain in handlers)
            {
                // Apply the error handling node
                chain.InsertFirst(new ExceptionHandlerNode(chain));

                graph.AddChain(chain);

                // Hate how we're doing this, but disable tracing
                // on the polling job requests here.
                if (chain.InputType().Closes(typeof (JobRequest<>)))
                {
                    chain.Tags.Add(BehaviorChain.NoTracing);
                }
            }
        }
示例#10
0
        private void registerBehavior(ActionCall call)
        {
            var chain = new BehaviorChain();

            chain.AddToEnd(call);
            _graph.AddChain(chain);
        }
示例#11
0
        protected override void beforeEach()
        {
            theRequest = new TwitterLoginRequest {
                Url = "hello/there"
            };

            MockFor <IFubuRequest>().Stub(x => x.Get <TwitterLoginRequest>()).Return(theRequest);

            theLoginBehavior = MockFor <IActionBehavior>();

            var chain = new BehaviorChain();

            chain.AddToEnd(ActionCall.For <LoginController>(x => x.get_login(null)));

            var graph = new BehaviorGraph();

            graph.AddChain(chain);

            Services.Inject(graph);

            MockFor <IPartialFactory>().Stub(x => x.BuildPartial(chain)).Return(theLoginBehavior);

            ClassUnderTest.Failure();

            theLoginRequest = (LoginRequest)MockFor <IFubuRequest>().GetArgumentsForCallsMadeOn(x => x.Set(Arg <LoginRequest> .Is.NotNull))[0][0];
        }
        public void SetUp()
        {
            graph     = new BehaviorGraph();
            lastChain = graph.AddChain();
            nodes     = null;

            policy = new ReorderBehaviorsPolicy();
        }
示例#13
0
 private static BehaviorChain createAssetContentChain(BehaviorGraph graph)
 {
     var chain = graph.AddChain();
     var pattern = "_content";
     chain.Route = RouteBuilder.Build(typeof(AssetPath), pattern);
     chain.Route.AddHttpMethodConstraint("GET");
     return chain;
 }
        public void has_logout_positive()
        {
            var graph = new BehaviorGraph();
            graph.AddChain().AddToEnd(ActionCall.For<LoginEndpoint>(x => x.get_logout(null)));

            FormsAuthenticationEndpointsRegistration.HasLogout(graph)
                .ShouldBeTrue();
        }
示例#15
0
        public void when_there_is_only_one_chain_for_that_input_model()
        {
            var graph = new BehaviorGraph(null);

            var chain = BehaviorChain.For <ControllerTarget>(x => x.OneInOneOut(null));

            graph.AddChain(chain);
            graph.IdForType(typeof(Model1)).ShouldEqual(chain.UniqueId);
        }
 public void Configure(BehaviorGraph graph)
 {
     var route = new RouteDefinition("");
     route.AddHttpMethodConstraint("GET");
     var chain = new BehaviorChain { Route = route };
     chain.AddToEnd(new RedirectNode());
     graph.AddChain(chain);
     graph.Services.AddService(this);
 }
        private static BehaviorChain createAssetContentChain(BehaviorGraph graph)
        {
            var chain = graph.AddChain();

            chain.Route = RouteBuilder.Build(typeof(AssetPath), Pattern);
            chain.Route.AddHttpMethodConstraint("GET");
            chain.Route.SessionStateRequirement = SessionStateRequirement.DoesNotUseSessionState;
            return(chain);
        }
示例#18
0
        private static void addReloadedEndpoint(BehaviorGraph graph)
        {
            var action = ActionCall.For<AboutEndpoint>(x => x.get__loaded());
            var chain = new BehaviorChain();
            chain.AddToEnd(action);
            chain.Route = new RouteDefinition("_loaded");

            graph.AddChain(chain);
        }
        private static BehaviorChain createAssetContentChain(BehaviorGraph graph)
        {
            var chain = graph.AddChain();

            chain.Route = RouteBuilder.Build(typeof (AssetPath), Pattern);
            chain.Route.AddHttpMethodConstraint("GET");
            chain.Route.SessionStateRequirement = SessionStateRequirement.DoesNotUseSessionState;
            return chain;
        }
示例#20
0
        private BehaviorChain createAssetContentChain(BehaviorGraph graph)
        {
            var    chain   = graph.AddChain();
            string pattern = "_content";

            chain.Route = RouteBuilder.Build(typeof(AssetPath), pattern);
            chain.Route.AddHttpMethodConstraint("GET");
            return(chain);
        }
示例#21
0
        public void has_logout_positive()
        {
            var graph = new BehaviorGraph();

            graph.AddChain().AddToEnd(ActionCall.For <LoginEndpoint>(x => x.get_logout(null)));

            FormsAuthenticationEndpointsRegistration.HasLogout(graph)
            .ShouldBeTrue();
        }
示例#22
0
        public void Configure(BehaviorGraph graph)
        {
            var action = ActionCall.For <AboutEndpoint>(x => x.get__about());
            var chain  = new BehaviorChain();

            chain.AddToEnd(action);
            chain.Route = new RouteDefinition("_about");

            graph.AddChain(chain);
        }
示例#23
0
        private static void addReloadedEndpoint(BehaviorGraph graph)
        {
            var action = ActionCall.For <AboutEndpoint>(x => x.get__loaded());
            var chain  = new BehaviorChain();

            chain.AddToEnd(action);
            chain.Route = new RouteDefinition("_loaded");

            graph.AddChain(chain);
        }
示例#24
0
        private void afterAttaching()
        {
            var graph = new BehaviorGraph();

            graph.AddChain(theChain);

            graph.Settings.Replace(new ViewBag(theViews));

            theAttacher.Configure(graph);
        }
示例#25
0
        public void for_an_action_call()
        {
            BehaviorChain chain1 = BehaviorChain.For <ControllerTarget>(x => x.OneInOneOut(null));

            graph.AddChain(chain1);

            BehaviorChain chain2 = BehaviorChain.For <ControllerTarget>(x => x.OneInZeroOut(null));

            graph.AddChain(chain2);


            var behavior = MockRepository.GenerateMock <IActionBehavior>();

            MockFor <IBehaviorFactory>()
            .Stub(x => x.BuildBehavior(args, chain1.UniqueId))
            .Return(behavior);

            ClassUnderTest.BuildPartial(ActionCall.For <ControllerTarget>(x => x.OneInOneOut(null)))
            .ShouldBeTheSameAs(behavior);
        }
示例#26
0
 public void Configure(BehaviorGraph graph)
 {
     _sources
         .SelectMany(src => src.FindActions(_types))
         .Each(call =>
                   {
                       var chain = new BehaviorChain();
                       chain.AddToEnd(call);
                       graph.AddChain(chain);
                   });
 }
示例#27
0
        private void afterAttaching()
        {
            var graph = new BehaviorGraph();

            graph.AddChain(theChain);

            graph.Settings.Replace(thePolicy);

            var worker = new ViewAttachmentWorker(new ViewBag(theViews), thePolicy);

            worker.Configure(graph);
        }
示例#28
0
        public void Configure(BehaviorGraph graph)
        {
            var actions = _source.FindActions(graph.ApplicationAssembly);

            var existing = graph.Actions().ToList();

            actions.Where(x => !existing.Contains(x)).Each(call => {
                var chain = new BehaviorChain();
                chain.AddToEnd(call);
                graph.AddChain(chain);
            });
        }
示例#29
0
        public void Configure(BehaviorGraph graph)
        {
            _loader = new TopicLoader(graph);

            var tasks = PackageRegistry.Packages.Where(x => x.Name.EndsWith(".Docs")).Select(pak => {
                return(Task.Factory.StartNew(() => {
                    pak.ForFolder(BottleFiles.WebContentFolder, dir => LoadPackage(pak, dir, graph));
                }));
            }).ToArray();

            var directories = graph.Settings.Get <FubuDocsDirectories>();

            if (directories.Host.IsNotEmpty() && !directories.Host.EndsWith(".Docs"))
            {
                var project = loadProject(directories);

                TopicGraph.AllTopics.AddProject(project);
            }

            Task.WaitAll(tasks);

            TopicGraph.AllTopics.ConfigureRelationships();

            if (TopicGraph.AllTopics.Projects.Count() == 1)
            {
                var project = TopicGraph.AllTopics.Projects.Single();
                project.AllTopics().Each(x => { x.Url = x.Url.MoveUp(); });

                project.Home.Url = string.Empty;
            }

            TopicGraph.AllTopics.Projects.Each(project => {
                project.AllTopics().Each(topic => graph.AddChain(topic.BuildChain()));

                if (project.Splash != null)
                {
                    graph.AddChain(project.Splash.BuildChain());
                }
            });
        }
示例#30
0
        public void Configure(BehaviorGraph graph)
        {
            // This needs to be forced to true here
            _types.ShouldScanAssemblies = true;
            _types.TypesMatching(_viewTypeFilter).Each(type =>
            {
                var chain = graph.AddChain();
                var node = _facilities.FirstValue(x => x.CreateViewNode(type));
                chain.AddToEnd(node);

                _configureChain(chain);
            });
        }
示例#31
0
        public static BehaviorChain AddChainForWriter <T>(this BehaviorGraph graph, object writer)
        {
            var chain = new BehaviorChain();
            var node  = new OutputNode(typeof(T));

            node.Add(writer);

            chain.AddToEnd(node);

            graph.AddChain(chain);

            return(chain);
        }
示例#32
0
        public void Configure(BehaviorGraph graph)
        {
            // This needs to be forced to true here
            _types.ShouldScanAssemblies = true;
            _types.TypesMatching(_viewTypeFilter).Each(type =>
            {
                var chain = graph.AddChain();
                var node  = _facilities.FirstValue(x => x.CreateViewNode(type));
                chain.AddToEnd(node);

                _configureChain(chain);
            });
        }
示例#33
0
        public void Configure(BehaviorGraph graph)
        {
            graph.Settings.Get <ViewBag>()
            .Views
            .Where(token => _viewTokenFilter(token))
            .Each(token =>
            {
                var chain = BehaviorChain.ForWriter(new ViewNode(token));
                graph.AddChain(chain);

                _configureChain(chain, token);
            });
        }
        private void buildChain(BehaviorGraph graph, Type t)
        {
            var chain = graph.AddChain();
            chain.Origin = "SmartGridConvention";
            chain.Route = new RouteDefinition("_griddata/" + t.NameForGrid().ToLower());

            var call = typeof (GridActionCall<>).CloseAndBuildAs<ActionCall>(t);
            chain.AddToEnd(call);

            t.GetAllAttributes<ModifyChainAttribute>().Each(att => att.Alter(call));

            chain.MakeAsymmetricJson();
        }
示例#35
0
        public void Configure(BehaviorGraph graph)
        {
            if (!_views.Views.Any()) return;

            FindLastActions(graph.Behaviors).Each(attachToAction);

            _views.Views.Where(x => x.ViewModel != null && !_attached.Contains(x)).Each(view => {
                var chain = buildChainForView(view);
                chain.Output.AddView(view, Always.Flyweight);

                graph.AddChain(chain);
            });
        }
示例#36
0
        public void prepends_the_authentication_node()
        {
            var thePolicy = new ApplyAuthenticationPolicy();

            var chain = chainFor <TestAuthenticationEndpoint <AuthenticatedModel> >(x => x.get_something(null));
            var graph = new BehaviorGraph();

            graph.AddChain(chain);

            thePolicy.Configure(graph);

            chain.First().ShouldBeOfType <AuthenticationFilterNode>();
        }
示例#37
0
        public void Configure(ViewBag bag, BehaviorGraph graph)
        {
            bag
            .Views
            .Where(token => _viewTokenFilter(token))
            .Each(token =>
            {
                var chain  = graph.AddChain();
                var output = token.ToBehavioralNode();
                chain.AddToEnd(output);

                _configureChain(chain, token);
            });
        }
示例#38
0
        public void Configure(ViewBag bag, BehaviorGraph graph)
        {
            bag
                .Views
                .Where(token => _viewTokenFilter(token))
                .Each(token =>
                          {
                              var chain = graph.AddChain();
                              var output = token.ToBehavioralNode();
                              chain.AddToEnd(output);

                              _configureChain(chain);
                          });
        }
        public void Configure(BehaviorGraph graph)
        {
            if (!graph.Behaviors.Any(x => x.Route != null && x.GetRoutePattern().IsEmpty()))
            {
                var action = ActionCall.For<DefaultHome>(x => x.GoToDiagnostics());
                var continuer = new ContinuationNode();

                var chain = new BehaviorChain();
                chain.Route = new RouteDefinition("");
                chain.AddToEnd(action);
                chain.AddToEnd(continuer);

                graph.AddChain(chain);
            }
        }
示例#40
0
        private void buildChain(BehaviorGraph graph, Type t)
        {
            var chain = graph.AddChain();

            chain.Origin = "SmartGridConvention";
            chain.Route  = new RouteDefinition("_griddata/" + t.NameForGrid().ToLower());

            var call = typeof(GridActionCall <>).CloseAndBuildAs <ActionCall>(t);

            chain.AddToEnd(call);

            t.GetAllAttributes <AuthorizationAttribute>().Each(att => att.Alter(call));

            chain.AddToEnd(new RenderJsonNode(typeof(GridResults)));
        }
示例#41
0
        public void Configure(BehaviorGraph graph)
        {
            if (!graph.Behaviors.OfType <RoutedChain>().Any(x => x.GetRoutePattern().IsEmpty()))
            {
                var action    = ActionCall.For <DefaultHome>(x => x.GoToDiagnostics());
                var continuer = new ContinuationNode();

                var chain = new RoutedChain("");
                chain.Route.AddHttpMethodConstraint("GET");
                chain.AddToEnd(action);
                chain.AddToEnd(continuer);

                graph.AddChain(chain);
            }
        }
        public void prepends_the_pass_through_authentication_node()
        {
            var thePolicy = new ApplyPassThroughAuthenticationPolicy();

            var chain = chainFor <TestAuthenticationEndpoint <PassThroughModel> >(x => x.get_something(null));
            var graph = new BehaviorGraph();

            graph.AddChain(chain);

            thePolicy.Configure(graph);

            var filter = chain.OfType <ActionFilter>().Single();

            filter.HandlerType.ShouldEqual(typeof(PassThroughAuthenticationFilter));
        }
        public void Configure(BehaviorGraph graph)
        {
            var pool = TypePool.AppDomainTypes();
            pool.TypesMatching(type => type.IsConcreteTypeOf<ISendMessages>()).Each(type => {
                type.GetMethods(BindingFlags.Public | BindingFlags.Instance)
                    .Where(ActionSource.IsCandidate)
                    .Each(method => {
                        var transform = new ActionCall(type, method);
                        var chain = new BehaviorChain();
                        chain.AddToEnd(transform);

                        graph.AddChain(chain);
                    });
            });
        }
示例#44
0
        public void SetUp()
        {
            t1 = new StubViewToken {
                ViewModel = typeof(StubViewModel1)
            };
            t2 = new StubViewToken {
                ViewModel = typeof(StubViewModel2)
            };

            theFacility = new StubViewFacility(t1, t2);

            theGraph = BehaviorGraph.BuildFrom(registry => registry.AlterSettings <ViewEngines>(views => views.AddFacility(theFacility)));
            theGraph.AddChain(chainWithOutput <StubViewModel2>(t2));

            new ActionlessViewConvention().Configure(theGraph);
        }
示例#45
0
        public void uses_the_filter()
        {
            var thePolicy = new ApplyAuthenticationPolicy();

            var chain = chainFor <TestAuthenticationEndpoint <AuthenticatedModel> >(x => x.get_something(null));
            var graph = new BehaviorGraph();

            graph.AddChain(chain);

            // This is the filter set up that will explicitly exclude this chain
            graph.Settings.Get <AuthenticationSettings>().ExcludeChains.InputTypeIs <AuthenticatedModel>();

            thePolicy.Configure(graph);

            chain.ShouldHaveTheSameElementsAs(chain.FirstCall());
        }
示例#46
0
        public void Configure(BehaviorGraph graph)
        {
            if (!_views.Views.Any())
            {
                return;
            }

            FindLastActions(graph.Behaviors).Each(attachToAction);

            _views.Views.Where(x => x.ViewModel != null && !_attached.Contains(x)).Each(view => {
                var chain = buildChainForView(view);
                chain.Output.AddView(view, Always.Flyweight);

                graph.AddChain(chain);
            });
        }
示例#47
0
        public void Configure(BehaviorGraph graph)
        {
            var pool = TypePool.AppDomainTypes();

            pool.TypesMatching(type => type.IsConcreteTypeOf <ISendMessages>()).Each(type => {
                type.GetMethods(BindingFlags.Public | BindingFlags.Instance)
                .Where(ActionSource.IsCandidate)
                .Each(method => {
                    var transform = new ActionCall(type, method);
                    var chain     = new BehaviorChain();
                    chain.AddToEnd(transform);

                    graph.AddChain(chain);
                });
            });
        }
示例#48
0
        public static BehaviorGraph Import(FubuRegistry registry, SettingsCollection parentSettings)
        {
            var graph = new BehaviorGraph(parentSettings);
            startBehaviorGraph(registry, graph);
            var config = registry.Config;

            config.RunActions(ConfigurationType.Settings, graph);

            config.Sources.Union(config.Imports).SelectMany(x => x.BuildChains(graph.Settings)).Each(chain => graph.AddChain(chain));

            config.RunActions(ConfigurationType.Explicit, graph);
            config.RunActions(ConfigurationType.Policy, graph);
            config.RunActions(ConfigurationType.Reordering, graph);
            config.RunActions(ConfigurationType.InjectNodes, graph);

            return graph;
        }
        public void Configure(BehaviorGraph graph)
        {
            var attachedViews = graph.Behaviors
                .Where(x => x.HasOutput())
                .SelectMany(x => x.Output.Writers.OfType<ViewNode>())
                .Select(x => x.View).ToList();

            var unattached = graph.Settings.Get<ViewEngines>().Views.Views.Where(x => x.ViewModel != null && !attachedViews.Contains(x));

            unattached.Each(v =>
            {
                var chain = BehaviorChain.ForWriter(new ViewNode(v));
                chain.IsPartialOnly = true;

                graph.AddChain(chain);
            });
        }
示例#50
0
        public void SetUp()
        {
            graph1 = new FubuRegistry(x =>
            {
                x.Route<InputModel>("method1/{Name}/{Age}")
                    .Calls<TestController>(c => c.AnotherAction(null)).OutputToJson();

                x.Route<InputModel>("method2/{Name}/{Age}")
                    .Calls<TestController>(c => c.AnotherAction(null)).OutputToJson();

                x.Route<InputModel>("method3/{Name}/{Age}")
                    .Calls<TestController>(c => c.AnotherAction(null)).OutputToJson();
            }).BuildGraph();

            chain = new BehaviorChain();
            graph1.AddChain(chain);

            graph2 = new FubuRegistry(x =>
            {
                x.Route<InputModel>("/root/{Name}/{Age}")
                    .Calls<TestController>(c => c.AnotherAction(null)).OutputToJson();
            }).BuildGraph();

            graph2.Import(graph1, "area1");
        }
        public void Configure(BehaviorGraph graph)
        {
            var action = ActionCall.For<AboutEndpoint>(x => x.get__about());
            var chain = new BehaviorChain();
            chain.AddToEnd(action);
            chain.Route = new RouteDefinition("_about");

            graph.AddChain(chain);
        }
示例#52
0
        private static void discoverChains(ConfigGraph config, BehaviorGraph graph)
        {
            var chainSources = config.Sources.Union(config.UniqueImports()).ToList();
            if (FubuMode.InDevelopment())
            {
                var aggregator = new ActionSourceAggregator(null);
                aggregator.Add(new RegisterAbout());

                chainSources.Add(aggregator);
            }

            var tasks =
                chainSources.Select(
                    x => {
                        return
                            Task.Factory.StartNew(() => { x.BuildChains(graph.Settings).Each(chain => graph.AddChain(chain)); });
                    }).ToArray();

            Task.WaitAll(tasks);
        }
示例#53
0
        public void should_throw_2151_if_the_input_type_has_multiple_possible_behavior_chains()
        {
            var graph = new BehaviorGraph(null);

            graph.AddChain(BehaviorChain.For<ControllerTarget>(x => x.OneInOneOut(null)));
            graph.AddChain(BehaviorChain.For<ControllerTarget>(x => x.OneInZeroOut(null)));

            Exception<FubuException>.ShouldBeThrownBy(() => { graph.IdForType(typeof (Model1)); }).ErrorCode.ShouldEqual
                (2151);
        }
示例#54
0
        public void when_there_is_only_one_chain_for_that_input_model()
        {
            var graph = new BehaviorGraph(null);

            BehaviorChain chain = BehaviorChain.For<ControllerTarget>(x => x.OneInOneOut(null));
            graph.AddChain(chain);
            graph.IdForType(typeof (Model1)).ShouldEqual(chain.UniqueId);
        }
示例#55
0
        public void SetUp()
        {
            graph = new BehaviorGraph(null);

            chain1 = BehaviorChain.For<ControllerTarget>(x => x.OneInOneOut(null));
            graph.AddChain(chain1);

            chain2 = BehaviorChain.For<ControllerTarget>(x => x.OneInZeroOut(null));
            graph.AddChain(chain2);
        }