comparison Agendas/trunk/src/Agendas.Tests/Workflows/Workflow.cs @ 181:6ee05ceea8c3

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