annotate Agendas/trunk/src/Agendas.Repositories.Tests/Workflow.cs @ 291:5f1e3d35e113

Patrocinadores: Correcciones en Vistas.
author juanjose.montesdeocaarbos
date Thu, 09 Feb 2012 00:12:00 -0300
parents bc8dfbde0523
children 48ab8788bd19
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;
282
bc8dfbde0523 #123: Patrocinadores de las vans: Se verifica que para publicar una Van, debe tener al menos un Patrocinador.
juanjose.montesdeocaarbos
parents: 274
diff changeset
6 using System.Collections.Generic;
81
c76661cff260 Workflow de acciones sobre un evento (camino feliz)
nelopauselli
parents:
diff changeset
7
222
68b09c30b0d2 Separando los test de persistencia en un proyecto aparte
nelopauselli
parents: 200
diff changeset
8 namespace Agendas.Repositories.Tests
81
c76661cff260 Workflow de acciones sobre un evento (camino feliz)
nelopauselli
parents:
diff changeset
9 {
c76661cff260 Workflow de acciones sobre un evento (camino feliz)
nelopauselli
parents:
diff changeset
10 internal class Workflow
c76661cff260 Workflow de acciones sobre un evento (camino feliz)
nelopauselli
parents:
diff changeset
11 {
181
6ee05ceea8c3 Implementando test de workflow también con nh
nelopauselli
parents: 169
diff changeset
12 private readonly Func<IDisposable> _requestEmulator;
81
c76661cff260 Workflow de acciones sobre un evento (camino feliz)
nelopauselli
parents:
diff changeset
13 private readonly Agenda _agenda;
181
6ee05ceea8c3 Implementando test de workflow también con nh
nelopauselli
parents: 169
diff changeset
14 private readonly IEventoRepository _eventoRepository;
6ee05ceea8c3 Implementando test de workflow también con nh
nelopauselli
parents: 169
diff changeset
15 private Guid _eventoId;
222
68b09c30b0d2 Separando los test de persistencia en un proyecto aparte
nelopauselli
parents: 200
diff changeset
16 private readonly TestsHelper _testsHelper;
81
c76661cff260 Workflow de acciones sobre un evento (camino feliz)
nelopauselli
parents:
diff changeset
17
181
6ee05ceea8c3 Implementando test de workflow también con nh
nelopauselli
parents: 169
diff changeset
18 public Workflow(IPublicador publicador, IEventoRepository eventoRepository, IPersonaRepository personaRepository,
274
72a96459f910 Ticket #123: Patrocinadores de las vans.
juanjose.montesdeocaarbos
parents: 235
diff changeset
19 IPatrocinadorRepository patrocinadorRepository, Func<IDisposable> requestEmulator)
81
c76661cff260 Workflow de acciones sobre un evento (camino feliz)
nelopauselli
parents:
diff changeset
20 {
181
6ee05ceea8c3 Implementando test de workflow también con nh
nelopauselli
parents: 169
diff changeset
21 _requestEmulator = requestEmulator;
6ee05ceea8c3 Implementando test de workflow también con nh
nelopauselli
parents: 169
diff changeset
22 _eventoRepository = eventoRepository;
274
72a96459f910 Ticket #123: Patrocinadores de las vans.
juanjose.montesdeocaarbos
parents: 235
diff changeset
23
72a96459f910 Ticket #123: Patrocinadores de las vans.
juanjose.montesdeocaarbos
parents: 235
diff changeset
24 _agenda = new Agenda(publicador, eventoRepository, personaRepository, patrocinadorRepository);
282
bc8dfbde0523 #123: Patrocinadores de las vans: Se verifica que para publicar una Van, debe tener al menos un Patrocinador.
juanjose.montesdeocaarbos
parents: 274
diff changeset
25 _testsHelper = new TestsHelper(personaRepository, patrocinadorRepository);
81
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
c76661cff260 Workflow de acciones sobre un evento (camino feliz)
nelopauselli
parents:
diff changeset
28 public void Proponer()
c76661cff260 Workflow de acciones sobre un evento (camino feliz)
nelopauselli
parents:
diff changeset
29 {
181
6ee05ceea8c3 Implementando test de workflow también con nh
nelopauselli
parents: 169
diff changeset
30 using (_requestEmulator.Invoke())
6ee05ceea8c3 Implementando test de workflow también con nh
nelopauselli
parents: 169
diff changeset
31 {
235
c61954d24c8c Quitando ponente principal y utilizando siempre la lista de ponentes
nelopauselli
parents: 222
diff changeset
32 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
33 Console.WriteLine(resultado.Message);
181
6ee05ceea8c3 Implementando test de workflow también con nh
nelopauselli
parents: 169
diff changeset
34 Assert.IsTrue(resultado.Succeful);
6ee05ceea8c3 Implementando test de workflow también con nh
nelopauselli
parents: 169
diff changeset
35 }
235
c61954d24c8c Quitando ponente principal y utilizando siempre la lista de ponentes
nelopauselli
parents: 222
diff changeset
36
181
6ee05ceea8c3 Implementando test de workflow también con nh
nelopauselli
parents: 169
diff changeset
37 GetId();
81
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
c76661cff260 Workflow de acciones sobre un evento (camino feliz)
nelopauselli
parents:
diff changeset
41 public void Agendar()
c76661cff260 Workflow de acciones sobre un evento (camino feliz)
nelopauselli
parents:
diff changeset
42 {
181
6ee05ceea8c3 Implementando test de workflow también con nh
nelopauselli
parents: 169
diff changeset
43 using (_requestEmulator.Invoke())
6ee05ceea8c3 Implementando test de workflow también con nh
nelopauselli
parents: 169
diff changeset
44 {
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
45 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
46 var fechaTermino = fechaInicio.AddHours(2);
235
c61954d24c8c Quitando ponente principal y utilizando siempre la lista de ponentes
nelopauselli
parents: 222
diff changeset
47 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
48 TipoEvento.Van);
181
6ee05ceea8c3 Implementando test de workflow también con nh
nelopauselli
parents: 169
diff changeset
49 Assert.IsTrue(resultado.Succeful);
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
6ee05ceea8c3 Implementando test de workflow también con nh
nelopauselli
parents: 169
diff changeset
52 GetId();
81
c76661cff260 Workflow de acciones sobre un evento (camino feliz)
nelopauselli
parents:
diff changeset
53 }
c76661cff260 Workflow de acciones sobre un evento (camino feliz)
nelopauselli
parents:
diff changeset
54
181
6ee05ceea8c3 Implementando test de workflow también con nh
nelopauselli
parents: 169
diff changeset
55 private void GetId()
81
c76661cff260 Workflow de acciones sobre un evento (camino feliz)
nelopauselli
parents:
diff changeset
56 {
181
6ee05ceea8c3 Implementando test de workflow también con nh
nelopauselli
parents: 169
diff changeset
57 using (_requestEmulator.Invoke())
6ee05ceea8c3 Implementando test de workflow también con nh
nelopauselli
parents: 169
diff changeset
58 {
6ee05ceea8c3 Implementando test de workflow también con nh
nelopauselli
parents: 169
diff changeset
59 var evento = _eventoRepository.GetActivos().SingleOrDefault();
6ee05ceea8c3 Implementando test de workflow también con nh
nelopauselli
parents: 169
diff changeset
60 Assert.IsNotNull(evento);
6ee05ceea8c3 Implementando test de workflow también con nh
nelopauselli
parents: 169
diff changeset
61 _eventoId = evento.Id;
6ee05ceea8c3 Implementando test de workflow también con nh
nelopauselli
parents: 169
diff changeset
62 }
81
c76661cff260 Workflow de acciones sobre un evento (camino feliz)
nelopauselli
parents:
diff changeset
63 }
c76661cff260 Workflow de acciones sobre un evento (camino feliz)
nelopauselli
parents:
diff changeset
64
181
6ee05ceea8c3 Implementando test de workflow también con nh
nelopauselli
parents: 169
diff changeset
65 public void Confirmar()
81
c76661cff260 Workflow de acciones sobre un evento (camino feliz)
nelopauselli
parents:
diff changeset
66 {
181
6ee05ceea8c3 Implementando test de workflow también con nh
nelopauselli
parents: 169
diff changeset
67 using (_requestEmulator.Invoke())
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 var resultado = _agenda.Confirmar(_eventoId);
6ee05ceea8c3 Implementando test de workflow también con nh
nelopauselli
parents: 169
diff changeset
70 Assert.IsTrue(resultado.Succeful);
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
6ee05ceea8c3 Implementando test de workflow también con nh
nelopauselli
parents: 169
diff changeset
74 public void Publicar()
6ee05ceea8c3 Implementando test de workflow también con nh
nelopauselli
parents: 169
diff changeset
75 {
6ee05ceea8c3 Implementando test de workflow también con nh
nelopauselli
parents: 169
diff changeset
76 using (_requestEmulator.Invoke())
6ee05ceea8c3 Implementando test de workflow también con nh
nelopauselli
parents: 169
diff changeset
77 {
282
bc8dfbde0523 #123: Patrocinadores de las vans: Se verifica que para publicar una Van, debe tener al menos un Patrocinador.
juanjose.montesdeocaarbos
parents: 274
diff changeset
78 _agenda.IndicarPatrocinadores(_eventoId, new List<Guid> {_testsHelper.GetOrCreatePatrocinador("Apress")});
bc8dfbde0523 #123: Patrocinadores de las vans: Se verifica que para publicar una Van, debe tener al menos un Patrocinador.
juanjose.montesdeocaarbos
parents: 274
diff changeset
79 }
bc8dfbde0523 #123: Patrocinadores de las vans: Se verifica que para publicar una Van, debe tener al menos un Patrocinador.
juanjose.montesdeocaarbos
parents: 274
diff changeset
80 using (_requestEmulator.Invoke())
bc8dfbde0523 #123: Patrocinadores de las vans: Se verifica que para publicar una Van, debe tener al menos un Patrocinador.
juanjose.montesdeocaarbos
parents: 274
diff changeset
81 {
181
6ee05ceea8c3 Implementando test de workflow también con nh
nelopauselli
parents: 169
diff changeset
82 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
83 Assert.IsTrue(resultado.Succeful);
6ee05ceea8c3 Implementando test de workflow también con nh
nelopauselli
parents: 169
diff changeset
84 }
81
c76661cff260 Workflow de acciones sobre un evento (camino feliz)
nelopauselli
parents:
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 Cancelar()
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.Cancelar(_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 Descartar()
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.Descartar(_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 ReProponer()
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.ReProponer(_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 }
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
113
181
6ee05ceea8c3 Implementando test de workflow también con nh
nelopauselli
parents: 169
diff changeset
114 public void ReAgendar()
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 using (_requestEmulator.Invoke())
6ee05ceea8c3 Implementando test de workflow también con nh
nelopauselli
parents: 169
diff changeset
117 {
6ee05ceea8c3 Implementando test de workflow también con nh
nelopauselli
parents: 169
diff changeset
118 var resultado = _agenda.ReAgendar(_eventoId);
6ee05ceea8c3 Implementando test de workflow también con nh
nelopauselli
parents: 169
diff changeset
119 Assert.IsTrue(resultado.Succeful);
6ee05ceea8c3 Implementando test de workflow también con nh
nelopauselli
parents: 169
diff changeset
120 }
6ee05ceea8c3 Implementando test de workflow también con nh
nelopauselli
parents: 169
diff changeset
121 }
81
c76661cff260 Workflow de acciones sobre un evento (camino feliz)
nelopauselli
parents:
diff changeset
122 }
c76661cff260 Workflow de acciones sobre un evento (camino feliz)
nelopauselli
parents:
diff changeset
123 }