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); }
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>()); }
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"]); }
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"]); }
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>()); }
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); }