public void when_updateexistingprocessdocument_method_is_called_then_it_returns_a_success_response()
        {
            //arrange
            int expectedStatusCode = 200;
            var request            = new UpdateProcessDataRequest()
            {
                processDataToUpdate = new MatUpdateProcessData()
            };
            var response = new UpdateProcessDataResponse(request, new MatProcessData(), DateTime.Now);

            _mockValidatorUpdate.Setup(x => x.Validate(request)).Returns(new FV.ValidationResult());
            _mockUsecase.Setup(x => x.ExecuteUpdate(request)).Returns(response);
            //act
            var controllerResponse = _processDataController.UpdateExistingProcessDocument(request);
            var okResult           = (OkObjectResult)controllerResponse;
            var actualStatusCode   = okResult.StatusCode;

            //assert
            Assert.NotNull(controllerResponse);
            Assert.NotNull(okResult);
            Assert.AreEqual(expectedStatusCode, actualStatusCode);
        }
        public void given_an_update_object_when_update_process_data_method_is_called_the_controller_returns_correct_json_response()
        {
            //arange
            var matProcessData = new MatUpdateProcessData();

            //add fields to be updated
            matProcessData.ProcessData = new
            {
                firstField  = faker.Random.Word(),
                anyField    = faker.Random.Words(),
                numberField = faker.Random.Number()
            };
            //set up Guid to filder by
            var processRef = faker.Random.Guid().ToString();

            var request = new UpdateProcessDataRequest()
            {
                processRef = processRef, processDataToUpdate = matProcessData
            };
            var response = new UpdateProcessDataResponse(request, new MatProcessData(), DateTime.Now);

            _mockValidatorUpdate.Setup(x => x.Validate(request)).Returns(new FV.ValidationResult());
            _mockUsecase.Setup(x => x.ExecuteUpdate(request)).Returns(response);
            //act
            var actualResponse = _processDataController.UpdateExistingProcessDocument(request);
            var okResult       = (OkObjectResult)actualResponse;
            var resultContent  = (UpdateProcessDataResponse)okResult.Value;

            //assert
            Assert.NotNull(actualResponse);
            Assert.NotNull(okResult);
            Assert.IsInstanceOf <UpdateProcessDataResponse>(resultContent);
            Assert.NotNull(resultContent);
            Assert.AreEqual(JsonConvert.SerializeObject(response), JsonConvert.SerializeObject(resultContent));
            Assert.AreEqual(200, okResult.StatusCode);
        }