comparison Agendas/trunk/src/Agendas.Repositories.Tests/Workflow.cs @ 222:68b09c30b0d2

Separando los test de persistencia en un proyecto aparte
author nelopauselli
date Mon, 19 Sep 2011 18:18:17 -0300
parents Agendas/trunk/src/Agendas.Tests/Workflows/Workflow.cs@5346c0500594
children c61954d24c8c
comparison
equal deleted inserted replaced
221:37ddf81333d3 222:68b09c30b0d2
1 using System;
2 using System.Linq;
3 using AltNetHispano.Agendas.Domain;
4 using AltNetHispano.Agendas.Domain.Repositories;
5 using NUnit.Framework;
6
7 namespace Agendas.Repositories.Tests
8 {
9 internal class Workflow
10 {
11 private readonly Func<IDisposable> _requestEmulator;
12 private readonly Agenda _agenda;
13 private readonly IEventoRepository _eventoRepository;
14 private Guid _eventoId;
15 private readonly TestsHelper _testsHelper;
16
17 public Workflow(IPublicador publicador, IEventoRepository eventoRepository, IPersonaRepository personaRepository,
18 Func<IDisposable> requestEmulator)
19 {
20 _requestEmulator = requestEmulator;
21 _eventoRepository = eventoRepository;
22
23 _agenda = new Agenda(publicador, eventoRepository, personaRepository);
24 _testsHelper = new TestsHelper(personaRepository);
25 }
26
27 public void Proponer()
28 {
29 using (_requestEmulator.Invoke())
30 {
31 var resultado = _agenda.Proponer("SOLID", _testsHelper.GetOrCreatePonente("Jorge"), null, TipoEvento.Van);
32 Assert.IsTrue(resultado.Succeful);
33 }
34
35 GetId();
36 }
37
38
39 public void Agendar()
40 {
41 using (_requestEmulator.Invoke())
42 {
43 var fechaInicio = DateTime.Today.AddDays(5).ToUniversalTime();
44 var fechaTermino = fechaInicio.AddHours(2);
45 var resultado = _agenda.Agendar("SOLID", _testsHelper.GetOrCreatePonente("Jorge"), fechaInicio, fechaTermino, null,
46 TipoEvento.Van);
47 Assert.IsTrue(resultado.Succeful);
48 }
49
50 GetId();
51 }
52
53 private void GetId()
54 {
55 using (_requestEmulator.Invoke())
56 {
57 var evento = _eventoRepository.GetActivos().SingleOrDefault();
58 Assert.IsNotNull(evento);
59 _eventoId = evento.Id;
60 }
61 }
62
63 public void Confirmar()
64 {
65 using (_requestEmulator.Invoke())
66 {
67 var resultado = _agenda.Confirmar(_eventoId);
68 Assert.IsTrue(resultado.Succeful);
69 }
70 }
71
72 public void Publicar()
73 {
74 using (_requestEmulator.Invoke())
75 {
76 var resultado = _agenda.Publicar(_eventoId, 1, "http://www.altnethispano.org/", new TimeSpan(2, 11, 0));
77 Assert.IsTrue(resultado.Succeful);
78 }
79 }
80
81 public void Cancelar()
82 {
83 using (_requestEmulator.Invoke())
84 {
85 var resultado = _agenda.Cancelar(_eventoId);
86 Assert.IsTrue(resultado.Succeful);
87 }
88 }
89
90 public void Descartar()
91 {
92 using (_requestEmulator.Invoke())
93 {
94 var resultado = _agenda.Descartar(_eventoId);
95 Assert.IsTrue(resultado.Succeful);
96 }
97 }
98
99 public void ReProponer()
100 {
101 using (_requestEmulator.Invoke())
102 {
103 var resultado = _agenda.ReProponer(_eventoId);
104 Assert.IsTrue(resultado.Succeful);
105 }
106 }
107
108 public void ReAgendar()
109 {
110 using (_requestEmulator.Invoke())
111 {
112 var resultado = _agenda.ReAgendar(_eventoId);
113 Assert.IsTrue(resultado.Succeful);
114 }
115 }
116 }
117 }