changeset 36:65bbf1ab2b24

cuando se modifica un evento, también debe ser publicada dicha modificación
author nelo@MTEySS.neluz.int
date Thu, 17 Mar 2011 17:03:05 -0300
parents 6910b2116df2
children 90f0cab1febc
files Agendas/trunk/src/Agendas.Domain/Agenda.cs Agendas/trunk/src/Agendas.Tests/PulicarTests.cs
diffstat 2 files changed, 9 insertions(+), 3 deletions(-) [+]
line wrap: on
line diff
--- a/Agendas/trunk/src/Agendas.Domain/Agenda.cs	Thu Mar 17 16:59:43 2011 -0300
+++ b/Agendas/trunk/src/Agendas.Domain/Agenda.cs	Thu Mar 17 17:03:05 2011 -0300
@@ -26,12 +26,10 @@
         {
         	var ponente = GetPonente(ponenteNombre);
 
-
         	var evento = _eventosRepository.GetPropuestaByTitulo(titulo) ?? new Evento {Titulo = titulo};
         	evento.Ponente = ponente;
         	evento.Fecha = fecha;
 
-
         	if (!evento.Fecha.HasValue)
         		throw new ValidationException();
         	if (NoEstaAutenticado(_seguridad))
@@ -92,6 +90,9 @@
 			evento.Titulo = titulo;
 			evento.Ponente = ponente;
 			evento.Fecha = fecha;
+
+			if (_publicador != null)
+				_publicador.Publicar(evento);
 		}
 
 		public Evento GetEvento(Guid id)
--- a/Agendas/trunk/src/Agendas.Tests/PulicarTests.cs	Thu Mar 17 16:59:43 2011 -0300
+++ b/Agendas/trunk/src/Agendas.Tests/PulicarTests.cs	Thu Mar 17 17:03:05 2011 -0300
@@ -108,11 +108,14 @@
 		public void Publicar_y_modificar_van()
 		{
 			var repository = DefaultEventoRepository;
+			var publicador = new Mock<IPublicador>();
 
-			var agenda = new Agenda(null, null, SeguridadServiceDefault, repository, DefaultPonenteRepository);
+			var agenda = new Agenda(publicador.Object, null, SeguridadServiceDefault, repository, DefaultPonenteRepository);
 
 			agenda.Publicar("Van para publicar", "jjmontes", DateTime.Now);
 
+			publicador.Verify(p => p.Publicar(It.IsAny<Evento>()), Times.Exactly(1));
+
 			var evento = repository.GetEventosConFecha().First();
 			Assert.AreNotEqual(Guid.Empty, evento.Id);
 			Assert.IsNotNull(evento.Fecha);
@@ -120,6 +123,8 @@
 			DateTime fecha = evento.Fecha.Value.AddDays(7);
 			agenda.ModificarEvento(evento.Id, "otro titulo", "otro ponente", fecha);
 
+			publicador.Verify(p => p.Publicar(It.IsAny<Evento>()), Times.Exactly(2));
+
 			evento = repository.GetEventosConFecha().First();
 			Assert.AreEqual("otro titulo", evento.Titulo);
 			Assert.AreEqual("otro ponente", evento.Ponente.Nombre);