Esempio n. 1
0
        public void ResponseMessageIsLoggedForSuccessfulResponses()
        {
            // Arrange
            INLogger _logger        = Substitute.For <INLogger>();
            var      configSettings = new Settings {
                RequestCorrelationIdIsRequired = true
            };
            var pipelineHelper = TestSetup.SetupPipelineHelper(configSettings, logger: _logger);

            var responseBody = new JObject();

            responseBody.Add("Batman", "Begins");

            var response = new Nancy.Response()
            {
                StatusCode = Nancy.HttpStatusCode.OK,
                Contents   = stream =>
                {
                    using (var writer = new StreamWriter(stream))
                    {
                        writer.Write(responseBody);
                    }
                }
            };

            // Act
            pipelineHelper.LogAndFormatResponse(response);

            // Assert
            _logger.Received(1).Trace(Arg.Any <string>(), Arg.Any <Exception>(), Arg.Any <Guid>());
            Assert.AreEqual(Nancy.HttpStatusCode.OK, response.StatusCode);
        }
Esempio n. 2
0
        public void ErrorMessageIsLogged()
        {
            // Arrange
            INLogger _logger        = Substitute.For <INLogger>();
            var      pipelineHelper = TestSetup.SetupPipelineHelper(logger: _logger);

            // Act
            pipelineHelper.LogError(new Exception());

            // Assert
            _logger.Received(1).Error(Arg.Any <string>(), Arg.Any <Exception>(), Arg.Any <Guid>());
        }
Esempio n. 3
0
        public void ErrorResponseMessageIsLoggedAndSuppliedErrorCodeReturnedToUser()
        {
            // Arrange
            INLogger _logger        = Substitute.For <INLogger>();
            var      pipelineHelper = TestSetup.SetupPipelineHelper(logger: _logger);

            // Act
            var actual = pipelineHelper.BuildErrorResponse(ErrorCode.CORRELATIONID_REQUIRED.ToString());

            var actualPayload = Utils.ResponseToJObject(actual);

            // Assert
            _logger.Received(1).Trace(Arg.Any <string>(), Arg.Any <Exception>(), Arg.Any <Guid>());
            Assert.AreEqual(1, actualPayload["Errors"].ToList().Count);
            Assert.AreEqual(ErrorCode.CORRELATIONID_REQUIRED.ToString(), actualPayload["Errors"].ToList()[0]["ErrorCode"]);
            Assert.AreEqual("CorrelationId must be passed.", actualPayload["Errors"].ToList()[0]["ErrorMessage"]);
        }
Esempio n. 4
0
        public void ErrorResponseMessageIsLoggedAndErrorDefaultsWhenWnexpectedMessageSupplied()
        {
            // Arrange
            INLogger _logger        = Substitute.For <INLogger>();
            var      pipelineHelper = TestSetup.SetupPipelineHelper(logger: _logger);

            // Act
            var actual = pipelineHelper.BuildErrorResponse("Something went wrong");

            var actualPayload = Utils.ResponseToJObject(actual);

            // Assert
            _logger.Received(1).Trace(Arg.Any <string>(), Arg.Any <Exception>(), Arg.Any <Guid>());
            Assert.AreEqual(1, actualPayload["Errors"].ToList().Count);
            Assert.AreEqual(ErrorCode.UNEXPECTED_ERROR.ToString(), actualPayload["Errors"].ToList()[0]["ErrorCode"]);
            Assert.AreEqual("An unexpected error has occurred. Please try again later.", actualPayload["Errors"].ToList()[0]["ErrorMessage"]);
        }
Esempio n. 5
0
        public void RequestMessageIsLogged()
        {
            // Arrange
            INLogger _logger        = Substitute.For <INLogger>();
            var      pipelineHelper = TestSetup.SetupPipelineHelper(logger: _logger);

            var requestBody = new JObject();

            requestBody.Add("Batman", "Begins");

            var request = Entities.GenerateNancyRequest(body: requestBody);

            // Act
            pipelineHelper.LogRequest(request);

            // Assert
            _logger.Received(1).Trace(Arg.Any <string>(), Arg.Any <Exception>(), Arg.Any <Guid>());
        }
Esempio n. 6
0
        public void ResponseMessageIsLoggedForResponsesContainingErrors()
        {
            // Arrange
            INLogger _logger        = Substitute.For <INLogger>();
            var      configSettings = new Settings {
                RequestCorrelationIdIsRequired = true
            };
            var pipelineHelper = TestSetup.SetupPipelineHelper(configSettings, logger: _logger);

            var responseBody = JsonSerializer.ToJson(new
            {
                Batman = "Begins",
                Errors = new List <object> {
                    new {
                        ErrorCode    = "ErrorCode",
                        ErrorMessage = "ErrorMessage"
                    }
                }
            });

            var response = new Nancy.Response()
            {
                StatusCode = Nancy.HttpStatusCode.OK,
                Contents   = stream =>
                {
                    using (var writer = new StreamWriter(stream))
                    {
                        writer.Write(responseBody);
                    }
                }
            };

            // Act
            pipelineHelper.LogAndFormatResponse(response);

            // Assert
            _logger.Received(1).Trace(Arg.Any <string>(), Arg.Any <Exception>(), Arg.Any <Guid>());
            Assert.AreEqual(Nancy.HttpStatusCode.BadRequest, response.StatusCode);
        }