Esempio n. 1
0
        /// <summary>
        /// Verifies all request expectations and unexpected requests.
        /// </summary>
        /// <param name="serverMock">The server.</param>
        /// <exception cref="HttpServerCallsVerificationException"></exception>
        public static void VerifyAllRequestExpectationsAndUnexpectedRequests(this HttpServerMock serverMock)
        {
            const string ErrorMessageFormat = "Request Uri: '{0}' | Request Method: '{1}' | Request Headers: '{2}' | Request Content: '{3}'";

            VerifyAllRequestExpectations(serverMock);

            if (serverMock.ServerRequestsState.UnexpectedRequests.Count > 0)
            {
                var errorMessageList = serverMock.ServerRequestsState.UnexpectedRequests.Select(
                    unexpected =>
                {
                    string serializedHeaders = string.Join(
                        "|",
                        unexpected.Headers.Select(
                            header => string.Concat(header.Key, " - ", string.Join(", ", header.Value))));

                    return(string.Format(
                               CultureInfo.InvariantCulture,
                               ErrorMessageFormat,
                               unexpected.RequestUri.AbsoluteUri,
                               unexpected.Method.ToString(),
                               serializedHeaders,
                               unexpected.Content));
                });

                string errorMessage = string.Concat(
                    "There were some unexpected requests: \r\n",
                    string.Join("\r\n", errorMessageList));

                throw new HttpServerCallsVerificationException(errorMessage);
            }
        }
Esempio n. 2
0
        private static RequestExpectation CreateHttpServerExpectation(HttpServerMock serverMock,
                                                                      HttpMethod requestMethod,
                                                                      string requetsUri,
                                                                      string name,
                                                                      uint times,
                                                                      HttpRequestContentType expectedContentType,
                                                                      object expectedRequestContent,
                                                                      IDictionary <string, string> expectedRequestHeaders,
                                                                      Func <HttpRequestMessage, bool> requestValidator)
        {
            var expectation = new RequestExpectation(requetsUri)
            {
                RequestHttpMethod          = requestMethod,
                ExpectedRequestContent     = expectedRequestContent,
                ExpectedRequestContentType = Helper.ParseRequestContentType(expectedContentType),
                Repeats          = times,
                RequestValidator = requestValidator,
                Name             = name
            };

            if (expectedRequestHeaders != null)
            {
                foreach (var expectedRequestHeader in expectedRequestHeaders)
                {
                    expectation.ExpectedRequestHeaders.Add(expectedRequestHeader.Key, expectedRequestHeader.Value);
                }
            }

            serverMock.ServerRequestsState.RequestExpectations.Add(expectation);

            return(expectation);
        }
Esempio n. 3
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="serverMock"></param>
        /// <param name="expectation"></param>
        /// <returns></returns>
        public static IRequestExpectation SetupExpectation(this HttpServerMock serverMock,
                                                           IRequestExpectation expectation)
        {
            serverMock.ServerRequestsState.AddExpectaction(expectation);

            return(expectation);
        }
Esempio n. 4
0
        private static IRequestExpectation CreateHttpServerExpectation(HttpServerMock serverMock,
                                                                       Method requestMethod,
                                                                       string requetsUri,
                                                                       string name,
                                                                       int times,
                                                                       string expectedContentType,
                                                                       IContent expectedRequestContent,
                                                                       IDictionary <string, string> expectedRequestHeaders,
                                                                       Func <Request, bool> requestValidator)
        {
            var expectation = new RequestExpectationBuilder()
                              .WithName(name)
                              .WithUri(requetsUri)
                              .WithMethod(requestMethod)
                              .WithNumberOfCalls(times)
                              .WithContentType(expectedContentType)
                              .WithContent(expectedRequestContent)
                              .WithValidator(requestValidator)
                              .WithHeaders(expectedRequestHeaders)
                              .Build();

            serverMock.ServerRequestsState.AddExpectaction(expectation);

            return(expectation);
        }
Esempio n. 5
0
            public void SetupHttpMock(int idToMock)
            {
                var path    = AppDomain.CurrentDomain.BaseDirectory;
                var file    = Path.Combine(path, "AnimeExamples", $"{idToMock}.html");
                var content = File.ReadAllText(file);

                HttpServerMock
                .Stub(x => x.Get($"/anime/{idToMock}"))
                .Return(content)
                .OK();
            }
Esempio n. 6
0
 /// <summary>
 /// Sets up post expectation.
 /// </summary>
 /// <param name="serverMock">The server.</param>
 /// <param name="requetsUri">The requets URI.</param>
 /// <param name="name">The name.</param>
 /// <param name="times">The times.</param>
 /// <returns></returns>
 public static RequestExpectation SetUpPostExpectation(
     this HttpServerMock serverMock,
     string requetsUri,
     string name = "",
     uint times  = 1)
 {
     return(CreateHttpServerExpectation(
                serverMock,
                HttpMethod.POST,
                requetsUri,
                name,
                times,
                HttpRequestContentType.None,
                null,
                null,
                null));
 }
