Example #1
0
        public async Task <HttpRequestMessage> CreateMessage(string url,
                                                             Method method,
                                                             IDictionary <string, string> queryParams,
                                                             IDictionary <string, string> pathParams,
                                                             IDictionary <string, string> headerParams,
                                                             IGetAuthorisationHeaderStrategy authStrategy,
                                                             IAddContentToRequestService contentService,
                                                             object content)
        {
            var returnedMessage = new HttpRequestMessage();

            returnedMessage.Method     = method.ToHttpMethod();
            returnedMessage.RequestUri = _uriService.Generate(url,
                                                              pathParams,
                                                              queryParams);
            if (content != null)
            {
                contentService.AddContent(returnedMessage,
                                          content);
            }

            await _headersService.AddHeaders(returnedMessage,
                                             headerParams,
                                             authStrategy);

            return(returnedMessage);
        }
Example #2
0
        public async Task <HttpRequestMessage> CreateMessage(Endpoint endpoint,
                                                             TestEnvironment environment,
                                                             IDictionary <string, string> queryParams,
                                                             IDictionary <string, string> pathParams,
                                                             IDictionary <string, string> headerParams,
                                                             IGetAuthorisationHeaderStrategy authStrategy,
                                                             object content)
        {
            if (environment == null)
            {
                if (DefaultTestEnvironmentHolder.Environment == null)
                {
                    throw new ArgumentNullException("No test environment was supplied " +
                                                    "and there is no default " +
                                                    "test environment configured");
                }

                environment = DefaultTestEnvironmentHolder.Environment;
            }

            return(await CreateMessage(environment.BaseUrl + endpoint.Path,
                                       endpoint.Method,
                                       queryParams,
                                       pathParams,
                                       headerParams,
                                       authStrategy,
                                       _contentServiceFactory.GetService(endpoint),
                                       content));
        }
        public async Task AddHeaders(HttpRequestMessage request,
                                     IDictionary <string, string> headers,
                                     IGetAuthorisationHeaderStrategy authStrategy)
        {
            if (headers != null)
            {
                foreach (var header in headers)
                {
                    request.Headers.Add(header.Key, header.Value);
                }
            }

            if (authStrategy != null)
            {
                request.Headers.Add(HttpRequestHeader.Authorization.ToString(),
                                    new List <string> {
                    await authStrategy.GetHeader()
                });
            }
        }
        public async Task <ResponseContentModel> InvokeEndpoint(Endpoint endpoint,
                                                                TestEnvironment testEnvironment,
                                                                Hashtable queryParams,
                                                                Hashtable pathParams,
                                                                Hashtable headerParams,
                                                                IGetAuthorisationHeaderStrategy authStrategy,
                                                                object requestBody,
                                                                bool attemptDeserializeErrorContent = false)
        {
            var queryDict  = queryParams.AsStringStringDictionary();
            var pathDict   = pathParams.AsStringStringDictionary();
            var headerDict = headerParams.AsStringStringDictionary();

            _parameterCheckService.CheckRequiredParametersPresent(endpoint,
                                                                  queryDict,
                                                                  pathDict,
                                                                  headerDict);

            using (var request = await _createMessageService.CreateMessage(endpoint,
                                                                           testEnvironment,
                                                                           queryDict,
                                                                           pathDict,
                                                                           headerDict,
                                                                           authStrategy,
                                                                           requestBody))
            {
                var responseModel = await _apiResponseService.ReturnContent(request,
                                                                            endpoint.SuccessResponseBody?.Type,
                                                                            attemptDeserializeErrorContent?
                                                                            typeof(object) :
                                                                            null);

                _responseRecorder.RecordIfRequired(responseModel);

                return(responseModel);
            }
        }