diff Agendas/trunk/src/Agendas.Tests/Workflows/WorkflowTests.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 b74734a1a755
children 462a78196d11
line wrap: on
line diff
--- a/Agendas/trunk/src/Agendas.Tests/Workflows/WorkflowTests.cs	Sun Jul 10 23:55:56 2011 -0400
+++ b/Agendas/trunk/src/Agendas.Tests/Workflows/WorkflowTests.cs	Sun Jul 10 23:59:19 2011 -0400
@@ -35,8 +35,124 @@
 
 			_publicador.Verify(p => p.Publicar(It.IsAny<IEnumerable<Track>>()), Times.Exactly(2));
 		}
+        [Test]
+        public void Proponer_agendar_y_cancelar()
+        {
+            _workflow.Proponer();
 
-		[Test]
+            _workflow.Agendar();
+
+            var evento = DefaultEventoRepository.GetActivos().SingleOrDefault();
+            Assert.IsNotNull(evento);
+
+            _workflow.Cancelar(evento.Id);
+
+            _publicador.Verify(p=>p.Publicar(It.IsAny<IEnumerable<Track>>()), Times.Exactly(3));
+        }
+
+        [Test]
+        public void Proponer_agendar_cancelar_y_reagendar()
+        {
+            _workflow.Proponer();
+
+            _workflow.Agendar();
+
+            var evento = DefaultEventoRepository.GetActivos().SingleOrDefault();
+            Assert.IsNotNull(evento);
+
+            _workflow.Cancelar(evento.Id);
+
+            _workflow.ReAgendar(evento.Id);
+
+            _publicador.Verify(p => p.Publicar(It.IsAny<IEnumerable<Track>>()), Times.Exactly(4));
+        }
+
+        [Test, Explicit("Se esta discutiendo este problema en http://www.assembla.com/spaces/altnet-hispano/messages/768408")]
+        public void Proponer_agendar_cancelar_reproponer_agendar_y_confirmar()
+        {
+            _workflow.Proponer();
+
+            _workflow.Agendar();
+
+            var evento = DefaultEventoRepository.GetActivos().SingleOrDefault();
+            Assert.IsNotNull(evento);
+
+            _workflow.Cancelar(evento.Id);
+
+            _workflow.ReProponer(evento.Id);
+
+            _workflow.Agendar();
+
+            _workflow.Confirmar(evento.Id);
+
+            _publicador.Verify(p => p.Publicar(It.IsAny<IEnumerable<Track>>()), Times.Exactly(6));
+        }
+
+        [Test]
+        public void Proponer_agendar_cancelar_reagendar_y_confirmar()
+        {
+            _workflow.Proponer();
+
+            _workflow.Agendar();
+
+            var evento = DefaultEventoRepository.GetActivos().SingleOrDefault();
+            Assert.IsNotNull(evento);
+
+            _workflow.Cancelar(evento.Id);
+
+            _workflow.ReAgendar(evento.Id);
+
+            _workflow.Confirmar(evento.Id);
+
+            _publicador.Verify(p => p.Publicar(It.IsAny<IEnumerable<Track>>()), Times.Exactly(5));
+        }
+
+	    [Test]
+        public void Proponer_agendar_cancelar_y_reproponer()
+        {
+            _workflow.Proponer();
+
+            _workflow.Agendar();
+
+            var evento = DefaultEventoRepository.GetActivos().SingleOrDefault();
+            Assert.IsNotNull(evento);
+
+            _workflow.Cancelar(evento.Id);
+
+            _workflow.ReProponer(evento.Id);
+
+            _publicador.Verify(p => p.Publicar(It.IsAny<IEnumerable<Track>>()), Times.Exactly(4));
+        }
+
+        [Test]
+        public void Proponer_y_descartar()
+        {
+            _workflow.Proponer();
+            var evento = DefaultEventoRepository.GetActivos().SingleOrDefault();
+            Assert.IsNotNull(evento);
+
+            _workflow.Descartar(evento.Id);
+            _publicador.Verify(p => p.Publicar(It.IsAny<IEnumerable<Track>>()), Times.Exactly(2));
+        }
+
+	    [Test]
+        public void Proponer_agendar_cancelar_y_descartar()
+        {
+            _workflow.Proponer();
+
+            _workflow.Agendar();
+
+            var evento = DefaultEventoRepository.GetActivos().SingleOrDefault();
+            Assert.IsNotNull(evento);
+
+            _workflow.Cancelar(evento.Id);
+
+            _workflow.Descartar(evento.Id);
+
+            _publicador.Verify(p => p.Publicar(It.IsAny<IEnumerable<Track>>()), Times.Exactly(4));
+        }
+
+	    [Test]
 		public void Proponer_agendar_y_confirmar()
 		{
 			_workflow.Proponer();