annotate Agendas/trunk/src/Agendas.Tests/Workflows/Workflow.cs @ 185:2d02adb79322

Se agrega fecha de termino de un Evento y se incluye la hora a la fecha de inicio. Se modifica la propiedad Fecha del Evento, renombrandola FechaInicio. En el ModelView se agrega propiedades Duración y Hora del Evento cuando es Modificado, Nuevo y Agendado. Las fechas ingresadas son creadas en sistema UTC Queda pendiente Agregar duración a Google Calendar.
author alabra
date Tue, 09 Aug 2011 01:04:27 -0400
parents 6ee05ceea8c3
children 5346c0500594
rev   line source
81
c76661cff260 Workflow de acciones sobre un evento (camino feliz)
nelopauselli
parents:
diff changeset
1 using System;
181
6ee05ceea8c3 Implementando test de workflow también con nh
nelopauselli
parents: 169
diff changeset
2 using System.Linq;
81
c76661cff260 Workflow de acciones sobre un evento (camino feliz)
nelopauselli
parents:
diff changeset
3 using AltNetHispano.Agendas.Domain;
c76661cff260 Workflow de acciones sobre un evento (camino feliz)
nelopauselli
parents:
diff changeset
4 using AltNetHispano.Agendas.Domain.Repositories;
c76661cff260 Workflow de acciones sobre un evento (camino feliz)
nelopauselli
parents:
diff changeset
5 using NUnit.Framework;
c76661cff260 Workflow de acciones sobre un evento (camino feliz)
nelopauselli
parents:
diff changeset
6
c76661cff260 Workflow de acciones sobre un evento (camino feliz)
nelopauselli
parents:
diff changeset
7 namespace AltNetHispano.Agendas.Tests.Workflows
c76661cff260 Workflow de acciones sobre un evento (camino feliz)
nelopauselli
parents:
diff changeset
8 {
c76661cff260 Workflow de acciones sobre un evento (camino feliz)
nelopauselli
parents:
diff changeset
9 internal class Workflow
c76661cff260 Workflow de acciones sobre un evento (camino feliz)
nelopauselli
parents:
diff changeset
10 {
181
6ee05ceea8c3 Implementando test de workflow también con nh
nelopauselli
parents: 169
diff changeset
11 private readonly Func<IDisposable> _requestEmulator;
81
c76661cff260 Workflow de acciones sobre un evento (camino feliz)
nelopauselli
parents:
diff changeset
12 private readonly Agenda _agenda;
181
6ee05ceea8c3 Implementando test de workflow también con nh
nelopauselli
parents: 169
diff changeset
13 private readonly IEventoRepository _eventoRepository;
6ee05ceea8c3 Implementando test de workflow también con nh
nelopauselli
parents: 169
diff changeset
14 private Guid _eventoId;
81
c76661cff260 Workflow de acciones sobre un evento (camino feliz)
nelopauselli
parents:
diff changeset
15
181
6ee05ceea8c3 Implementando test de workflow también con nh
nelopauselli
parents: 169
diff changeset
16 public Workflow(IPublicador publicador, IEventoRepository eventoRepository, IPersonaRepository personaRepository,
6ee05ceea8c3 Implementando test de workflow también con nh
nelopauselli
parents: 169
diff changeset
17 IPatrocinadorRepository patrocinadorRepository, Func<IDisposable> requestEmulator)
81
c76661cff260 Workflow de acciones sobre un evento (camino feliz)
nelopauselli
parents:
diff changeset
18 {
181
6ee05ceea8c3 Implementando test de workflow también con nh
nelopauselli
parents: 169
diff changeset
19 _requestEmulator = requestEmulator;
6ee05ceea8c3 Implementando test de workflow también con nh
nelopauselli
parents: 169
diff changeset
20 _eventoRepository = eventoRepository;
138
62791999ad01 Agregando relación entre Evento y Patrocinador
nelopauselli
parents: 133
diff changeset
21 _agenda = new Agenda(publicador, eventoRepository, personaRepository, patrocinadorRepository);
81
c76661cff260 Workflow de acciones sobre un evento (camino feliz)
nelopauselli
parents:
diff changeset
22 }
c76661cff260 Workflow de acciones sobre un evento (camino feliz)
nelopauselli
parents:
diff changeset
23
c76661cff260 Workflow de acciones sobre un evento (camino feliz)
nelopauselli
parents:
diff changeset
24 public void Proponer()
c76661cff260 Workflow de acciones sobre un evento (camino feliz)
nelopauselli
parents:
diff changeset
25 {
181
6ee05ceea8c3 Implementando test de workflow también con nh
nelopauselli
parents: 169
diff changeset
26 using (_requestEmulator.Invoke())
6ee05ceea8c3 Implementando test de workflow también con nh
nelopauselli
parents: 169
diff changeset
27 {
6ee05ceea8c3 Implementando test de workflow también con nh
nelopauselli
parents: 169
diff changeset
28 var resultado = _agenda.Proponer("SOLID", TestsHelper.GetOrCreatePonente("Jorge"), null, TipoEvento.Van);
6ee05ceea8c3 Implementando test de workflow también con nh
nelopauselli
parents: 169
diff changeset
29 Assert.IsTrue(resultado.Succeful);
6ee05ceea8c3 Implementando test de workflow también con nh
nelopauselli
parents: 169
diff changeset
30 }
6ee05ceea8c3 Implementando test de workflow también con nh
nelopauselli
parents: 169
diff changeset
31
6ee05ceea8c3 Implementando test de workflow también con nh
nelopauselli
parents: 169
diff changeset
32 GetId();
81
c76661cff260 Workflow de acciones sobre un evento (camino feliz)
nelopauselli
parents:
diff changeset
33 }
c76661cff260 Workflow de acciones sobre un evento (camino feliz)
nelopauselli
parents:
diff changeset
34
c76661cff260 Workflow de acciones sobre un evento (camino feliz)
nelopauselli
parents:
diff changeset
35
c76661cff260 Workflow de acciones sobre un evento (camino feliz)
nelopauselli
parents:
diff changeset
36 public void Agendar()
c76661cff260 Workflow de acciones sobre un evento (camino feliz)
nelopauselli
parents:
diff changeset
37 {
181
6ee05ceea8c3 Implementando test de workflow también con nh
nelopauselli
parents: 169
diff changeset
38 using (_requestEmulator.Invoke())
6ee05ceea8c3 Implementando test de workflow también con nh
nelopauselli
parents: 169
diff changeset
39 {
185
2d02adb79322 Se agrega fecha de termino de un Evento y se incluye la hora a la fecha de inicio.
alabra
parents: 181
diff changeset
40 var fechaInicio = DateTime.Today.AddDays(5).ToUniversalTime();
2d02adb79322 Se agrega fecha de termino de un Evento y se incluye la hora a la fecha de inicio.
alabra
parents: 181
diff changeset
41 var fechaTermino = fechaInicio.AddHours(2);
2d02adb79322 Se agrega fecha de termino de un Evento y se incluye la hora a la fecha de inicio.
alabra
parents: 181
diff changeset
42 var resultado = _agenda.Agendar("SOLID", TestsHelper.GetOrCreatePonente("Jorge"), fechaInicio, fechaTermino, null,
2d02adb79322 Se agrega fecha de termino de un Evento y se incluye la hora a la fecha de inicio.
alabra
parents: 181
diff changeset
43 TipoEvento.Van);
181
6ee05ceea8c3 Implementando test de workflow también con nh
nelopauselli
parents: 169
diff changeset
44 Assert.IsTrue(resultado.Succeful);
6ee05ceea8c3 Implementando test de workflow también con nh
nelopauselli
parents: 169
diff changeset
45 }
6ee05ceea8c3 Implementando test de workflow también con nh
nelopauselli
parents: 169
diff changeset
46
6ee05ceea8c3 Implementando test de workflow también con nh
nelopauselli
parents: 169
diff changeset
47 GetId();
81
c76661cff260 Workflow de acciones sobre un evento (camino feliz)
nelopauselli
parents:
diff changeset
48 }
c76661cff260 Workflow de acciones sobre un evento (camino feliz)
nelopauselli
parents:
diff changeset
49
181
6ee05ceea8c3 Implementando test de workflow también con nh
nelopauselli
parents: 169
diff changeset
50 private void GetId()
81
c76661cff260 Workflow de acciones sobre un evento (camino feliz)
nelopauselli
parents:
diff changeset
51 {
181
6ee05ceea8c3 Implementando test de workflow también con nh
nelopauselli
parents: 169
diff changeset
52 using (_requestEmulator.Invoke())
6ee05ceea8c3 Implementando test de workflow también con nh
nelopauselli
parents: 169
diff changeset
53 {
6ee05ceea8c3 Implementando test de workflow también con nh
nelopauselli
parents: 169
diff changeset
54 var evento = _eventoRepository.GetActivos().SingleOrDefault();
6ee05ceea8c3 Implementando test de workflow también con nh
nelopauselli
parents: 169
diff changeset
55 Assert.IsNotNull(evento);
6ee05ceea8c3 Implementando test de workflow también con nh
nelopauselli
parents: 169
diff changeset
56 _eventoId = evento.Id;
6ee05ceea8c3 Implementando test de workflow también con nh
nelopauselli
parents: 169
diff changeset
57 }
81
c76661cff260 Workflow de acciones sobre un evento (camino feliz)
nelopauselli
parents:
diff changeset
58 }
c76661cff260 Workflow de acciones sobre un evento (camino feliz)
nelopauselli
parents:
diff changeset
59
181
6ee05ceea8c3 Implementando test de workflow también con nh
nelopauselli
parents: 169
diff changeset
60 public void Confirmar()
81
c76661cff260 Workflow de acciones sobre un evento (camino feliz)
nelopauselli
parents:
diff changeset
61 {
181
6ee05ceea8c3 Implementando test de workflow también con nh
nelopauselli
parents: 169
diff changeset
62 using (_requestEmulator.Invoke())
6ee05ceea8c3 Implementando test de workflow también con nh
nelopauselli
parents: 169
diff changeset
63 {
6ee05ceea8c3 Implementando test de workflow también con nh
nelopauselli
parents: 169
diff changeset
64 var resultado = _agenda.Confirmar(_eventoId);
6ee05ceea8c3 Implementando test de workflow también con nh
nelopauselli
parents: 169
diff changeset
65 Assert.IsTrue(resultado.Succeful);
6ee05ceea8c3 Implementando test de workflow también con nh
nelopauselli
parents: 169
diff changeset
66 }
6ee05ceea8c3 Implementando test de workflow también con nh
nelopauselli
parents: 169
diff changeset
67 }
6ee05ceea8c3 Implementando test de workflow también con nh
nelopauselli
parents: 169
diff changeset
68
6ee05ceea8c3 Implementando test de workflow también con nh
nelopauselli
parents: 169
diff changeset
69 public void Publicar()
6ee05ceea8c3 Implementando test de workflow también con nh
nelopauselli
parents: 169
diff changeset
70 {
6ee05ceea8c3 Implementando test de workflow también con nh
nelopauselli
parents: 169
diff changeset
71 using (_requestEmulator.Invoke())
6ee05ceea8c3 Implementando test de workflow también con nh
nelopauselli
parents: 169
diff changeset
72 {
6ee05ceea8c3 Implementando test de workflow también con nh
nelopauselli
parents: 169
diff changeset
73 var resultado = _agenda.Publicar(_eventoId, 1, "http://www.altnethispano.org/", new TimeSpan(2, 11, 0));
6ee05ceea8c3 Implementando test de workflow también con nh
nelopauselli
parents: 169
diff changeset
74 Assert.IsTrue(resultado.Succeful);
6ee05ceea8c3 Implementando test de workflow también con nh
nelopauselli
parents: 169
diff changeset
75 }
81
c76661cff260 Workflow de acciones sobre un evento (camino feliz)
nelopauselli
parents:
diff changeset
76 }
133
6f1041301797 Se agregan los estados Cancelado y Descartado con las acciones Cancelar, Reagendar, Descartar, Reproponer, según ticket 146.
alabra
parents: 106
diff changeset
77
181
6ee05ceea8c3 Implementando test de workflow también con nh
nelopauselli
parents: 169
diff changeset
78 public void Cancelar()
6ee05ceea8c3 Implementando test de workflow también con nh
nelopauselli
parents: 169
diff changeset
79 {
6ee05ceea8c3 Implementando test de workflow también con nh
nelopauselli
parents: 169
diff changeset
80 using (_requestEmulator.Invoke())
6ee05ceea8c3 Implementando test de workflow también con nh
nelopauselli
parents: 169
diff changeset
81 {
6ee05ceea8c3 Implementando test de workflow también con nh
nelopauselli
parents: 169
diff changeset
82 var resultado = _agenda.Cancelar(_eventoId);
6ee05ceea8c3 Implementando test de workflow también con nh
nelopauselli
parents: 169
diff changeset
83 Assert.IsTrue(resultado.Succeful);
6ee05ceea8c3 Implementando test de workflow también con nh
nelopauselli
parents: 169
diff changeset
84 }
6ee05ceea8c3 Implementando test de workflow también con nh
nelopauselli
parents: 169
diff changeset
85 }
133
6f1041301797 Se agregan los estados Cancelado y Descartado con las acciones Cancelar, Reagendar, Descartar, Reproponer, según ticket 146.
alabra
parents: 106
diff changeset
86
181
6ee05ceea8c3 Implementando test de workflow también con nh
nelopauselli
parents: 169
diff changeset
87 public void Descartar()
6ee05ceea8c3 Implementando test de workflow también con nh
nelopauselli
parents: 169
diff changeset
88 {
6ee05ceea8c3 Implementando test de workflow también con nh
nelopauselli
parents: 169
diff changeset
89 using (_requestEmulator.Invoke())
6ee05ceea8c3 Implementando test de workflow también con nh
nelopauselli
parents: 169
diff changeset
90 {
6ee05ceea8c3 Implementando test de workflow también con nh
nelopauselli
parents: 169
diff changeset
91 var resultado = _agenda.Descartar(_eventoId);
6ee05ceea8c3 Implementando test de workflow también con nh
nelopauselli
parents: 169
diff changeset
92 Assert.IsTrue(resultado.Succeful);
6ee05ceea8c3 Implementando test de workflow también con nh
nelopauselli
parents: 169
diff changeset
93 }
6ee05ceea8c3 Implementando test de workflow también con nh
nelopauselli
parents: 169
diff changeset
94 }
133
6f1041301797 Se agregan los estados Cancelado y Descartado con las acciones Cancelar, Reagendar, Descartar, Reproponer, según ticket 146.
alabra
parents: 106
diff changeset
95
181
6ee05ceea8c3 Implementando test de workflow también con nh
nelopauselli
parents: 169
diff changeset
96 public void ReProponer()
6ee05ceea8c3 Implementando test de workflow también con nh
nelopauselli
parents: 169
diff changeset
97 {
6ee05ceea8c3 Implementando test de workflow también con nh
nelopauselli
parents: 169
diff changeset
98 using (_requestEmulator.Invoke())
6ee05ceea8c3 Implementando test de workflow también con nh
nelopauselli
parents: 169
diff changeset
99 {
6ee05ceea8c3 Implementando test de workflow también con nh
nelopauselli
parents: 169
diff changeset
100 var resultado = _agenda.ReProponer(_eventoId);
6ee05ceea8c3 Implementando test de workflow también con nh
nelopauselli
parents: 169
diff changeset
101 Assert.IsTrue(resultado.Succeful);
6ee05ceea8c3 Implementando test de workflow también con nh
nelopauselli
parents: 169
diff changeset
102 }
6ee05ceea8c3 Implementando test de workflow también con nh
nelopauselli
parents: 169
diff changeset
103 }
133
6f1041301797 Se agregan los estados Cancelado y Descartado con las acciones Cancelar, Reagendar, Descartar, Reproponer, según ticket 146.
alabra
parents: 106
diff changeset
104
181
6ee05ceea8c3 Implementando test de workflow también con nh
nelopauselli
parents: 169
diff changeset
105 public void ReAgendar()
6ee05ceea8c3 Implementando test de workflow también con nh
nelopauselli
parents: 169
diff changeset
106 {
6ee05ceea8c3 Implementando test de workflow también con nh
nelopauselli
parents: 169
diff changeset
107 using (_requestEmulator.Invoke())
6ee05ceea8c3 Implementando test de workflow también con nh
nelopauselli
parents: 169
diff changeset
108 {
6ee05ceea8c3 Implementando test de workflow también con nh
nelopauselli
parents: 169
diff changeset
109 var resultado = _agenda.ReAgendar(_eventoId);
6ee05ceea8c3 Implementando test de workflow también con nh
nelopauselli
parents: 169
diff changeset
110 Assert.IsTrue(resultado.Succeful);
6ee05ceea8c3 Implementando test de workflow también con nh
nelopauselli
parents: 169
diff changeset
111 }
6ee05ceea8c3 Implementando test de workflow también con nh
nelopauselli
parents: 169
diff changeset
112 }
81
c76661cff260 Workflow de acciones sobre un evento (camino feliz)
nelopauselli
parents:
diff changeset
113 }
c76661cff260 Workflow de acciones sobre un evento (camino feliz)
nelopauselli
parents:
diff changeset
114 }