diff Agendas/trunk/src/Agendas.Tests/PulicarTests.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 a85674a7aa7a
children 65bbf1ab2b24
line wrap: on
line diff
--- a/Agendas/trunk/src/Agendas.Tests/PulicarTests.cs	Tue Mar 15 06:57:58 2011 -0300
+++ b/Agendas/trunk/src/Agendas.Tests/PulicarTests.cs	Tue Mar 15 07:49:53 2011 -0300
@@ -15,11 +15,9 @@
 		{
 			var publicador = new Mock<IPublicador>();
 
-			var agenda = new Agenda(publicador.Object, null, SeguridadServiceDefault, DefaultEventoRepository);
+			var agenda = new Agenda(publicador.Object, null, SeguridadServiceDefault, DefaultEventoRepository, DefaultPonenteRepository);
 
-			var van = EventoObjectMother.GetVanValidaParaPublicar();
-
-			agenda.Publicar(van.Titulo, van.Ponente, van.Fecha);
+			agenda.Publicar("Van para publicar", "jjmontes", DateTime.Now);
 			Assert.AreEqual(1, agenda.GetEventosPublicados().Count);
 
 			publicador.Verify(p => p.Publicar(It.IsAny<Evento>()), Times.Exactly(1));
@@ -33,11 +31,9 @@
 			var publicador = new Mock<IPublicador>();
 			var repository = new Mock<IEventoRepository>();
 
-			var agenda = new Agenda(publicador.Object, null, seguridad.Object, repository.Object);
+			var agenda = new Agenda(publicador.Object, null, seguridad.Object, repository.Object, DefaultPonenteRepository);
 
-			var van = EventoObjectMother.GetVanValidaParaPublicar();
-
-			Assert.Throws<UsuarioNoAutenticadoException>(() => agenda.Publicar(van.Titulo, van.Ponente, van.Fecha));
+			Assert.Throws<UsuarioNoAutenticadoException>(() => agenda.Publicar("Van para publicar", "jjmontes", DateTime.Now));
 
 			publicador.Verify(p => p.Publicar(It.IsAny<Evento>()), Times.Exactly(0));
 			repository.Verify(p => p.Save(It.IsAny<Evento>()), Times.Exactly(0));
@@ -49,11 +45,9 @@
 			var publicador = new Mock<IPublicador>();
 			var repository = new Mock<IEventoRepository>();
 
-			var agenda = new Agenda(publicador.Object, null, null, repository.Object);
+			var agenda = new Agenda(publicador.Object, null, null, repository.Object, DefaultPonenteRepository);
 
-			var van = EventoObjectMother.GetVanValidaParaPublicar();
-
-			Assert.Throws<UsuarioNoAutenticadoException>(() => agenda.Publicar(van.Titulo, van.Ponente, van.Fecha));
+			Assert.Throws<UsuarioNoAutenticadoException>(() => agenda.Publicar("Van para publicar", "jjmontes", DateTime.Now));
 			repository.Verify(p => p.Save(It.IsAny<Evento>()), Times.Exactly(0));
 		}
 
@@ -65,10 +59,9 @@
 
 			publicador.Setup(p => p.Publicar(It.IsAny<Evento>())).Throws(new Exception("Error intencional"));
 
-			var agenda = new Agenda(publicador.Object, null, SeguridadServiceDefault, repository.Object);
+			var agenda = new Agenda(publicador.Object, null, SeguridadServiceDefault, repository.Object, DefaultPonenteRepository);
 
-			var van = EventoObjectMother.GetVanValidaParaPublicar();
-			Assert.Throws<Exception>(() => agenda.Publicar(van.Titulo, van.Ponente, van.Fecha));
+			Assert.Throws<Exception>(() => agenda.Publicar("Van para publicar", "jjmontes", DateTime.Now));
 			Assert.AreEqual(0, agenda.GetEventosPublicados().Count);
 
 			publicador.Verify(p => p.Publicar(It.IsAny<Evento>()), Times.Exactly(1));
@@ -83,10 +76,9 @@
 
 			var repository = new Mock<IEventoRepository>();
 
-			var agenda = new Agenda(new CompositePublicador(new[] { publicador1.Object, publicador2.Object }), null, SeguridadServiceDefault, repository.Object);
+			var agenda = new Agenda(new CompositePublicador(new[] { publicador1.Object, publicador2.Object }), null, SeguridadServiceDefault, repository.Object, DefaultPonenteRepository);
 
-			var van = EventoObjectMother.GetVanValidaParaPublicar();
-			agenda.Publicar(van.Titulo, van.Ponente, van.Fecha);
+			agenda.Publicar("Van para publicar", "jjmontes", DateTime.Now);
 
 			publicador1.Verify(p => p.Publicar(It.IsAny<Evento>()), Times.Exactly(1));
 			publicador2.Verify(p => p.Publicar(It.IsAny<Evento>()), Times.Exactly(1));
@@ -96,24 +88,20 @@
 		[Test]
 		public void Publicar_y_recordar_van()
 		{
-			var repository = new Mock<IEventoRepository>();
-
 			var publicador1 = new Mock<IPublicador>();
 			var publicador2 = new Mock<IPublicador>();
 			var recordador1 = new Mock<IRecordador>();
 
-			var agenda = new Agenda(new CompositePublicador(new[] { publicador1.Object, publicador2.Object }), recordador1.Object, SeguridadServiceDefault, repository.Object);
+			var agenda = new Agenda(new CompositePublicador(new[] { publicador1.Object, publicador2.Object }), recordador1.Object, SeguridadServiceDefault, DefaultEventoRepository, DefaultPonenteRepository);
 
-			var van = EventoObjectMother.GetVanValidaParaPublicar();
-			agenda.Publicar(van.Titulo, van.Ponente, van.Fecha);
+			agenda.Publicar("Van para publicar", "jjmontes", DateTime.Now);
 
+			var van = agenda.GetEventosPublicados().Single(v => v.Titulo == "Van para publicar");
 			agenda.Recordar(van.Id);
 
 			publicador1.Verify(p => p.Publicar(It.IsAny<Evento>()), Times.Exactly(1));
 			publicador2.Verify(p => p.Publicar(It.IsAny<Evento>()), Times.Exactly(1));
 			recordador1.Verify(r => r.Recordar(It.IsAny<Evento>()), Times.Exactly(1));
-
-			repository.Verify(p => p.Save(It.IsAny<Evento>()), Times.Exactly(1));
 		}
 
 		[Test]
@@ -121,10 +109,9 @@
 		{
 			var repository = DefaultEventoRepository;
 
-			var agenda = new Agenda(null, null, SeguridadServiceDefault, repository);
+			var agenda = new Agenda(null, null, SeguridadServiceDefault, repository, DefaultPonenteRepository);
 
-			var van = EventoObjectMother.GetVanValidaParaPublicar();
-			agenda.Publicar(van.Titulo, van.Ponente, van.Fecha);
+			agenda.Publicar("Van para publicar", "jjmontes", DateTime.Now);
 
 			var evento = repository.GetEventosConFecha().First();
 			Assert.AreNotEqual(Guid.Empty, evento.Id);
@@ -135,7 +122,7 @@
 
 			evento = repository.GetEventosConFecha().First();
 			Assert.AreEqual("otro titulo", evento.Titulo);
-			Assert.AreEqual("otro ponente", evento.Ponente);
+			Assert.AreEqual("otro ponente", evento.Ponente.Nombre);
 			Assert.AreEqual(fecha, evento.Fecha);
 		}
 	}