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