Mercurial > altnet-hispano
diff Agendas/trunk/src/Agendas.Tests/Blog/PublicadorTests.cs @ 99:3027c64344bd
agregado de llamadas a web service para crear posts en el blog de la comunidad
agregado de tests sobre el publicador de blogs
agregado de tests sobre el adapter del web service
author | jorge.rowies |
---|---|
date | Sat, 04 Jun 2011 22:33:05 -0300 |
parents | |
children | cc91817a4206 |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Agendas/trunk/src/Agendas.Tests/Blog/PublicadorTests.cs Sat Jun 04 22:33:05 2011 -0300 @@ -0,0 +1,54 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using Agendas.Blog; +using Agendas.Blog.Impl; +using AltNetHispano.Agendas.Domain; +using Moq; +using NUnit.Framework; + +namespace AltNetHispano.Agendas.Tests.Blog +{ + [TestFixture] + public class PublicadorTests + { + [SetUp] + public void SetearUsuario() + { + var seguridad = new Mock<ISeguridad>(); + seguridad.Setup(s => s.GetUserName()).Returns("neluz"); + IdentityContext.Current = seguridad.Object; + } + + [Test] + public void El_publicador_debe_disparar_los_writers_segun_la_accion_de_cada_track() + { + var eventoAgendar = Evento.Agendar(null, null, DateTime.MinValue, null); + var eventoPublicar = Evento.Agendar(null, null, DateTime.MinValue, null); + + var agendarPostWriter = new Mock<IPostWriter>(); + agendarPostWriter.Setup(writer => writer.WritePost(eventoAgendar)); + + var publicarPostWriter = new Mock<IPostWriter>(); + publicarPostWriter.Setup(writer => writer.WritePost(eventoPublicar)); + + var factory = new Mock<IPostWriterFactory>(); + factory.Setup(f => f.GetPostWriter(Accion.Agendar)).Returns(agendarPostWriter.Object); + factory.Setup(f => f.GetPostWriter(Accion.Publicar)).Returns(publicarPostWriter.Object); + + var publicador = new BlogPublicador(factory.Object); + publicador.Publicar(new List<Track> + { + new Track(eventoAgendar, Accion.Agendar), + new Track(eventoPublicar, Accion.Publicar) + }); + + factory.Verify(f => f.GetPostWriter(Accion.Agendar), Times.Once()); + factory.Verify(f => f.GetPostWriter(Accion.Publicar), Times.Once()); + + agendarPostWriter.Verify(pw => pw.WritePost(eventoAgendar), Times.Once()); + publicarPostWriter.Verify(pw => pw.WritePost(eventoPublicar), Times.Once()); + } + } +}