public static void ToMailAddress___Should_throw_ArgumentException___When_emailMailbox_contains_not_valid_email_address() { // Arrange var emailMailbox = new EmailMailbox(A.Dummy <string>()); // Act var actual = Record.Exception(() => emailMailbox.ToMailAddress()); // Assert actual.AsTest().Must().BeOfType <ArgumentException>(); actual.Message.AsTest().Must().ContainString("emailMailbox.Address"); }
/// <summary> /// Initialization of mailbox data grid with info. /// </summary> /// <param name="invalidate">Determines whether or not to refresh data grid.</param> private void PopulateMailbox(bool invalidate) { // DataGridItems must contain an object array whose length matches the number of columns. dGridMailbox.AddItem(new DataGridItem(new object[2] { "-----E-Mail-----", "-----Addresses-----" })); for (int i = 0; i < EmailAddressArray.Length; i++) { EmailAddressArray[i] = new EmailAddress("*****@*****.**", "OFF"); dGridMailbox.AddItem(new DataGridItem(new object[2] { EmailAddressArray[i].State, EmailAddressArray[i].Address })); } UserMailbox = new EmailMailbox("*****@*****.**", "password", "smtp.server.com", 0, "pop3.server.com", 0); dGridMailbox.AddItem(new DataGridItem(new object[2] { "-----Mailbox----", "-------Setup------" })); dGridMailbox.AddItem(new DataGridItem(new object[2] { "Username:"******"Password:"******"SMTP Server:", UserMailbox.SmtpServer })); dGridMailbox.AddItem(new DataGridItem(new object[2] { "SMTP Port:", UserMailbox.SmtpPort.ToString() })); dGridMailbox.AddItem(new DataGridItem(new object[2] { "POP3 Server:", UserMailbox.Pop3Server })); dGridMailbox.AddItem(new DataGridItem(new object[2] { "POP3 Port:", UserMailbox.Pop3Port.ToString() })); if (invalidate) { dGridMailbox.Invalidate(); } }
static EmailMailboxTest() { ConstructorArgumentValidationTestScenarios .RemoveAllScenarios() .AddScenario(() => new ConstructorArgumentValidationTestScenario <EmailMailbox> { Name = "constructor should throw ArgumentNullException when parameter 'address' is null scenario", ConstructionFunc = () => { var referenceObject = A.Dummy <EmailMailbox>(); var result = new EmailMailbox( null, referenceObject.Name); return(result); }, ExpectedExceptionType = typeof(ArgumentNullException), ExpectedExceptionMessageContains = new[] { "address", }, }) .AddScenario(() => new ConstructorArgumentValidationTestScenario <EmailMailbox> { Name = "constructor should throw ArgumentException when parameter 'address' is white space scenario", ConstructionFunc = () => { var referenceObject = A.Dummy <EmailMailbox>(); var result = new EmailMailbox( Invariant($" {Environment.NewLine} "), referenceObject.Name); return(result); }, ExpectedExceptionType = typeof(ArgumentException), ExpectedExceptionMessageContains = new[] { "address", "white space", }, }); }
private async void Mailbox_MailboxChanged(EmailMailbox sender, EmailMailboxChangedEventArgs args) { try { Debug.WriteLine($"New Change Detected"); var emailChangedDeferral = args.GetDeferral(); if (sender.ChangeTracker.IsTracking == false) { sender.ChangeTracker.Enable(); } var changeReader = sender.ChangeTracker.GetChangeReader(); var batch = await changeReader.ReadBatchAsync(); Debug.WriteLine($"Num Changes in batch = {batch.Count}"); foreach (var change in batch) { Debug.WriteLine($"change type is {change.ChangeType.ToString()}"); foreach (var act in change.MailboxActions) { Debug.WriteLine($"kind = {act.Kind}"); Debug.WriteLine($"number = {act.ChangeNumber}"); } if (change.Message != null) { Debug.WriteLine($"subject: {change.Message.Subject}"); } } changeReader.AcceptChanges(); emailChangedDeferral.Complete(); } catch (Exception ex) { Debug.WriteLine($"Exception {ex.Message}"); } }
public EmailDummyFactory() { AutoFixtureBackedDummyFactory.ConstrainDummyToExclude(SecureConnectionMethod.Unknown); AutoFixtureBackedDummyFactory.ConstrainDummyToExclude(SendEmailResult.Unknown); AutoFixtureBackedDummyFactory.AddDummyCreator(() => { // DeliveryNotificationOptions.Never cannot be used in combination with any other flag // otherwise adding options to the MailMessage will throw. var validValues = EnumExtensions.GetAllPossibleEnumValues <DeliveryNotificationOptions>().Where(_ => !_.HasFlag(DeliveryNotificationOptions.Never)).ToList(); var indexToUse = ThreadSafeRandom.Next(0, validValues.Count); var result = validValues[indexToUse]; return(result); }); AutoFixtureBackedDummyFactory.AddDummyCreator(() => { var result = new SmtpServerConnectionDefinition(A.Dummy <string>(), A.Dummy <PositiveInteger>().ThatIs(_ => _ < 65000), A.Dummy <SecureConnectionMethod>(), A.Dummy <string>(), A.Dummy <string>()); return(result); }); AutoFixtureBackedDummyFactory.AddDummyCreator(() => { var address = Invariant($"{A.Dummy<Guid>()}@example.com"); var firstNames = new[] { "Bob", "Sara", "Jane", "Joe", "Tommy", "Nora" }; var lastNames = new[] { "Jones", "Smith", "Tailor", "Wright", "Glass", "Willis" }; var firstNameIndex = ThreadSafeRandom.Next(0, firstNames.Length); var lastNameIndex = ThreadSafeRandom.Next(0, lastNames.Length); var name = firstNames[firstNameIndex] + " " + lastNames[lastNameIndex]; var result = new EmailMailbox(address, name); return(result); }); AutoFixtureBackedDummyFactory.AddDummyCreator(() => { var result = new SendEmailRequestedEvent <Version>(A.Dummy <Version>(), A.Dummy <DateTime>().ToUniversalTime(), A.Dummy <SendEmailRequest>()); return(result); }); AutoFixtureBackedDummyFactory.AddDummyCreator(() => { var emailResponse = new SendEmailResponse(A.Dummy <SendEmailResult>().ThatIsNot(SendEmailResult.Success), A.Dummy <string>()); var result = new FailedToSendEmailEvent <Version>(A.Dummy <Version>(), A.Dummy <DateTime>().ToUniversalTime(), emailResponse); return(result); }); AutoFixtureBackedDummyFactory.AddDummyCreator(() => { var emailResponse = new SendEmailResponse(SendEmailResult.Success, null, A.Dummy <string>()); var result = new SucceededInSendingEmailEvent <Version>(A.Dummy <Version>(), A.Dummy <DateTime>().ToUniversalTime(), emailResponse); return(result); }); AutoFixtureBackedDummyFactory.AddDummyCreator(() => { var sendEmailResult = A.Dummy <SendEmailResult>(); var exceptionToString = sendEmailResult == SendEmailResult.Success ? null : A.Dummy <string>(); var communicationLog = A.Dummy <string>(); var result = new SendEmailResponse(sendEmailResult, exceptionToString, communicationLog); return(result); }); }
public EmailMailboxEvents(EmailMailbox This) { this.This = This; }