diff Agendas/trunk/src/Agendas.Tests/AgendarTests.cs @ 133:6f1041301797

Se agregan los estados Cancelado y Descartado con las acciones Cancelar, Reagendar, Descartar, Reproponer, según ticket 146. Falta solucionar problema con flujo, ver más información en el ticket de assembla. http://www.assembla.com/spaces/altnet-hispano/tickets/146-implementar-estado-descartar-y-cancelar-de-eventos
author alabra
date Sun, 10 Jul 2011 23:59:19 -0400
parents 8fa58a79656a
children 62791999ad01
line wrap: on
line diff
--- a/Agendas/trunk/src/Agendas.Tests/AgendarTests.cs	Sun Jul 10 23:55:56 2011 -0400
+++ b/Agendas/trunk/src/Agendas.Tests/AgendarTests.cs	Sun Jul 10 23:59:19 2011 -0400
@@ -234,7 +234,42 @@
 			Assert.That(evento.GetTrackNews().Count(t => t.Accion == Accion.Agendar) == 1);
 		}
 
-		[Test]
+        [Test]
+        public void Al_cancelar_un_evento_debe_quedar_con_estado_EventoCanceladoState_y_debe_generar_el_track_correspondiente()
+        {
+            var publicador1 = new Mock<IPublicador>();
+
+            var agenda = new Agenda(publicador1.Object, DefaultEventoRepository, DefaultPersonaRepository);
+            agenda.Agendar("Html 5", "jjmontes", DateTime.MinValue, urlInvitacion, TipoEvento.Van);
+
+            var evento = DefaultEventoRepository.GetActivos().Single(e => e.Titulo == "Html 5");
+
+            agenda.Cancelar(evento.Id);
+
+            Assert.IsInstanceOf(typeof(EventoCanceladoState), evento.GetEstado());
+            Assert.That(evento.GetTrackNews().Count(t => t.Accion == Accion.Cancelar) == 1);
+            Assert.AreEqual(EventoCanceladoState.GetInstance().GetDescripcion(), evento.Estado);
+        }
+
+        [Test]
+        public void Al_descartar_un_evento_debe_quedar_con_estado_EventoDescartadoState_y_debe_generar_el_track_correspondiente()
+        {
+            var publicador1 = new Mock<IPublicador>();
+
+            var agenda = new Agenda(publicador1.Object, DefaultEventoRepository, DefaultPersonaRepository);
+            agenda.Agendar("Html 5", "jjmontes", DateTime.MinValue, urlInvitacion, TipoEvento.Van);
+
+            var evento = DefaultEventoRepository.GetActivos().Single(e => e.Titulo == "Html 5");
+
+            agenda.Cancelar(evento.Id);
+            agenda.Descartar(evento.Id);
+
+            Assert.IsInstanceOf(typeof(EventoDescartadoState), evento.GetEstado());
+            Assert.That(evento.GetTrackNews().Count(t => t.Accion == Accion.Descartar) == 1);
+            Assert.AreEqual(EventoDescartadoState.GetInstance().GetDescripcion(), evento.Estado);
+        }
+	    
+        [Test]
 		public void Al_confirmar_un_evento_debe_quedar_con_estado_EventoConfirmadoState_y_debe_generar_el_track_correspondiente()
 		{
 			var publicador1 = new Mock<IPublicador>();