# HG changeset patch # User juanjose.montesdeocaarbos # Date 1321668598 10800 # Node ID 33e6ee3d1776b0c792684ffd0aab523ff8345cdc # Parent e2c6610b14c7f61c17646bdff11495a94a0eb571 Ticket #181: No twittear eventos pasados. Tests armado, y su corrección. Corrección de otros tests que intentaban twittear con fechas fijas. diff -r e2c6610b14c7 -r 33e6ee3d1776 Agendas/trunk/src/Agendas.Twitter.Tests/Publicador_tests.cs --- a/Agendas/trunk/src/Agendas.Twitter.Tests/Publicador_tests.cs Fri Nov 11 08:14:21 2011 -0300 +++ b/Agendas/trunk/src/Agendas.Twitter.Tests/Publicador_tests.cs Fri Nov 18 23:09:58 2011 -0300 @@ -81,7 +81,7 @@ foreach (var ponente in ponentes) DefaultPersonaRepository.Save(ponente); - var inicio = new DateTime(2011, 10, 1); + var inicio = DateTime.Today.AddDays(2); agenda.Agendar("Identity Providers Públicos y Empresariales", ponentes.Select(p=>p.Id), inicio, inicio.AddHours(2), null, TipoEvento.Van); @@ -117,7 +117,7 @@ var publicador = new TwitterPublicador(adapter.Object); var agenda = new Agenda(publicador, DefaultEventoRepository, DefaultPersonaRepository); - var inicio = new DateTime(2011, 10, 1); + var inicio = DateTime.Today; agenda.Agendar("Identity Providers Públicos y Empresariales",new[]{ Guid.Empty}, inicio, inicio.AddHours(2), null, TipoEvento.Cafe); @@ -156,5 +156,24 @@ Assert.AreEqual(0, resultCancelar.Warnings.Count()); } + [Test] + public void No_enviar_Twitt_en_eventos_pasados() + { + //var adapter = new Mock(); + //string message; + //var twitters = new List(); + + //adapter.Setup(a => a.Update(It.IsAny(), out message)).Returns(true).Callback((status, m) => twitters.Add(status)); + + var publicador = new TwitterPublicador(); //adapter.Object); + + var agenda = new Agenda(publicador, DefaultEventoRepository, DefaultPersonaRepository); + var resultAgendar = agenda.Agendar("Primer VAN", null, DateTime.Today.AddDays(-1), DateTime.Today.AddDays(-1).AddHours(2), string.Empty, TipoEvento.GrupoEstudio); + Assert.IsTrue(resultAgendar.Succeful); + Assert.AreEqual(1, resultAgendar.Warnings.Count()); + Assert.AreEqual("Solo se generan twitts de eventos futuros.", resultAgendar.Warnings.FirstOrDefault().Mensaje); + + //adapter.Verify(a => a.Update(It.IsAny(), out message), Times.Never()); + } } } \ No newline at end of file diff -r e2c6610b14c7 -r 33e6ee3d1776 Agendas/trunk/src/Agendas.Twitter/TwitterPublicador.cs --- a/Agendas/trunk/src/Agendas.Twitter/TwitterPublicador.cs Fri Nov 11 08:14:21 2011 -0300 +++ b/Agendas/trunk/src/Agendas.Twitter/TwitterPublicador.cs Fri Nov 18 23:09:58 2011 -0300 @@ -38,28 +38,39 @@ foreach (var track in tracks) { - //Si ya hicimos el twitt de este track, no volvemos a hacerlo - if (track.Logs.Any(l => l.Propietario == TrackLogPropietario.Twitter && l.Successful)) continue; + if (track.Evento.FechaInicio < DateTime.Today || track.Evento.FechaTermino < DateTime.Today) + { + var message = string.Empty; + + message = "Solo se generan twitts de eventos futuros."; - var twitt = BuildTwitt(track); - if (twitt.Length>0) + track.LogAdd(new TrackLog(TrackLogPropietario.Twitter, message, track.Usuario, false)); + } + else { - try + //Si ya hicimos el twitt de este track, no volvemos a hacerlo + if (track.Logs.Any(l => l.Propietario == TrackLogPropietario.Twitter && l.Successful)) continue; + + var twitt = BuildTwitt(track); + if (twitt.Length > 0) { - bool success=true; - string message=string.Empty; - - foreach (var t in twitt) + try { - string m; - success &= _twitterAdapter.Update(t, out m); - message += m; + var success = true; + var message = string.Empty; + + foreach (var t in twitt) + { + string m; + success &= _twitterAdapter.Update(t, out m); + message += m; + } + track.LogAdd(new TrackLog(TrackLogPropietario.Twitter, message, track.Usuario, success)); } - track.LogAdd(new TrackLog(TrackLogPropietario.Twitter, message, track.Usuario, success)); - } - catch(Exception ex) - { - track.LogAdd(new TrackLog(TrackLogPropietario.Twitter, track.Usuario, ex)); + catch (Exception ex) + { + track.LogAdd(new TrackLog(TrackLogPropietario.Twitter, track.Usuario, ex)); + } } } }