private BehaviorGraph CreateGraph <T>()
        {
            var graph = new BehaviorGraph();

            graph.AddActionFor("/", typeof(T));
            graph.AddActionFor("/", typeof(T));
            return(graph);
        }
        public void Configure(BehaviorGraph graph)
        {
            //add resource discovery action and force it to return JSON
            graph.AddActionFor("api", typeof(SwaggerUIAction));

            ////TODO should this route '/api' be configurable?
            //add resource discovery action and force it to return JSON
            graph.AddActionFor("api/resources.json", typeof(ResourceDiscoveryAction)).MakeAsymmetricJson();

            //add resource action and force it to return JSON
            graph.AddActionFor("api/{GroupKey}.json", typeof(ResourceAction)).MakeAsymmetricJson();
        }
        public void Configure(BehaviorGraph graph)
        {
            //add resource discovery action and force it to return JSON
            graph.AddActionFor("api", typeof(SwaggerUIAction));

            ////TODO should this route '/api' be configurable?
            //add resource discovery action and force it to return JSON
            graph.AddActionFor("api/resources.json", typeof(ResourceDiscoveryAction)).MakeAsymmetricJson();

            //add resource action and force it to return JSON
            graph.AddActionFor("api/{GroupKey}.json", typeof(ResourceAction)).MakeAsymmetricJson();
        }
Example #4
0
        // TODO: Find a way to make this easier in Fubu")]
        private static void addEndpointsFor(Type entityType, BehaviorGraph graph)
        {
            graph.AddActionFor("{0}/find/{{Id}}".ToFormat(entityType.Name.ToLower()), typeof(DomainEntityFinder<>), entityType)
                .UrlCategory.Category = Categories.FIND;

            var finderForwarder = typeof(EntityFinderForwarder<>).CloseAndBuildAs<IChainForwarder>(entityType);
            graph.AddForwarder(finderForwarder);

            graph.AddActionFor("{0}/editproperty".ToFormat(entityType.Name).ToLower(), typeof(IPropertyUpdater<>), entityType)
                .UrlCategory.Category = Categories.PROPERTY_EDIT;

            var propertyForwarder = typeof(PropertyUpdaterForwarder<>).CloseAndBuildAs<IChainForwarder>(entityType);
            graph.AddForwarder(propertyForwarder);
        }
        public void Given()
        {
            var graph = new BehaviorGraph();
            var chain = graph.AddActionFor("api/action1/{input}/", typeof(Action1));

            _route = chain.Route;
        }
        public void Given()
        {
            var graph = new BehaviorGraph();
            var chain = graph.AddActionFor("api/action1/{input}/", typeof(Action1));

            _route = chain.Route;
        }
        private static IEnumerable <ActionCall> getAPIActions()
        {
            var graph = new BehaviorGraph();

            graph.AddActionFor("api/group1/{input}", typeof(Action1));
            graph.AddActionFor("api/group2/{input}", typeof(Action1));
            graph.AddActionFor("api/group2/foo/", typeof(Action1));
            graph.AddActionFor("api/group3", typeof(Action1));
            graph.AddActionFor("api/group3/foobar", typeof(Action1));
            graph.AddActionFor("api/group3/{input}", typeof(Action1));
            graph.AddActionFor("home", typeof(Action1));
            graph.AddActionFor("home/foo", typeof(Action1));
            graph.AddActionFor("home/foo/baz", typeof(Action1));
            graph.AddActionFor("bar", typeof(Action1));

            return(graph.Actions());
        }
