Mercurial > altnet-hispano
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