Пример #1
0
        public static void Startup <TRegistrationClass>(
            HttpConfiguration configuration,
            IAuthorizationProvider authorizationProvider  = null,
            IDependencyResolver dependencyResolver        = null,
            IList <IMessageSerializer> messageSerializers = null)
            where TRegistrationClass : IHateoasRegistrationProfile, new()
        {
            var configurationWrapper = new HttpConfigurationWrapper(configuration);

            Startup <TRegistrationClass>(
                configurationWrapper,
                authorizationProvider,
                dependencyResolver,
                messageSerializers);
        }
Пример #2
0
        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);
        }