Mercurial > altnet-hispano
view Agendas/trunk/src/Agendas.Twitter.Tests/Publicador_tests.cs @ 257:730b80afa70d
Ticket #191: Perfil de Usuarios
author | juanjose.montesdeocaarbos |
---|---|
date | Wed, 19 Oct 2011 09:19:20 -0300 |
parents | 5cc1681d3789 |
children | e2c6610b14c7 |
line wrap: on
line source
using System; using System.Collections.Generic; using System.Linq; using AltNetHispano.Agendas.Domain; using AltNetHispano.Agendas.Tests; using AltNetHispano.Agendas.Twitter; using Moq; using NUnit.Framework; namespace Agendas.Twitter.Tests { [TestFixture] public class Publicador_tests : TestBase { [Test] public void Proponer_evento() { var adapter = new Mock<ITwitterAdapter>(); string message; string twitt = null; adapter.Setup(a => a.Update(It.IsAny<string>(), out message)).Returns(true).Callback<string, string>((status, m) => twitt = status); var publicador = new TwitterPublicador(adapter.Object); var agenda = new Agenda(publicador, DefaultEventoRepository, DefaultPersonaRepository); agenda.Proponer("Identity Providers", null, null, TipoEvento.GrupoEstudio); adapter.Verify(a => a.Update(It.IsAny<string>(), out message), Times.Once()); Assert.That(twitt, Is.StringContaining("GrupoEstudio")); } [Test] public void Proponer_y_agendar_evento() { var adapter = new Mock<ITwitterAdapter>(); string message; string twitt = null; var fechaInicio = DateTime.Today.AddDays(7).ToUniversalTime(); var fechaTermino = fechaInicio.AddHours(2); adapter.Setup(a => a.Update(It.IsAny<string>(), out message)).Returns(true).Callback<string, string>((status, m) => twitt = status); var publicador = new TwitterPublicador(adapter.Object); var agenda = new Agenda(publicador, DefaultEventoRepository, DefaultPersonaRepository); agenda.Proponer("Identity Providers", null, null, TipoEvento.GrupoEstudio); adapter.Verify(a => a.Update(It.IsAny<string>(), out message), Times.Once()); agenda.Agendar("Identity Providers", new[]{TestsHelper.GetOrCreatePonente("Nelo Pauselli")}, fechaInicio, fechaTermino, null, TipoEvento.GrupoEstudio); adapter.Verify(a => a.Update(It.IsAny<string>(), out message), Times.Exactly(2)); 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 ponentes = new[] { new Persona("Carlos Peix", "carlospeix@gmail.com", "carlospeix", "http://www.carlospeix.com.ar"), new Persona("Nelo Pauselli", "nelopauselli@gmail.com", "nelopauselli", "http://nelopauselli.blogspot.com/") }; foreach (var ponente in ponentes) DefaultPersonaRepository.Save(ponente); var inicio = new DateTime(2011, 10, 1); agenda.Agendar("Identity Providers Públicos y Empresariales", ponentes.Select(p=>p.Id), inicio, inicio.AddHours(2), null, TipoEvento.Van); 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(string.Format("Se ha agendando el evento Identity Providers Públicos y Empresariales con @carlospeix y @nelopauselli para el {0}...", inicio.ToString("dd/MM/yyyy")), twitters.First()); Assert.AreEqual("...por http://snipr.com/virtualaltnet", twitters.Last()); adapter.Verify(a => a.Update(It.IsAny<string>(), out message), Times.Exactly(2)); } [Test] public void Evento_sin_ponente() { 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 inicio = new DateTime(2011, 10, 1); agenda.Agendar("Identity Providers Públicos y Empresariales",new[]{ Guid.Empty}, inicio, inicio.AddHours(2), null, TipoEvento.Cafe); Assert.IsTrue(twitters.Any()); var joined = string.Empty; foreach (var twitter in twitters) { Console.WriteLine(twitter); Assert.LessOrEqual(twitter.Length, 140); joined += twitter; } Assert.AreEqual(string.Format("Se ha agendando el evento Identity Providers Públicos y Empresariales para el {0} por http://snipr.com/virtualaltnet", inicio.ToString("dd/MM/yyyy")), joined); adapter.Verify(a => a.Update(It.IsAny<string>(), out message), Times.Once()); } } }