changeset 6:2912c1dd0e6b

Se verificó mediante un test que las propuestas y las publicaciones se estaban mezclando. Se corrigió el bug.
author juanjose.montesdeocaarbos
date Tue, 08 Feb 2011 07:47:47 -0300
parents 51294f4e492f
children deee2ca97f5b
files Agendas/trunk/src/Agendas.Domain/Agenda.cs Agendas/trunk/src/Agendas.Tests/AgendaTests.cs
diffstat 2 files changed, 49 insertions(+), 23 deletions(-) [+]
line wrap: on
line diff
--- a/Agendas/trunk/src/Agendas.Domain/Agenda.cs	Tue Feb 08 00:12:08 2011 -0300
+++ b/Agendas/trunk/src/Agendas.Domain/Agenda.cs	Tue Feb 08 07:47:47 2011 -0300
@@ -6,7 +6,8 @@
 {
 	public class Agenda
 	{
-		private readonly IList<Evento> _eventos;
+        private readonly IList<Evento> _eventosPropuestos;
+        private readonly IList<Evento> _eventosPublicados;
 		private readonly IPublicador _publicador;
 		private readonly IRecordador _recordador;
 
@@ -14,24 +15,30 @@
 		{
 			_publicador = publicador;
 			_recordador = recordador;
-			_eventos = new List<Evento>();
+			_eventosPropuestos = new List<Evento>();
+            _eventosPublicados = new List<Evento>();
 		}
 
 		public Guid Id { get; set; }
 
-		public IEnumerable<Evento> Eventos
-		{
-			get { return _eventos; }
-		}
+        public IEnumerable<Evento> EventosPropuestos
+        {
+            get { return _eventosPropuestos; }
+        }
 
-		public void Publicar(Evento evento)
+        public IEnumerable<Evento> EventosPublicados
+        {
+            get { return _eventosPublicados; }
+        }
+
+        public void Publicar(Evento evento)
 		{
 			if (!evento.Fecha.HasValue)
 				throw new ValidationException();
 			
 			if (_publicador != null)
 				_publicador.Publicar(evento);
-			_eventos.Add(evento);
+            _eventosPublicados.Add(evento);
 		}
 
 		public void Publicar(Van van)
@@ -41,7 +48,6 @@
 			Publicar(van as Evento);
 		}
 
-
 		public void Recordar(Evento evento)
 		{
 			if (_recordador != null)
@@ -52,12 +58,17 @@
 		{
 			if (string.IsNullOrWhiteSpace(van.Titulo))
 				throw new ValidationException();
-			_eventos.Add(van);
+			_eventosPropuestos.Add(van);
 		}
 
-		public IList<Evento> GetEventosPropuestos()
-		{
-			return _eventos;
-		}
-	}
+        public IList<Evento> GetEventosPropuestos()
+        {
+            return _eventosPropuestos;
+        }
+
+        public IList<Evento> GetEventosPublicados()
+        {
+            return _eventosPublicados;
+        }
+    }
 }
\ No newline at end of file
--- a/Agendas/trunk/src/Agendas.Tests/AgendaTests.cs	Tue Feb 08 00:12:08 2011 -0300
+++ b/Agendas/trunk/src/Agendas.Tests/AgendaTests.cs	Tue Feb 08 07:47:47 2011 -0300
@@ -36,7 +36,7 @@
 			var van = EventoObjectMother.GetVanValidaParaPublicar();
 
 			agenda.Publicar(van);
-			Assert.AreEqual(1, agenda.Eventos.Count());
+			Assert.AreEqual(1, agenda.EventosPublicados.Count());
 
 			publicador.Verify(p => p.Publicar(It.IsAny<Evento>()), Times.Exactly(1));
 		}
@@ -51,12 +51,11 @@
 
 			var van = EventoObjectMother.GetVanValidaParaPublicar();
 			Assert.Throws<Exception>(() => agenda.Publicar(van));
-			Assert.AreEqual(0, agenda.Eventos.Count());
+			Assert.AreEqual(0, agenda.EventosPublicados.Count());
 
 			publicador.Verify(p => p.Publicar(It.IsAny<Evento>()), Times.Exactly(1));
 		}
 
-
 		[Test]
 		public void Publicar_van_multiples_publicadores()
 		{
@@ -90,7 +89,7 @@
 			publicador2.Verify(p => p.Publicar(It.IsAny<Evento>()), Times.Exactly(1));
 			recordador1.Verify(r => r.Recordar(It.IsAny<Evento>()), Times.Exactly(1));
 
-			Assert.AreEqual(1, agenda.Eventos.Count());
+			Assert.AreEqual(1, agenda.EventosPublicados.Count());
 		}
 
 		[Test]
@@ -107,6 +106,24 @@
 			Assert.AreEqual("Van propuesta", eventosPropuestos[0].Titulo);
 		}
 
+        [Test]
+        public void Verificar_propuesta_separada_de_publicacion()
+        {
+            var agenda = new Agenda(null, null);
+
+            var vanPropuesta = new Van { Titulo = "Van propuesta" };
+            var vanPublicada = EventoObjectMother.GetVanValidaParaPublicar();
+
+            agenda.Proponer(vanPropuesta);
+            agenda.Publicar(vanPublicada);
+
+            IList<Evento> eventosPropuestos = agenda.GetEventosPropuestos();
+            IList<Evento> eventosPublicados = agenda.GetEventosPublicados();
+
+            Assert.AreEqual(1, eventosPropuestos.Count);
+            Assert.AreEqual(1, eventosPublicados.Count);
+        }
+
 		[Test]
 		public void Propuesta_de_van_sin_titulo()
 		{
@@ -117,7 +134,6 @@
 			Assert.AreEqual(Guid.Empty, van.Id);
 		}
 
-
 		[Test]
 		public void Agendar_van_propuesta_sin_fecha()
 		{
@@ -154,7 +170,6 @@
 			}
 		}
 
-
 		[Test]
 		public void Van_crud()
 		{
@@ -175,7 +190,7 @@
 				Agenda agenda = agendaRepository.Get(vanId);
 
 				Assert.IsNotNull(agenda);
-				Assert.AreEqual(1, agenda.Eventos.Count());
+				Assert.AreEqual(1, agenda.EventosPublicados.Count());
 				agenda.Publicar(EventoObjectMother.GetCafeValidoParaPublicar());
 
 				agendaRepository.Update(agenda);
@@ -187,7 +202,7 @@
 				Agenda agenda = agendaRepository.Get(vanId);
 
 				Assert.IsNotNull(agenda);
-				Assert.AreEqual(2, agenda.Eventos.Count());
+				Assert.AreEqual(2, agenda.EventosPublicados.Count());
 
 				agendaRepository.Delete(agenda);
 			}