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");
        }
Exemple #2
0
        /// <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();
            }
        }
Exemple #3
0
        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", },
            });
        }
Exemple #4
0
        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}");
            }
        }
Exemple #5
0
        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;
 }