public void Setup() { _transfer = new Models.Transfer() { TargetTouchpointId = "0000000002", Context = "some context" }; _request = new DefaultHttpRequest(new DefaultHttpContext()); _log = new Mock <ILogger>(); _resourceHelper = new Mock <IResourceHelper>(); _httpRequestMessageHelper = new Mock <IHttpRequestHelper>(); _validate = new Validate(); _postTransferHttpTriggerService = new Mock <IPostTransferHttpTriggerService>(); _jsonHelper = new JsonHelper(); _responseHelper = new HttpResponseMessageHelper(); _function = new PostTransferHttpTrigger.Function.PostTransferHttpTrigger(_resourceHelper.Object, _httpRequestMessageHelper.Object, _validate, _postTransferHttpTriggerService.Object, _responseHelper, _jsonHelper); }
public async Task PostTransferHttpTrigger_ReturnsStatusCodeUnprocessableEntity_WhenTransferHasFailedValidation() { // Arrange _httpRequestMessageHelper.Setup(x => x.GetDssTouchpointId(_request)).Returns("0000000001"); _httpRequestMessageHelper.Setup(x => x.GetDssApimUrl(_request)).Returns("http://localhost:7071/"); _httpRequestMessageHelper.Setup(x => x.GetResourceFromRequest <Models.Transfer>(_request)).Returns(Task.FromResult(_transfer)); var val = new Mock <IValidate>(); var validationResults = new List <ValidationResult> { new ValidationResult("interaction Id is Required") }; val.Setup(x => x.ValidateResource(It.IsAny <Models.Transfer>(), true)).Returns(validationResults); _function = new PostTransferHttpTrigger.Function.PostTransferHttpTrigger(_resourceHelper.Object, _httpRequestMessageHelper.Object, val.Object, _postTransferHttpTriggerService.Object, _responseHelper, _jsonHelper); // Act var result = await RunFunction(ValidCustomerId, ValidInteractionId); // Assert Assert.IsInstanceOf <HttpResponseMessage>(result); Assert.AreEqual((HttpStatusCode)422, result.StatusCode); }