示例#1
0
        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);
        }
示例#2
0
        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);
        }