public async Task <IHttpActionResult> Resume(string id) { ResumeUserResponse response = null; try { response = await _orchestrator.Resume(id); } catch (Exception e) { return(InternalServerError()); } if (response.HasError) { var modelState = new ModelStateDictionary(); response.Errors.ToList().ForEach(error => modelState.AddModelError(error.Key, error.Value)); return(BadRequest(modelState)); } if (string.IsNullOrEmpty(response.Id)) { return(NotFound()); } return(Ok(response)); }
public async Task ThenNoErrorsAreReturned_WhenTheRequestIsValid() { var userId = "ABC123"; var resourceUri = $"api/users/{userId}/resume"; var expectedResult = new ResumeUserResponse { Id = userId, Errors = new Dictionary <string, string>() }; HttpClient.Setup(x => x.PostAsync($"{Configuration.ApiBaseUrl}{resourceUri}", It.IsAny <HttpContent>())) .ReturnsAsync(JsonConvert.SerializeObject(expectedResult)); var response = await Client.ResumeUser(userId); HttpClient.Verify(x => x.PostAsync($"{Configuration.ApiBaseUrl}{resourceUri}", It.IsAny <HttpContent>()), Times.Once); response.ShouldBeEquivalentTo(expectedResult); }