public void ShouldThrowCanNotSendEmailException()
        {
            var user = new User()
            {
                Id    = Guid.NewGuid(),
                Email = "*****@*****.**"
            };
            var link      = "link";
            var clientUrl = "url";
            var subject   = "subject";
            var body      = "body";
            var token     = "token";

            var response = SendGridHelper.GetEmptyResponse(System.Net.HttpStatusCode.BadRequest);

            _mock.Mock <IClientUriService>()
            .Setup(x => x.BuildUri(clientUrl, new NameValueCollection()
            {
                { "userId", user.Id.ToString() },
                { "code", token },
            }))
            .Returns(link);

            _mock.Mock <IEmailService>()
            .Setup(x => x.SendAsync(It.Is <SendSingleEmailRequest>(request => request.Email == user.Email && request.Subject == subject && request.Content == body)))
            .ReturnsAsync(response);

            var expected = new CanNotSendEmailException(response.StatusCode.ToString());

            ExceptionAssert.ThrowsAsync(expected, () => _service.GenerateAndSendTokenAsync(user, token, clientUrl, subject, body));
        }
        public async Task ShouldThrowException()
        {
            var employeeId = Guid.NewGuid();
            var exception  = new CanNotSendEmailException("ERROR");
            var expected   = new BadRequestException("INVITE_IS_NOT_SEND");

            _mock.Mock <ISendInvitationService>()
            .Setup(context => context.SendInvitation(employeeId))
            .Throws(exception);

            ExceptionAssert.ThrowsAsync(expected, () => _controller.SendInvitation(employeeId));
        }