annotate Agendas/trunk/src/Agendas.Repositories.Tests/Workflow.cs @ 274:72a96459f910

Ticket #123: Patrocinadores de las vans.
author juanjose.montesdeocaarbos
date Wed, 30 Nov 2011 08:56:01 -0300
parents c61954d24c8c
children bc8dfbde0523
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
222
68b09c30b0d2 Separando los test de persistencia en un proyecto aparte
nelopauselli
parents: 200
diff changeset
7 namespace Agendas.Repositories.Tests
81
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;
222
68b09c30b0d2 Separando los test de persistencia en un proyecto aparte
nelopauselli
parents: 200
diff changeset
15 private readonly TestsHelper _testsHelper;
81
c76661cff260 Workflow de acciones sobre un evento (camino feliz)
nelopauselli
parents:
diff changeset
16
181
6ee05ceea8c3 Implementando test de workflow también con nh
nelopauselli
parents: 169
diff changeset
17 public Workflow(IPublicador publicador, IEventoRepository eventoRepository, IPersonaRepository personaRepository,
274
72a96459f910 Ticket #123: Patrocinadores de las vans.
juanjose.montesdeocaarbos
parents: 235
diff changeset
18 IPatrocinadorRepository patrocinadorRepository, Func<IDisposable> requestEmulator)
81
c76661cff260 Workflow de acciones sobre un evento (camino feliz)
nelopauselli
parents:
diff changeset
19 {
181
6ee05ceea8c3 Implementando test de workflow también con nh
nelopauselli
parents: 169
diff changeset
20 _requestEmulator = requestEmulator;
6ee05ceea8c3 Implementando test de workflow también con nh
nelopauselli
parents: 169
diff changeset
21 _eventoRepository = eventoRepository;
274
72a96459f910 Ticket #123: Patrocinadores de las vans.
juanjose.montesdeocaarbos
parents: 235
diff changeset
22
72a96459f910 Ticket #123: Patrocinadores de las vans.
juanjose.montesdeocaarbos
parents: 235
diff changeset
23 _agenda = new Agenda(publicador, eventoRepository, personaRepository, patrocinadorRepository);
222
68b09c30b0d2 Separando los test de persistencia en un proyecto aparte
nelopauselli
parents: 200
diff changeset
24 _testsHelper = new TestsHelper(personaRepository);
81
c76661cff260 Workflow de acciones sobre un evento (camino feliz)
nelopauselli
parents:
diff changeset
25 }
c76661cff260 Workflow de acciones sobre un evento (camino feliz)
nelopauselli
parents:
diff changeset
26
c76661cff260 Workflow de acciones sobre un evento (camino feliz)
nelopauselli
parents:
diff changeset
27 public void Proponer()
c76661cff260 Workflow de acciones sobre un evento (camino feliz)
nelopauselli
parents:
diff changeset
28 {
181
6ee05ceea8c3 Implementando test de workflow también con nh
nelopauselli
parents: 169
diff changeset
29 using (_requestEmulator.Invoke())
6ee05ceea8c3 Implementando test de workflow también con nh
nelopauselli
parents: 169
diff changeset
30 {
235
c61954d24c8c Quitando ponente principal y utilizando siempre la lista de ponentes
nelopauselli
parents: 222
diff changeset
31 var resultado = _agenda.Proponer("SOLID", new[] {_testsHelper.GetOrCreatePonente("Jorge")}, null, TipoEvento.Van);
c61954d24c8c Quitando ponente principal y utilizando siempre la lista de ponentes
nelopauselli
parents: 222
diff changeset
32 Console.WriteLine(resultado.Message);
181
6ee05ceea8c3 Implementando test de workflow también con nh
nelopauselli
parents: 169
diff changeset
33 Assert.IsTrue(resultado.Succeful);
6ee05ceea8c3 Implementando test de workflow también con nh
nelopauselli
parents: 169
diff changeset
34 }
235
c61954d24c8c Quitando ponente principal y utilizando siempre la lista de ponentes
nelopauselli
parents: 222
diff changeset
35
181
6ee05ceea8c3 Implementando test de workflow también con nh
nelopauselli
parents: 169
diff changeset
36 GetId();
81
c76661cff260 Workflow de acciones sobre un evento (camino feliz)
nelopauselli
parents:
diff changeset
37 }
c76661cff260 Workflow de acciones sobre un evento (camino feliz)
nelopauselli
parents:
diff changeset
38
c76661cff260 Workflow de acciones sobre un evento (camino feliz)
nelopauselli
parents:
diff changeset
39
c76661cff260 Workflow de acciones sobre un evento (camino feliz)
nelopauselli
parents:
diff changeset
40 public void Agendar()
c76661cff260 Workflow de acciones sobre un evento (camino feliz)
nelopauselli
parents:
diff changeset
41 {
181
6ee05ceea8c3 Implementando test de workflow también con nh
nelopauselli
parents: 169
diff changeset
42 using (_requestEmulator.Invoke())
6ee05ceea8c3 Implementando test de workflow también con nh
nelopauselli
parents: 169
diff changeset
43 {
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
44 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
45 var fechaTermino = fechaInicio.AddHours(2);
235
c61954d24c8c Quitando ponente principal y utilizando siempre la lista de ponentes
nelopauselli
parents: 222
diff changeset
46 var resultado = _agenda.Agendar("SOLID", new[]{ _testsHelper.GetOrCreatePonente("Jorge")}, fechaInicio, fechaTermino, null,
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
47 TipoEvento.Van);
181
6ee05ceea8c3 Implementando test de workflow también con nh
nelopauselli
parents: 169
diff changeset
48 Assert.IsTrue(resultado.Succeful);
6ee05ceea8c3 Implementando test de workflow también con nh
nelopauselli
parents: 169
diff changeset
49 }
6ee05ceea8c3 Implementando test de workflow también con nh
nelopauselli
parents: 169
diff changeset
50
6ee05ceea8c3 Implementando test de workflow también con nh
nelopauselli
parents: 169
diff changeset
51 GetId();
81
c76661cff260 Workflow de acciones sobre un evento (camino feliz)
nelopauselli
parents:
diff changeset
52 }
c76661cff260 Workflow de acciones sobre un evento (camino feliz)
nelopauselli
parents:
diff changeset
53
181
6ee05ceea8c3 Implementando test de workflow también con nh
nelopauselli
parents: 169
diff changeset
54 private void GetId()
81
c76661cff260 Workflow de acciones sobre un evento (camino feliz)
nelopauselli
parents:
diff changeset
55 {
181
6ee05ceea8c3 Implementando test de workflow también con nh
nelopauselli
parents: 169
diff changeset
56 using (_requestEmulator.Invoke())
6ee05ceea8c3 Implementando test de workflow también con nh
nelopauselli
parents: 169
diff changeset
57 {
6ee05ceea8c3 Implementando test de workflow también con nh
nelopauselli
parents: 169
diff changeset
58 var evento = _eventoRepository.GetActivos().SingleOrDefault();
6ee05ceea8c3 Implementando test de workflow también con nh
nelopauselli
parents: 169
diff changeset
59 Assert.IsNotNull(evento);
6ee05ceea8c3 Implementando test de workflow también con nh
nelopauselli
parents: 169
diff changeset
60 _eventoId = evento.Id;
6ee05ceea8c3 Implementando test de workflow también con nh
nelopauselli
parents: 169
diff changeset
61 }
81
c76661cff260 Workflow de acciones sobre un evento (camino feliz)
nelopauselli
parents:
diff changeset
62 }
c76661cff260 Workflow de acciones sobre un evento (camino feliz)
nelopauselli
parents:
diff changeset
63
181
6ee05ceea8c3 Implementando test de workflow también con nh
nelopauselli
parents: 169
diff changeset
64 public void Confirmar()
81
c76661cff260 Workflow de acciones sobre un evento (camino feliz)
nelopauselli
parents:
diff changeset
65 {
181
6ee05ceea8c3 Implementando test de workflow también con nh
nelopauselli
parents: 169
diff changeset
66 using (_requestEmulator.Invoke())
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 var resultado = _agenda.Confirmar(_eventoId);
6ee05ceea8c3 Implementando test de workflow también con nh
nelopauselli
parents: 169
diff changeset
69 Assert.IsTrue(resultado.Succeful);
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 }
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 public void Publicar()
6ee05ceea8c3 Implementando test de workflow también con nh
nelopauselli
parents: 169
diff changeset
74 {
6ee05ceea8c3 Implementando test de workflow también con nh
nelopauselli
parents: 169
diff changeset
75 using (_requestEmulator.Invoke())
6ee05ceea8c3 Implementando test de workflow también con nh
nelopauselli
parents: 169
diff changeset
76 {
6ee05ceea8c3 Implementando test de workflow también con nh
nelopauselli
parents: 169
diff changeset
77 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
78 Assert.IsTrue(resultado.Succeful);
6ee05ceea8c3 Implementando test de workflow también con nh
nelopauselli
parents: 169
diff changeset
79 }
81
c76661cff260 Workflow de acciones sobre un evento (camino feliz)
nelopauselli
parents:
diff changeset
80 }
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
81
181
6ee05ceea8c3 Implementando test de workflow también con nh
nelopauselli
parents: 169
diff changeset
82 public void Cancelar()
6ee05ceea8c3 Implementando test de workflow también con nh
nelopauselli
parents: 169
diff changeset
83 {
6ee05ceea8c3 Implementando test de workflow también con nh
nelopauselli
parents: 169
diff changeset
84 using (_requestEmulator.Invoke())
6ee05ceea8c3 Implementando test de workflow también con nh
nelopauselli
parents: 169
diff changeset
85 {
6ee05ceea8c3 Implementando test de workflow también con nh
nelopauselli
parents: 169
diff changeset
86 var resultado = _agenda.Cancelar(_eventoId);
6ee05ceea8c3 Implementando test de workflow también con nh
nelopauselli
parents: 169
diff changeset
87 Assert.IsTrue(resultado.Succeful);
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 }
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
90
181
6ee05ceea8c3 Implementando test de workflow también con nh
nelopauselli
parents: 169
diff changeset
91 public void Descartar()
6ee05ceea8c3 Implementando test de workflow también con nh
nelopauselli
parents: 169
diff changeset
92 {
6ee05ceea8c3 Implementando test de workflow también con nh
nelopauselli
parents: 169
diff changeset
93 using (_requestEmulator.Invoke())
6ee05ceea8c3 Implementando test de workflow también con nh
nelopauselli
parents: 169
diff changeset
94 {
6ee05ceea8c3 Implementando test de workflow también con nh
nelopauselli
parents: 169
diff changeset
95 var resultado = _agenda.Descartar(_eventoId);
6ee05ceea8c3 Implementando test de workflow también con nh
nelopauselli
parents: 169
diff changeset
96 Assert.IsTrue(resultado.Succeful);
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 }
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
99
181
6ee05ceea8c3 Implementando test de workflow también con nh
nelopauselli
parents: 169
diff changeset
100 public void ReProponer()
6ee05ceea8c3 Implementando test de workflow también con nh
nelopauselli
parents: 169
diff changeset
101 {
6ee05ceea8c3 Implementando test de workflow también con nh
nelopauselli
parents: 169
diff changeset
102 using (_requestEmulator.Invoke())
6ee05ceea8c3 Implementando test de workflow también con nh
nelopauselli
parents: 169
diff changeset
103 {
6ee05ceea8c3 Implementando test de workflow también con nh
nelopauselli
parents: 169
diff changeset
104 var resultado = _agenda.ReProponer(_eventoId);
6ee05ceea8c3 Implementando test de workflow también con nh
nelopauselli
parents: 169
diff changeset
105 Assert.IsTrue(resultado.Succeful);
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 }
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
108
181
6ee05ceea8c3 Implementando test de workflow también con nh
nelopauselli
parents: 169
diff changeset
109 public void ReAgendar()
6ee05ceea8c3 Implementando test de workflow también con nh
nelopauselli
parents: 169
diff changeset
110 {
6ee05ceea8c3 Implementando test de workflow también con nh
nelopauselli
parents: 169
diff changeset
111 using (_requestEmulator.Invoke())
6ee05ceea8c3 Implementando test de workflow también con nh
nelopauselli
parents: 169
diff changeset
112 {
6ee05ceea8c3 Implementando test de workflow también con nh
nelopauselli
parents: 169
diff changeset
113 var resultado = _agenda.ReAgendar(_eventoId);
6ee05ceea8c3 Implementando test de workflow también con nh
nelopauselli
parents: 169
diff changeset
114 Assert.IsTrue(resultado.Succeful);
6ee05ceea8c3 Implementando test de workflow también con nh
nelopauselli
parents: 169
diff changeset
115 }
6ee05ceea8c3 Implementando test de workflow también con nh
nelopauselli
parents: 169
diff changeset
116 }
81
c76661cff260 Workflow de acciones sobre un evento (camino feliz)
nelopauselli
parents:
diff changeset
117 }
c76661cff260 Workflow de acciones sobre un evento (camino feliz)
nelopauselli
parents:
diff changeset
118 }