public async Task UriMaker_is_ctor_injected_using_Autofac() { var config = new HttpConfiguration(); // Autofac var builder = new ContainerBuilder(); builder.RegisterApiControllers(Assembly.GetExecutingAssembly()); // Web API routes var uriMakerContext = config.MapHttpAttributeRoutesAndUseUriMaker(); builder.RegisterInstance(uriMakerContext).ExternallyOwned(); builder.RegisterHttpRequestMessage(config); builder.RegisterGeneric(typeof(UriMaker<>)).AsSelf().InstancePerRequest(); var container = builder.Build(); var resolver = new AutofacWebApiDependencyResolver(container); config.DependencyResolver = resolver; var client = new HttpClient(new HttpServer(config)); var res = await client.GetAsync("http://www.example.net/api/autofac/resources"); Assert.Equal(HttpStatusCode.OK,res.StatusCode); var body = await res.Content.ReadAsAsync<ResourceState>(); Assert.Equal("http://www.example.net/api/autofac/resources", body.self.ToString()); Assert.Equal("http://www.example.net/api/autofac/resources?page=1&count=10", body.next.ToString()); Assert.Equal("http://www.example.net/api/autofac/resources/0", body.first.ToString()); Assert.Equal("http://www.example.net/api/autofac/resources/0?detailed=True", body.first_alternative.ToString()); }
public UriMakerTests() { var config = new HttpConfiguration(); var factory = config.MapHttpAttributeRoutesAndUseUriMaker(new DefaultDirectRouteProvider()); config.EnsureInitialized(); var req = new HttpRequestMessage(HttpMethod.Get,"http://example.org"); req.SetConfiguration(config); _urlHelper = new UrlHelper(req); _uriMaker = factory.NewUriMakerFor<ResourceController>(req); }
private static void RegisterDrum( HttpConfiguration config, ContainerBuilder builder ) { // Web API routes UriMakerContext uriMakerContext = config.MapHttpAttributeRoutesAndUseUriMaker(); builder.RegisterInstance( uriMakerContext ).ExternallyOwned(); builder.RegisterHttpRequestMessage( config ); builder.RegisterGeneric( typeof( UriMaker<> ) ).AsSelf().InstancePerRequest(); builder.RegisterType<DrumUrlProvider>().As<IUrlProvider>(); }
public void Configuration(IAppBuilder appBuilder) { var config = new HttpConfiguration(); //TODO map '/api' route to handle redirections config.EnableCors(); config.MapHttpAttributeRoutesAndUseUriMaker(); ConfigFormaters(config); appBuilder.UseWebApi(config); }
public static void Register(HttpConfiguration config) { // Web API configuration and services // Web API routes config.MapHttpAttributeRoutesAndUseUriMaker(); config.Routes.MapHttpRoute( name: "DefaultApi", routeTemplate: "api/{controller}/{id}", defaults: new { id = RouteParameter.Optional } ); config.Formatters.Remove(config.Formatters.XmlFormatter); }
public async Task UriMaker_is_ctor_injected_using_Autofac() { var config = new HttpConfiguration(); // Web API routes config.MapHttpAttributeRoutesAndUseUriMaker(new TypedDirectRouteProvider()); config.TypedRoute("api/typedroutes/resources", r => r.Action<TypedRoutesController>(c => c.GetAll())); config.TypedRoute("api/typedroutes/resources", r => r.Action<TypedRoutesController>(c => c.GetPaged(Param.Any<int>(), Param.Any<int>()))); config.TypedRoute("api/typedroutes/resources/{id:int}", r => r.Action<TypedRoutesController>(c => c.GetById(Param.Any<int>()))); config.TypedRoute("api/typedroutes/resources/{id:int}", r => r.Action<TypedRoutesController>(c => c.GetByIdDetailed(Param.Any<int>(), Param.Any<bool>()))); var client = new HttpClient(new HttpServer(config)); var res = await client.GetAsync("http://www.example.net/api/typedroutes/resources"); Assert.Equal(HttpStatusCode.OK, res.StatusCode); var body = await res.Content.ReadAsAsync<ResourceState>(); Assert.Equal("http://www.example.net/api/typedroutes/resources", body.self.ToString()); Assert.Equal("http://www.example.net/api/typedroutes/resources?page=1&count=10", body.next.ToString()); Assert.Equal("http://www.example.net/api/typedroutes/resources/0", body.first.ToString()); Assert.Equal("http://www.example.net/api/typedroutes/resources/0?detailed=True", body.first_alternative.ToString()); }
public async Task UriMaker_is_ctor_injected_using_Unity() { var config = new HttpConfiguration(); config.IncludeErrorDetailPolicy = IncludeErrorDetailPolicy.Always; // Web API routes var uriMakerContext = config.MapHttpAttributeRoutesAndUseUriMaker(); // Unity var container = new UnityContainer(); container.RegisterType(typeof(UriMaker<>), typeof(UriMaker<>), new InjectionConstructor(typeof(UriMakerContext), typeof(HttpRequestMessage))); container.RegisterType<CurrentRequest, CurrentRequest>(new HierarchicalLifetimeManager()); ; container.RegisterInstance(uriMakerContext); container.RegisterType<HttpRequestMessage>( new HierarchicalLifetimeManager(), new InjectionFactory( c => c.Resolve<CurrentRequest>().Value)); config.DependencyResolver = new UnityDependencyResolver(container); config.MessageHandlers.Add(new CurrentRequestHandler()); //builder.RegisterInstance(uriMakerContext).ExternallyOwned(); //builder.RegisterHttpRequestMessage(config); //builder.RegisterGeneric(typeof(UriMaker<>)).AsSelf().InstancePerRequest(); var client = new HttpClient(new HttpServer(config)); var res = await client.GetAsync("http://www.example.net/api/unity/resources"); if (res.StatusCode != HttpStatusCode.OK) { Console.WriteLine(await res.Content.ReadAsStringAsync()); } Assert.Equal(HttpStatusCode.OK,res.StatusCode); var body = await res.Content.ReadAsAsync<ResourceState>(); Assert.Equal("http://www.example.net/api/unity/resources", body.self.ToString()); Assert.Equal("http://www.example.net/api/unity/resources?page=1&count=10", body.next.ToString()); Assert.Equal("http://www.example.net/api/unity/resources/0", body.first.ToString()); Assert.Equal("http://www.example.net/api/unity/resources/0?detailed=True", body.first_alternative.ToString()); }
public MultipleRouteTests() { _config = new HttpConfiguration(); _factory = _config.MapHttpAttributeRoutesAndUseUriMaker(new DefaultDirectRouteProvider(), Selector); _config.EnsureInitialized(); }
public RouteDataPropagationTests() { _config = new HttpConfiguration(); _factory = _config.MapHttpAttributeRoutesAndUseUriMaker(new DefaultDirectRouteProvider()); _config.EnsureInitialized(); }