public void postInitialProcessDocument_controller_method_end_to_end_test_with_a_valid_request() //testing regular response { //arrange PostInitialProcessDocumentRequest requestObject = MatProcessDataHelper.CreatePostInitialProcessDocumentRequestObject(); var expectedResponse = new PostInitialProcessDocumentResponse(requestObject, requestObject.processRef, DateTime.Now); //act var controllerResponse = _processDataController.PostInitialProcessDocument(requestObject); var result = (ObjectResult)controllerResponse; var resultContent = (PostInitialProcessDocumentResponse)result.Value; //assert //check if the doc got inserted var documentFromDB = BsonSerializer.Deserialize <MatProcessData>(_dbcontext.getCollection().FindAsync(Builders <BsonDocument> .Filter.Eq("_id", requestObject.processRef)).Result.FirstOrDefault()); Assert.NotNull(documentFromDB); Assert.AreEqual(requestObject.processRef, documentFromDB.Id); Assert.NotNull(documentFromDB.ProcessType); Assert.AreEqual(requestObject.processType.value, documentFromDB.ProcessType.value); Assert.AreEqual(requestObject.processType.name, documentFromDB.ProcessType.name); Assert.AreEqual(requestObject.processDataSchemaVersion, documentFromDB.ProcessDataSchemaVersion); //check the controller response Assert.NotNull(controllerResponse); Assert.IsInstanceOf <ObjectResult>(result); Assert.NotNull(result); Assert.IsInstanceOf <PostInitialProcessDocumentResponse>(result.Value); Assert.NotNull(result.Value); Assert.AreEqual(expectedResponse.ProcessRef, resultContent.ProcessRef); Assert.AreEqual(expectedResponse.Request.processRef, resultContent.Request.processRef); //check status code Assert.AreEqual(201, result.StatusCode); }
public void given_a_valid_postInitialProcessDocumentRequest_when_postInitialProcessDocument_controller_method_is_called_then_the_controller_returns_correct_json_response() { //arange PostInitialProcessDocumentRequest requestObject = MatProcessDataHelper.CreatePostInitialProcessDocumentRequestObject(); _mockValidatorPost.Setup(v => v.Validate(It.IsAny <PostInitialProcessDocumentRequest>())).Returns(new FV.ValidationResult()); //set up mock validation to return Validation with no errors. var expectedResponse = new PostInitialProcessDocumentResponse(requestObject, requestObject.processRef, DateTime.Now); _mockUsecase.Setup(g => g.ExecutePost(It.IsAny <PostInitialProcessDocumentRequest>())).Returns(expectedResponse); ////act var actualResponse = _processDataController.PostInitialProcessDocument(requestObject); var result = (ObjectResult)actualResponse; var resultContent = (PostInitialProcessDocumentResponse)result.Value; ////assert Assert.NotNull(actualResponse); Assert.NotNull(result); Assert.IsInstanceOf <PostInitialProcessDocumentResponse>(resultContent); Assert.NotNull(resultContent); Assert.AreEqual(expectedResponse.ProcessRef, resultContent.ProcessRef); Assert.AreEqual(expectedResponse.GeneratedAt, resultContent.GeneratedAt); Assert.AreEqual(expectedResponse.Request.processRef, resultContent.Request.processRef); Assert.AreEqual(JsonConvert.SerializeObject(expectedResponse), JsonConvert.SerializeObject(resultContent)); }
public IActionResult PostInitialProcessDocument([FromBody] PostInitialProcessDocumentRequest request) { //validate request var isRequestValid = _postValidator.Validate(request); if (isRequestValid.IsValid) { try { PostInitialProcessDocumentResponse usecaseResponse = _processDataUsecase.ExecutePost(request); return(StatusCode(201, usecaseResponse)); } catch (ConflictException ex) { return(Conflict("An error inserting an object with duplicate key has occured - " + ex.InnerException)); } catch (Exception ex) { return(StatusCode(500, "An error has occurred - " + ex.InnerException)); } } return(BadRequest(isRequestValid.Errors)); }