Esempio n. 7
0
        /// <summary>
        /// Verifies all request expectations.
        /// </summary>
        /// <param name="serverMock">The server.</param>
        /// <exception cref="HttpServerCallsVerificationException"></exception>
        public static void VerifyAllRequestExpectations(this HttpServerMock serverMock)
        {
            const string ErrorMessageFormat = "Request Name:'{0}' | Request Uri: '{1}' | Request Method: '{2}' | Expected Request Headers: '{3}' | Expected Request Content: '{4}' | Expected Request Content Type: '{5}' | Expected Number Of Calls: '{6}' | Actual Number Of Calls: '{7}'";

            var uncompletedExpectations = serverMock.ServerRequestsState.RequestExpectations.Where(requestExpectation => !requestExpectation.Fulfilled).ToList();

            if (uncompletedExpectations.Any())
            {
                var errorMessageList = uncompletedExpectations.Select(expect =>
                {
                    string serializedHeaders = string.Join("|", expect.RequestHeaders.Select(header => string.Concat(header.Key, " - ", header.Value)));
                    string requestContent    = JsonConvert.SerializeObject(expect.Content);

                    return(new
                    {
                        Name = expect.Name,
                        Uri = (expect as UrlRequestExpectation)?.Uri.AbsolutePath,
                        Regex = (expect as RegexRequestExpectation)?.Regex,
                        Headers = serializedHeaders,
                        Method = expect.Method.ToString(),
                        Content = requestContent,
                        ContentType = expect.ContentType?.ToString(),
                        ExpectedNumberOfCalls = expect.ExpectedNumberOfCalls,
                        ActualNumberOfCalls = expect.ActualNumberOfCalls
                    });
                }).Select(
                    formattedExpect =>
                    string.Format(
                        CultureInfo.InvariantCulture,
                        ErrorMessageFormat,
                        formattedExpect.Name,
                        formattedExpect.Uri,
                        formattedExpect.Method,
                        formattedExpect.Headers,
                        formattedExpect.Content,
                        formattedExpect.ContentType,
                        formattedExpect.ExpectedNumberOfCalls,
                        formattedExpect.ActualNumberOfCalls));

                string errorMessage = string.Concat(
                    "Some requests expectations were not met: \r\n",
                    string.Join("\r\n", errorMessageList));

                throw new HttpServerCallsVerificationException(errorMessage);
            }
        }
Esempio n. 8
0
 /// <summary>
 /// Sets up post expectation.
 /// </summary>
 /// <param name="serverMock">The server.</param>
 /// <param name="requetsUri">The requets URI.</param>
 /// <param name="name">The name.</param>
 /// <param name="times">The times.</param>
 /// <returns></returns>
 public static IRequestExpectation SetUpPostExpectation(
     this HttpServerMock serverMock,
     string requetsUri,
     string name = "",
     int times   = 1)
 {
     return(CreateHttpServerExpectation(
                serverMock,
                Method.POST,
                requetsUri,
                name,
                times,
                "None",
                null,
                null,
                null));
 }
Esempio n. 9
0
 /// <summary>
 /// Sets up get expectation.
 /// </summary>
 /// <typeparam name="T"></typeparam>
 /// <param name="serverMock">The server.</param>
 /// <param name="requetsUri">The requets URI.</param>
 /// <param name="times">The times.</param>
 /// <param name="name">The name.</param>
 /// <param name="expectedContentType">Expected type of the content.</param>
 /// <param name="expectedRequestContent">Expected content of the request.</param>
 /// <param name="expectedRequestHeaders">The expected request headers.</param>
 /// <param name="requestValidator">The request validator.</param>
 /// <returns></returns>
 public static RequestExpectation SetUpGetExpectation <T>(
     this HttpServerMock serverMock,
     string requetsUri,
     uint times  = 1,
     string name = "",
     HttpRequestContentType expectedContentType = HttpRequestContentType.None,
     T expectedRequestContent = null,
     IDictionary <string, string> expectedRequestHeaders = null,
     Func <HttpRequestMessage, bool> requestValidator    = null) where T : class
 {
     return(CreateHttpServerExpectation(
                serverMock,
                HttpMethod.GET,
                requetsUri,
                name,
                times,
                expectedContentType,
                expectedRequestContent,
                expectedRequestHeaders,
                requestValidator));
 }
Esempio n. 10
0
 /// <summary>
 /// Sets up post expectation.
 /// </summary>
 /// <typeparam name="T"></typeparam>
 /// <param name="serverMock">The server.</param>
 /// <param name="requetsUri">The requets URI.</param>
 /// <param name="times">The times.</param>
 /// <param name="name">The name.</param>
 /// <param name="expectedContentType">Expected type of the content.</param>
 /// <param name="expectedRequestContent">Expected content of the request.</param>
 /// <param name="expectedRequestHeaders">The expected request headers.</param>
 /// <param name="requestValidator">The request validator.</param>
 /// <returns></returns>
 public static IRequestExpectation SetUpPostExpectation <T>(
     this HttpServerMock serverMock,
     string requetsUri,
     int times   = 1,
     string name = "",
     string expectedContentType = "None",
     T expectedRequestContent   = null,
     IDictionary <string, string> expectedRequestHeaders = null,
     Func <Request, bool> requestValidator = null) where T : class
 {
     return(CreateHttpServerExpectation(
                serverMock,
                Method.POST,
                requetsUri,
                name,
                times,
                expectedContentType,
                new Common.Model.StringContent(JsonConvert.SerializeObject(expectedRequestContent)),
                expectedRequestHeaders,
                requestValidator));
 }