diff Agendas/trunk/src/Agendas.Twitter.Tests/Publicador_tests.cs @ 228:9f61e8555114

Nombrando a todos los ponentes en los twitter y partiendo los mensajes que superan el máximo permitido
author nelopauselli
date Wed, 28 Sep 2011 18:51:53 -0300
parents 5346c0500594
children 33976aea7546
line wrap: on
line diff
--- a/Agendas/trunk/src/Agendas.Twitter.Tests/Publicador_tests.cs	Wed Sep 28 08:57:34 2011 -0300
+++ b/Agendas/trunk/src/Agendas.Twitter.Tests/Publicador_tests.cs	Wed Sep 28 18:51:53 2011 -0300
@@ -1,4 +1,6 @@
 using System;
+using System.Collections.Generic;
+using System.Linq;
 using AltNetHispano.Agendas.Domain;
 using AltNetHispano.Agendas.Tests;
 using AltNetHispano.Agendas.Twitter;
@@ -56,5 +58,49 @@
 			Assert.That(twitt, Is.StringContaining("@nelopauselli"));
 
 		}
+
+		[Test]
+		public void Twitter_texto_largo()
+		{
+			var adapter = new Mock<ITwitterAdapter>();
+
+			string message;
+			var twitters= new List<string>();
+			adapter.Setup(a => a.Update(It.IsAny<string>(), out message)).Returns(true).Callback<string, string>((status, m) => twitters.Add(status));
+
+			var publicador = new TwitterPublicador(adapter.Object);
+			var agenda = new Agenda(publicador, DefaultEventoRepository, DefaultPersonaRepository);
+
+			var ponente = new Persona("Carlos Peix", "carlospeix@gmail.com", "carlospeix", "http://www.carlospeix.com.ar");
+			DefaultPersonaRepository.Save(ponente);
+
+			var otrosPonentes = new Persona("Nelo Pauselli", "nelopauselli@gmail.com", "nelopauselli",
+			                                "http://nelopauselli.blogspot.com/");
+			DefaultPersonaRepository.Save(otrosPonentes);
+
+			var inicio = DateTime.Now.AddDays(3);
+
+			agenda.Agendar("Identity Providers Públicos y Empresariales", ponente.Id, inicio, inicio.AddHours(2), null, TipoEvento.Van,
+			               new[] {otrosPonentes.Id});
+
+			Assert.IsTrue(twitters.Any());
+			var joined = string.Empty;
+			foreach (var twitter in twitters)
+			{
+				Console.WriteLine(twitter);
+				Assert.LessOrEqual(twitter.Length, 140);
+				joined += twitter;
+			}
+			Assert.That(joined, Is.StringContaining("Identity Providers Públicos y Empresariales"));
+			Assert.That(joined, Is.StringContaining("@carlospeix"));
+			Assert.That(joined, Is.StringContaining("@nelopauselli"));
+
+			Assert.AreEqual(2, twitters.Count());
+			Assert.AreEqual("Se ha agendando el evento Identity Providers Públicos y Empresariales con @carlospeix, @nelopauselli para el 01/10/2011...", twitters.First());
+			Assert.AreEqual("...por http://snipr.com/virtualaltnet", twitters.Last());
+
+			adapter.Verify(a => a.Update(It.IsAny<string>(), out message), Times.Exactly(2));
+
+		}
 	}
 }
\ No newline at end of file