Example #8
0
        // TODO: Find a way to make this easier in Fubu")]
        private static void addEndpointsFor(Type entityType, BehaviorGraph graph)
        {
            graph.AddActionFor("{0}/find/{{Id}}".ToFormat(entityType.Name.ToLower()), typeof(DomainEntityFinder <>), entityType)
            .UrlCategory.Category = Categories.FIND;

            var finderForwarder = typeof(EntityFinderForwarder <>).CloseAndBuildAs <IChainForwarder>(entityType);

            graph.AddForwarder(finderForwarder);


            graph.AddActionFor("{0}/editproperty".ToFormat(entityType.Name).ToLower(), typeof(IPropertyUpdater <>), entityType)
            .UrlCategory.Category = Categories.PROPERTY_EDIT;

            var propertyForwarder = typeof(PropertyUpdaterForwarder <>).CloseAndBuildAs <IChainForwarder>(entityType);

            graph.AddForwarder(propertyForwarder);
        }
        public void Given()
        {
            var graph = new BehaviorGraph();
            var chain = graph.AddActionFor("api/action1/{input}/", typeof (Action1));

            _route = chain.Route;
            _property = ReflectionHelper.GetProperty<ActionRequest>(a => a.redfish);

            _result = ActionCallMapper.createParameter(_property, _route);
        }
Example #10
0
        public void Given()
        {
            var graph = new BehaviorGraph();
            var chain = graph.AddActionFor("api/action1/{input}/", typeof(Action1));

            _route    = chain.Route;
            _property = ReflectionHelper.GetProperty <ActionRequest>(a => a.redfish);

            _result = ActionCallMapper.createParameter(_property, _route);
        }
        public void Given()
        {
            var cut = new ActionCallMapper(new TypeDescriptorCache());

            var graph = new BehaviorGraph();
            var chain = graph.AddActionFor("api/group1/{input}", typeof(Action1));
            chain.Route.AddHttpMethodConstraint("POST");
            var action = graph.Actions().First();

            _result = cut.GetSwaggerOperations(action).First();
        }
        public void Given()
        {
            var cut = new ActionCallMapper(new TypeDescriptorCache());

            var graph = new BehaviorGraph();
            var chain = graph.AddActionFor("api/group1/{input}", typeof(Action1));

            chain.Route.AddHttpMethodConstraint("POST");
            var action = graph.Actions().First();

            _result = cut.GetSwaggerOperations(action).First();
        }
        private static BehaviorGraph AddAction(BehaviorGraph graph, Type type, string verb = null, string thisNamespace = null)
        {
            var route  = type.GetHandlerUrl(thisNamespace ?? type.Assembly.FullName);
            var chain  = graph.AddActionFor(route, type);
            var method = verb ?? (type.Name.EndsWith("Handler") ? type.GetHandlerVerb() : null);

            if (method != null)
            {
                chain.Route.AddHttpMethodConstraint(method);
            }
            return(graph);
        }
Example #14
0
        public void add_a_simple_open_type()
        {
            var graph = new BehaviorGraph();
            var chain = graph.AddActionFor("go/{Id}", typeof(Action2 <>), typeof(string));

            chain.FirstCall().HandlerType.ShouldEqual(typeof(Action2 <string>));
            chain.FirstCall().Method.Name.ShouldEqual("Go");
            chain.Route.Pattern.ShouldEqual("go/{Id}");
            chain.Route.Input.ShouldBeOfType <RouteInput <ArgModel> >();
            chain.Route.CreateUrlFromInput(new ArgModel {
                Id = 5
            }).ShouldEqual("go/5");

            graph.Behaviors.Count().ShouldEqual(1);
        }
Example #15
0
        public void add_a_simple_closed_type()
        {
            var graph = new BehaviorGraph();
            var chain = graph.AddActionFor("go/{Id}", typeof(Action1));

            chain.FirstCall().HandlerType.ShouldEqual(typeof(Action1));
            chain.FirstCall().Method.Name.ShouldEqual("Go");
            chain.Route.ShouldBeOfType <RouteDefinition <ArgModel> >().Pattern.ShouldEqual("go/{Id}");
            chain.Route.CreateUrlFromInput(new ArgModel()
            {
                Id = 5
            }).ShouldEqual("go/5");

            graph.BehaviorChainCount.ShouldEqual(1);
        }
 public void Given()
 {
     var graph = new BehaviorGraph();
     _route = graph.AddActionFor("api/group1/{input}", typeof (Action1)).Route;
 }
        public void Given()
        {
            var graph = new BehaviorGraph();

            _route = graph.AddActionFor("api/group1/{input}", typeof(Action1)).Route;
        }