Mercurial > altnet-hispano
comparison Agendas/trunk/src/Agendas.Tests/Cruds/EventoCrud.cs @ 62:c40b97bbed01
Verificando persistencia de Ponentes y Tracks en tests de CRUD
author | nelopauselli |
---|---|
date | Tue, 17 May 2011 01:55:19 -0300 |
parents | 02e163f2ca38 |
children | 96d7609f2e08 |
comparison
equal
deleted
inserted
replaced
61:cb3f7b47c1f0 | 62:c40b97bbed01 |
---|---|
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.Cruds | 7 namespace AltNetHispano.Agendas.Tests.Cruds |
7 { | 8 { |
8 public class EventoCrud | 9 public class EventoCrud |
9 { | 10 { |
10 private readonly Func<IEventoRepository> _createRepository; | 11 private readonly IEventoRepository _eventoRepository; |
11 private readonly Func<IDisposable> _requestEmulator; | 12 private readonly Func<IDisposable> _requestEmulator; |
13 private readonly IPonenteRepository _ponenteRepository; | |
12 | 14 |
13 public EventoCrud(Func<IEventoRepository> createRepository, Func<IDisposable> requestEmulator) | 15 public EventoCrud(Func<IEventoRepository> createEventoRepository, Func<IPonenteRepository> createPonenteRepository, Func<IDisposable> requestEmulator) |
14 { | 16 { |
15 _createRepository = createRepository; | 17 _eventoRepository = createEventoRepository.Invoke(); |
18 _ponenteRepository = createPonenteRepository.Invoke(); | |
19 | |
16 _requestEmulator = requestEmulator; | 20 _requestEmulator = requestEmulator; |
17 } | 21 } |
18 | 22 |
19 public Guid Create() | 23 public Guid Create() |
20 { | 24 { |
21 using (_requestEmulator.Invoke()) | 25 using (_requestEmulator.Invoke()) |
22 { | 26 { |
23 var van = Evento.Proponer("TDD - Diseño Basado en Ejemplos", new Ponente("Carlos Blé")); | 27 var ponente = new Ponente("Carlos Blé"); |
28 _ponenteRepository.Save(ponente); | |
24 | 29 |
25 IEventoRepository eventoRepository = _createRepository.Invoke(); | 30 var van = Evento.Proponer("TDD - Diseño Basado en Ejemplos", ponente); |
26 | 31 _eventoRepository.Save(van); |
27 eventoRepository.Save(van); | |
28 | 32 |
29 return van.Id; | 33 return van.Id; |
30 } | 34 } |
31 } | 35 } |
32 | 36 |
34 { | 38 { |
35 Guid eventoId = Create(); | 39 Guid eventoId = Create(); |
36 | 40 |
37 using (_requestEmulator.Invoke()) | 41 using (_requestEmulator.Invoke()) |
38 { | 42 { |
39 IEventoRepository eventoRepository = _createRepository.Invoke(); | 43 Evento van = _eventoRepository.Get(eventoId); |
40 | |
41 Evento van = eventoRepository.Get(eventoId); | |
42 | 44 |
43 Assert.IsNotNull(van); | 45 Assert.IsNotNull(van); |
44 Assert.IsNotNull(van.Ponente); | 46 Assert.IsNotNull(van.Ponente); |
45 Assert.AreEqual("Carlos Blé", van.Ponente.Nombre); | 47 Assert.AreEqual("Carlos Blé", van.Ponente.Nombre); |
48 Assert.AreEqual(1, van.Ponente.Eventos.Count()); | |
49 Assert.AreEqual(van, van.Ponente.Eventos.First()); | |
50 | |
51 Assert.AreEqual(1, van.Tracks.Where(t => t.Accion == Accion.Proponer).Count()); | |
52 | |
46 Assert.AreEqual("TDD - Diseño Basado en Ejemplos", van.Titulo); | 53 Assert.AreEqual("TDD - Diseño Basado en Ejemplos", van.Titulo); |
47 } | 54 } |
48 } | 55 } |
49 | 56 |
50 public void Update() | 57 public void Update() |
51 { | 58 { |
52 Guid eventoId = Create(); | 59 Guid eventoId = Create(); |
53 | 60 |
54 using (_requestEmulator.Invoke()) | 61 using (_requestEmulator.Invoke()) |
55 { | 62 { |
56 IEventoRepository eventoRepository = _createRepository.Invoke(); | 63 Evento van = _eventoRepository.Get(eventoId); |
57 | |
58 Evento van = eventoRepository.Get(eventoId); | |
59 | 64 |
60 Assert.IsNotNull(van); | 65 Assert.IsNotNull(van); |
61 | 66 |
62 van.CambiarTitulo("TDD & Ejemplos"); | 67 van.CambiarTitulo("TDD & Ejemplos"); |
63 van.Actualizar(van.Ponente, new DateTime(2010, 04, 17)); | |
64 | 68 |
65 eventoRepository.Update(van); | 69 var otroPonente = new Ponente("José"); |
70 _ponenteRepository.Save(otroPonente); | |
71 | |
72 van.Actualizar(otroPonente, new DateTime(2010, 04, 17)); | |
73 | |
74 _eventoRepository.Update(van); | |
66 } | 75 } |
67 | 76 |
68 using (_requestEmulator.Invoke()) | 77 using (_requestEmulator.Invoke()) |
69 { | 78 { |
70 IEventoRepository eventoRepository = _createRepository.Invoke(); | 79 Evento van = _eventoRepository.Get(eventoId); |
71 | |
72 Evento van = eventoRepository.Get(eventoId); | |
73 | 80 |
74 Assert.IsNotNull(van); | 81 Assert.IsNotNull(van); |
75 Assert.IsNotNull(van.Ponente); | 82 Assert.IsNotNull(van.Ponente); |
76 Assert.AreEqual("Carlos Blé", van.Ponente.Nombre); | 83 Assert.AreEqual("José", van.Ponente.Nombre); |
77 Assert.AreEqual("TDD & Ejemplos", van.Titulo); | 84 Assert.AreEqual("TDD & Ejemplos", van.Titulo); |
78 Assert.AreEqual(new DateTime(2010, 04, 17), van.Fecha); | 85 Assert.AreEqual(new DateTime(2010, 04, 17), van.Fecha); |
86 | |
87 var ponente1 = _ponenteRepository.GetByNombre("Carlos Blé"); | |
88 Assert.IsNotNull(ponente1); | |
89 Assert.AreEqual(0, ponente1.Eventos.Count()); | |
90 | |
91 var ponente2 = _ponenteRepository.GetByNombre("José"); | |
92 Assert.IsNotNull(ponente2); | |
93 Assert.AreEqual(1, ponente2.Eventos.Count()); | |
94 | |
95 Assert.AreEqual(1, van.Tracks.Where(t => t.Accion == Accion.Proponer).Count()); | |
96 Assert.AreEqual(1, van.Tracks.Where(t => t.Accion == Accion.Modificar).Count()); | |
79 } | 97 } |
80 } | 98 } |
81 | 99 |
82 public void Delete() | 100 public void Delete() |
83 { | 101 { |
84 Guid eventoId = Create(); | 102 Guid eventoId = Create(); |
85 | 103 |
86 using (_requestEmulator.Invoke()) | 104 using (_requestEmulator.Invoke()) |
87 { | 105 { |
88 IEventoRepository eventoRepository = _createRepository.Invoke(); | 106 Evento van = _eventoRepository.Get(eventoId); |
107 Assert.IsNotNull(van); | |
89 | 108 |
90 Evento van = eventoRepository.Get(eventoId); | 109 _eventoRepository.Delete(van); |
91 Assert.IsNotNull(van); | |
92 eventoRepository.Delete(van); | |
93 } | 110 } |
94 | 111 |
95 using (_requestEmulator.Invoke()) | 112 using (_requestEmulator.Invoke()) |
96 { | 113 { |
97 IEventoRepository eventoRepository = _createRepository.Invoke(); | 114 Evento van = _eventoRepository.Get(eventoId); |
98 | |
99 Evento van = eventoRepository.Get(eventoId); | |
100 | 115 |
101 Assert.IsNull(van); | 116 Assert.IsNull(van); |
117 | |
118 var ponente = _ponenteRepository.GetByNombre("Carlos Blé"); | |
119 | |
120 Assert.IsNotNull(ponente); | |
121 Assert.AreEqual(0, ponente.Eventos.Count()); | |
102 } | 122 } |
103 } | 123 } |
104 } | 124 } |
105 } | 125 } |