public async Task Should_ReturnCreated_When_PassUniqueEmailAddressForUser(string emailAddresses, int mailingGroupId) { var emailAddressesList = emailAddresses.Split(";"); var cancellationToken = new CancellationToken(); var emailAddressValidator = Substitute.For <IEmailAddressValidatorUtility>(); emailAddressValidator.ValidateMail("*****@*****.**").Returns(true); emailAddressValidator.ValidateMail("*****@*****.**").Returns(true); emailAddressValidator.ValidateMail("*****@*****.**").Returns(true); var databaseContext = Create.MockedDbContextFor <DatabaseContext>(); databaseContext.Set <MailingGroup>().Add(new MailingGroup() { Id = 1, Name = "MailingGroupName1", SystemUserId = 1 }); databaseContext.Set <MailingGroup>().Add(new MailingGroup() { Id = 2, Name = "MailingGroupName2", SystemUserId = 2 }); databaseContext.Set <EmailAddress>().Add(new EmailAddress() { Id = 1, Value = "*****@*****.**", MailingGroupId = 2 }); databaseContext.Set <EmailAddress>().Add(new EmailAddress() { Id = 2, Value = "*****@*****.**", MailingGroupId = 2 }); databaseContext.Set <EmailAddress>().Add(new EmailAddress() { Id = 3, Value = "*****@*****.**", MailingGroupId = 2 }); databaseContext.SaveChanges(); var request = new CreateEmailAddressRequest(mailingGroupId, emailAddressesList); var result = await new CreateEmailAddressHandler(databaseContext, emailAddressValidator).Handle(request, cancellationToken); Assert.Multiple(() => { Assert.IsTrue(result.Success); Assert.AreEqual(result.StatusCode, HttpStatusCode.Created); Assert.AreEqual(databaseContext.EmailAddress.Where(x => emailAddressesList.Contains(x.Value) && x.MailingGroupId == mailingGroupId).Count(), emailAddressesList.Count()); }); }
/// <summary> /// 在验证了发信域名之后,您需要一个发信地址来发送邮件。例如发信域名是mail.qcloud.com,那么发信地址可以为 [email protected]。如果您想要收件人在收件箱列表中显示您的别名,例如"腾讯云邮件通知"。那么发信地址为: 别名 空格 尖括号 邮箱地址。请注意中间需要有空格 /// </summary> /// <param name="req"><see cref="CreateEmailAddressRequest"/></param> /// <returns><see cref="CreateEmailAddressResponse"/></returns> public CreateEmailAddressResponse CreateEmailAddressSync(CreateEmailAddressRequest req) { JsonResponseModel <CreateEmailAddressResponse> rsp = null; try { var strResp = this.InternalRequestSync(req, "CreateEmailAddress"); rsp = JsonConvert.DeserializeObject <JsonResponseModel <CreateEmailAddressResponse> >(strResp); } catch (JsonSerializationException e) { throw new TencentCloudSDKException(e.Message); } return(rsp.Response); }
public async Task Should_ReturnBadRequest_When_NotPassingRequiredParameters(string addresses, int mailingGroupId) { var addressesList = addresses.Split(";"); var cancellationToken = new CancellationToken(); var emailAddressValidator = Substitute.For <IEmailAddressValidatorUtility>(); var databaseContext = Create.MockedDbContextFor <DatabaseContext>(); var request = new CreateEmailAddressRequest(mailingGroupId, addressesList); var result = await new CreateEmailAddressHandler(databaseContext, emailAddressValidator).Handle(request, cancellationToken); Assert.Multiple(() => { Assert.IsFalse(result.Success); Assert.AreEqual(result.StatusCode, HttpStatusCode.BadRequest); Assert.AreEqual(result.Message, "Required Addresses and MailingGroupId."); }); }
public async Task Should_ReturnConflict_When_PassAlreadyAddedEmailAddress(string addresses, int mailingGroupId) { var addressesList = addresses.Split(";"); var cancellationToken = new CancellationToken(); var emailAddressValidator = Substitute.For <IEmailAddressValidatorUtility>(); emailAddressValidator.ValidateMail("*****@*****.**").Returns(true); emailAddressValidator.ValidateMail("*****@*****.**").Returns(true); emailAddressValidator.ValidateMail("*****@*****.**").Returns(true); var databaseContext = Create.MockedDbContextFor <DatabaseContext>(); databaseContext.Set <MailingGroup>().Add(new MailingGroup() { Id = 1, Name = "MailingGroupName1", SystemUserId = 1 }); databaseContext.Set <EmailAddress>().Add(new EmailAddress() { Id = 1, Value = "*****@*****.**", MailingGroupId = 1 }); databaseContext.SaveChanges(); var request = new CreateEmailAddressRequest(mailingGroupId, addressesList); var result = await new CreateEmailAddressHandler(databaseContext, emailAddressValidator).Handle(request, cancellationToken); Assert.Multiple(() => { Assert.IsFalse(result.Success); Assert.AreEqual(result.StatusCode, HttpStatusCode.Conflict); Assert.IsTrue(result.Message.Contains("Addresses already added")); }); }
public async Task <IActionResult> CreateEmailAddress([FromBody] CreateEmailAddressRequest request) { Logger.Trace($"Executing '{nameof(CreateEmailAddress)}'."); var userId = HttpContext.GetUserId(); if (userId == null) { return(Unauthorized()); } try { var result = await _mediator.Send(request); return(result.GetResult()); } catch (Exception ex) { Logger.Error(ex, $"Unexpected error thrown while executing '{nameof(CreateEmailAddressHandler)}'."); throw; } }