Exemple #1
0
        private static async Task SendEmailsAsync(Server sut, params MimeMessage[] msgs)
        {
            using (var client = new SmtpClient())
            {
                await client.ConnectAsync("localhost", sut.Port, false);

                foreach (var msg in msgs)
                {
                    await client.SendAsync(msg);
                }
                client.Disconnect(true);
            }
        }
Exemple #2
0
        public async Task Should_forward_emails()
        {
            using (var forwardServer = new Server(RandomPortNumber()))
                using (var sut = new Server(RandomPortNumber(), new SMTP.ForwardServerConfig(forwardServer.Port, "localhost")))
                {
                    var msg = CreateMessage();

                    var emails = await GetEmails(forwardServer, s => s.GetEmails(), () => SendEmailsAsync(sut, msg));

                    var actual = emails.Single();

                    AssertEmailsAreEqual(actual, msg);
                }
        }
Exemple #3
0
 private static async Task <IEnumerable <SMTP.EMail> > GetEmails(
     Server sut,
     Func <Server, IEnumerable <SMTP.EMail> > getEmailsFunc,
     params Func <Task>[] sendEmails)
 {
     using (var countdown = new CountdownEvent(sendEmails.Count()))
         using (sut.EmailReceived.Subscribe(actual =>
         {
             countdown.Signal();
         }))
         {
             foreach (var t in sendEmails)
             {
                 await t();
             }
             countdown.Wait();
             return(getEmailsFunc(sut));
         }
 }
		private static async Task<IEnumerable<SMTP.EMail>> GetEmails(
			Server sut, 
			Func<Server, IEnumerable<SMTP.EMail>> getEmailsFunc, 
			params Func<Task>[] sendEmails)
		{
			using (var countdown = new CountdownEvent(sendEmails.Count()))
			using (sut.EmailReceived.Subscribe(actual =>
				{					
					countdown.Signal();
				}))
			{
				foreach (var t in sendEmails)
					await t();
				countdown.Wait ();
				return getEmailsFunc(sut);
			}
		}
		private static async Task SendEmailsAsync (Server sut, params MimeMessage[] msgs)
		{
			using (var client = new SmtpClient ()) 
			{
				await client.ConnectAsync ("localhost", sut.Port, false);
				foreach (var msg in msgs) 
				{
					await client.SendAsync (msg);
				}
				client.Disconnect (true);
			}
		}
		public async Task Should_forward_emails()
		{
            using (var forwardServer = new Server(RandomPortNumber()))
            using (var sut = new Server(RandomPortNumber(), new SMTP.ForwardServerConfig(forwardServer.Port, "localhost")))
            {
                var msg = CreateMessage();

                var emails = await GetEmails(forwardServer, s => s.GetEmails(), () => SendEmailsAsync(sut, msg));

                var actual = emails.Single();

                AssertEmailsAreEqual(actual, msg);
            }
		}