Mercurial > altnet-hispano
diff Agendas/trunk/src/Agendas.Tests/PonentesTests.cs @ 24:41b283d27e3e
Ponentes como entidad
Agenda no es una entidad persistente (por ahora)
author | nelo@MTEySS.neluz.int |
---|---|
date | Tue, 15 Mar 2011 07:49:53 -0300 |
parents | |
children | 3ebe89c88caa |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Agendas/trunk/src/Agendas.Tests/PonentesTests.cs Tue Mar 15 07:49:53 2011 -0300 @@ -0,0 +1,72 @@ +using System; +using AltNetHispano.Agendas.Domain; +using Moq; +using NUnit.Framework; + +namespace AltNetHispano.Agendas.Tests +{ + [TestFixture] + public class PonentesTests : TestBase + { + [Test] + public void Publicar_van_con_ponente_registrado() + { + var publicador = new Mock<IPublicador>(); + Evento evento = null; + publicador.Setup(p => p.Publicar(It.IsAny<Evento>())).Callback<Evento>(e => evento = e); + + var agenda = new Agenda(publicador.Object, null, SeguridadServiceDefault, DefaultEventoRepository, DefaultPonenteRepository); + + agenda.RegistrarPonente("Fabio Maulo", "fabiomaulo@gmail.com", "@fabiomaulo", "http://fabiomaulo.blogspot.com"); + + agenda.Publicar("Audit (parallel model) con NHibernate 3", "Fabio Maulo", new DateTime(2011, 2, 26)); + + Assert.AreEqual(1, agenda.GetEventosPublicados().Count); + + publicador.Verify(p => p.Publicar(It.IsAny<Evento>()), Times.Exactly(1)); + + Assert.IsNotNull(evento); + Assert.AreEqual("Fabio Maulo", evento.Ponente.Nombre); + Assert.AreEqual("fabiomaulo@gmail.com", evento.Ponente.Mail); + Assert.AreEqual("@fabiomaulo", evento.Ponente.Twitter); + Assert.AreEqual("http://fabiomaulo.blogspot.com", evento.Ponente.Blog); + } + + [Test] + public void Publicar_van_sin_ponente_registrado() + { + var publicador = new Mock<IPublicador>(); + Evento evento = null; + publicador.Setup(p => p.Publicar(It.IsAny<Evento>())).Callback<Evento>(e => evento = e); + + var agenda = new Agenda(publicador.Object, null, SeguridadServiceDefault, DefaultEventoRepository, DefaultPonenteRepository); + + agenda.Publicar("Audit (parallel model) con NHibernate 3", "Fabio Maulo", new DateTime(2011, 2, 26)); + + Assert.AreEqual(1, agenda.GetEventosPublicados().Count); + + publicador.Verify(p => p.Publicar(It.IsAny<Evento>()), Times.Exactly(1)); + + Assert.IsNotNull(evento); + Assert.AreEqual("Fabio Maulo", evento.Ponente.Nombre); + Assert.IsNullOrEmpty(evento.Ponente.Twitter); + } + + [Test] + public void Publicar_dos_vans_sin_ponente_registrado() + { + var publicador = new Mock<IPublicador>(); + + var agenda = new Agenda(publicador.Object, null, SeguridadServiceDefault, DefaultEventoRepository, DefaultPonenteRepository); + + agenda.Publicar("Audit (parallel model) con NHibernate 3", "Fabio Maulo", new DateTime(2011, 2, 26)); + agenda.Publicar("Conform - Parte 2", "Fabio Maulo", new DateTime(2011, 3, 5)); + + Assert.AreEqual(2, agenda.GetEventosPublicados().Count); + + publicador.Verify(p => p.Publicar(It.IsAny<Evento>()), Times.Exactly(2)); + + Assert.AreEqual(1, DefaultPonenteRepository.GetAll().Count); + } + } +} \ No newline at end of file