public ConfigurationProvider(IHttpConfiguration httpConfiguration, ILinkFactory linkFactory, IConfigurationProviderGetLinksForFuncProvider linksForFuncProvider, ICache <Type, Func <ConfigurationProvider, object, IEnumerable <IHateoasLink> > > getLinksForMethodCache) { _httpConfiguration = httpConfiguration; _linkFactory = linkFactory; _linksForFuncProvider = linksForFuncProvider; _getLinksForMethodCache = getLinksForMethodCache; }
public void BaseTestInitialize() { // registration _httpConfiguration = new HttpConfiguration(); _httpConfigurationWrapper = new HttpConfigurationWrapper(_httpConfiguration); _authorizationProviderMock = new Mock <IAuthorizationProvider>(MockBehavior.Strict); _authorizationProviderMock.Setup(a => a.IsAuthorized(It.IsAny <MethodInfo>())).Returns(true); _dependencyResolver = new Mock <IDependencyResolver>(MockBehavior.Strict); RegistrationClass = new TestRegistrationClass(); // request & response Request = new HttpRequestMessage(HttpMethod.Get, "http://hateoas.net"); Request.Headers.Accept.Add(MediaTypeWithQualityHeaderValue.Parse("application/json")); Request.Properties.Add(HttpPropertyKeys.HttpConfigurationKey, _httpConfigurationWrapper.HttpConfiguration); Response = new HttpResponseMessage(HttpStatusCode.OK); // handling var idFromExpressionProcessor = new IdFromExpressionProcessor(_dependencyResolver.Object); var argumentsDefinitionsProcessor = new ArgumentDefinitionsProcessor(); var templateArgumentsProcessor = new TemplateArgumentsProcessor(); var inMemoryGenericLinksForMethodsCache = new InMemoryCache <int, MethodInfo>(); _linksForFuncProvider = new ConfigurationProviderGetLinksForFuncProvider(inMemoryGenericLinksForMethodsCache); var linkBuilderFactory = new LinkBuilderFactory(); _linkFactory = new LinkFactory( linkBuilderFactory: linkBuilderFactory, authorizationProvider: _authorizationProviderMock.Object, idFromExpressionProcessor: idFromExpressionProcessor, argumentsDefinitionsProcessor: argumentsDefinitionsProcessor, templateArgumentsProcessor: templateArgumentsProcessor ); _getLinksForMethodCache = new InMemoryCache <Type, Func <ConfigurationProvider, object, IEnumerable <IHateoasLink> > >(); _configurationProvider = new ConfigurationProvider(_httpConfigurationWrapper, _linkFactory, _linksForFuncProvider, _getLinksForMethodCache); _responseProvider = new ResponseProvider(_configurationProvider); }