public async Task GivenGlobalExceptionHandler_WhenBusinessExceptionRaised_IfErrorIsCritical_ShouldSendInternalServerError() { // assign var context = new DefaultHttpContext(); var parameters = new object[] { }; var ex = new BusinessException("Some Exception", BusinessErrors.Critical("Internal Server Error"), parameters); _requestDelegate.Invoke(Arg.Any <HttpContext>()).Returns(callInfo => throw ex); // act await _handler.Invoke(context); // assert AssertLogging(LogLevel.Error, ex.Message, ex); await AssertHttpResponse(context, HttpStatusCode.InternalServerError, ex.BusinessErrorMessage); }
public async Task <Member> SignUpMember(Member member) { if (!member.IsNew) { throw new BusinessException("Member {memberId} is not marked as new.", BusinessErrors.Critical("Member is not marked as new."), member.Id); } var memberExisted = await IsMemberExisted(member.Email); if (memberExisted) { var error = $"Cannot sign up member for email {member.Email}."; throw new BusinessException(error, BusinessErrors.BadRequest(error)); } await _memberDataAccessor.Create(member); return(member); }