public void Given_an_unexpected_exception_is_thrown_in_the_GetByPropRefValidator__When_GetAractionsByPropRef_ArrearsActionController_method_is_called__Then_controller_returns_500_status_code_response()
        {
            //Arrange
            var random_expected_exception = ErrorThrowerHelper.Generate_Error();

            _mockGetByPropRefValidator.Setup(v => v.Validate(It.IsAny <GetAractionsByPropRefRequest>())).Throws(random_expected_exception);

            //Act
            var response        = _controllerUnderTest.GetAractionsByPropRef(null);
            var response_result = (ObjectResult)response;

            //Assert
            Assert.NotNull(response);
            Assert.NotNull(response_result);
            Assert.AreEqual(500, response_result.StatusCode);
        }
        public void Given_an_unexpected_exception_is_thrown__When_GetAractionsByPropRef_ArrearsActionController_method_is_called__Then_controller_returns_an_Error_response()
        {
            //arrange
            TestHelper.SetUp_MockValidatorSuccessResponse(_mockGetByPropRefValidator);

            var random_expected_exception = ErrorThrowerHelper.Generate_Error();

            _mockUsecase.Setup(u => u.GetByPropRef(It.IsAny <GetAractionsByPropRefRequest>())).Throws(random_expected_exception);

            //act
            var response         = _controllerUnderTest.GetAractionsByPropRef(null);
            var response_result  = response as ObjectResult;
            var response_content = response_result.Value;

            //assert
            Assert.NotNull(response);
            Assert.NotNull(response_result);
            Assert.IsInstanceOf <ErrorResponse>(response_content);
            Assert.NotNull(response_content);
        }
        public void Given_a_NotFoundException_exception_is_thrown_within_deeper_flow__When_GetAractionsByPropRef_ArrearsActionController_method_is_called__Then_controller_returns_corresponding_error_message()
        {
            //arrange
            TestHelper.SetUp_MockValidatorSuccessResponse(_mockGetByPropRefValidator);
            var random_expected_error_message = ErrorThrowerHelper.Generate_Error().Message;
            var not_found_exception           = new NotFoundException(random_expected_error_message);

            _mockUsecase.Setup(u => u.GetByPropRef(It.IsAny <GetAractionsByPropRefRequest>())).Throws(not_found_exception);

            //act
            var response = _controllerUnderTest.GetAractionsByPropRef(null);

            var response_result  = response as ObjectResult;
            var response_content = response_result.Value as ErrorResponse;

            //assert

            Assert.NotNull(response_content);

            var actual_error_message = response_content.Errors.FirstOrDefault();

            Assert.AreEqual(random_expected_error_message, actual_error_message);
        }