Mercurial > altnet-hispano
annotate Agendas/trunk/src/Agendas.Repositories.Tests/PersonaCrud.cs @ 225:f23ee59ef1bd
Otros ponentes
author | nelopauselli |
---|---|
date | Mon, 26 Sep 2011 08:47:01 -0300 |
parents | 68b09c30b0d2 |
children | 50442a103281 |
rev | line source |
---|---|
178 | 1 using System; |
222
68b09c30b0d2
Separando los test de persistencia en un proyecto aparte
nelopauselli
parents:
219
diff
changeset
|
2 using System.Collections.Generic; |
178 | 3 using System.Linq; |
222
68b09c30b0d2
Separando los test de persistencia en un proyecto aparte
nelopauselli
parents:
219
diff
changeset
|
4 using Agendas.Repositories.Tests.Infraestructure; |
178 | 5 using AltNetHispano.Agendas.Domain; |
6 using AltNetHispano.Agendas.Domain.Repositories; | |
7 using AltNetHispano.Agendas.Domain.Services; | |
8 using NUnit.Framework; | |
9 | |
222
68b09c30b0d2
Separando los test de persistencia en un proyecto aparte
nelopauselli
parents:
219
diff
changeset
|
10 namespace Agendas.Repositories.Tests |
178 | 11 { |
222
68b09c30b0d2
Separando los test de persistencia en un proyecto aparte
nelopauselli
parents:
219
diff
changeset
|
12 public abstract class PersonaCrud<T> where T : IInfraestrutureFactory, new() |
178 | 13 { |
14 private readonly IPersonaRepository _personaRepository; | |
15 private readonly Func<IDisposable> _requestEmulator; | |
16 private readonly PersonaService _personaService; | |
222
68b09c30b0d2
Separando los test de persistencia en un proyecto aparte
nelopauselli
parents:
219
diff
changeset
|
17 private readonly IEventoRepository _eventoRepository; |
178 | 18 |
222
68b09c30b0d2
Separando los test de persistencia en un proyecto aparte
nelopauselli
parents:
219
diff
changeset
|
19 protected PersonaCrud() |
178 | 20 { |
222
68b09c30b0d2
Separando los test de persistencia en un proyecto aparte
nelopauselli
parents:
219
diff
changeset
|
21 var infraestrutureFactory = new T(); |
68b09c30b0d2
Separando los test de persistencia en un proyecto aparte
nelopauselli
parents:
219
diff
changeset
|
22 |
68b09c30b0d2
Separando los test de persistencia en un proyecto aparte
nelopauselli
parents:
219
diff
changeset
|
23 _eventoRepository = infraestrutureFactory.GetEventoRepository(); |
68b09c30b0d2
Separando los test de persistencia en un proyecto aparte
nelopauselli
parents:
219
diff
changeset
|
24 _personaRepository = infraestrutureFactory.GetPonenteRepository(); |
68b09c30b0d2
Separando los test de persistencia en un proyecto aparte
nelopauselli
parents:
219
diff
changeset
|
25 _requestEmulator = infraestrutureFactory.GetRequestEmulator(); |
68b09c30b0d2
Separando los test de persistencia en un proyecto aparte
nelopauselli
parents:
219
diff
changeset
|
26 |
209
a36a76bd6ec3
Se soluciona ticket 173. Se agrega eliminación de personas siempre y cuando no esté asociada a ninguna van.
alabra
parents:
180
diff
changeset
|
27 _personaService = new PersonaService(_personaRepository, _eventoRepository); |
178 | 28 } |
29 | |
222
68b09c30b0d2
Separando los test de persistencia en un proyecto aparte
nelopauselli
parents:
219
diff
changeset
|
30 [Test] |
68b09c30b0d2
Separando los test de persistencia en un proyecto aparte
nelopauselli
parents:
219
diff
changeset
|
31 public void CreateAdministrador() |
178 | 32 { |
219
b9850b647a4e
Agregando alta de ponente durante la carga del evento
nelopauselli
parents:
209
diff
changeset
|
33 Guid id; |
178 | 34 using (_requestEmulator.Invoke()) |
35 { | |
222
68b09c30b0d2
Separando los test de persistencia en un proyecto aparte
nelopauselli
parents:
219
diff
changeset
|
36 var r = CreatePersona("Nelo Pauselli", "nelopauselli", "nelopauselli@gmail.com", "http://nelopauselli.blogspot.com", |
68b09c30b0d2
Separando los test de persistencia en un proyecto aparte
nelopauselli
parents:
219
diff
changeset
|
37 null); |
219
b9850b647a4e
Agregando alta de ponente durante la carga del evento
nelopauselli
parents:
209
diff
changeset
|
38 Assert.AreEqual("Nelo Pauselli", r.Nombre); |
b9850b647a4e
Agregando alta de ponente durante la carga del evento
nelopauselli
parents:
209
diff
changeset
|
39 Assert.AreNotEqual(Guid.Empty, r.Id); |
b9850b647a4e
Agregando alta de ponente durante la carga del evento
nelopauselli
parents:
209
diff
changeset
|
40 |
b9850b647a4e
Agregando alta de ponente durante la carga del evento
nelopauselli
parents:
209
diff
changeset
|
41 id = r.Id; |
178 | 42 } |
43 | |
44 using (_requestEmulator.Invoke()) | |
45 { | |
46 var persona = _personaRepository.GetByNombre("Nelo Pauselli"); | |
47 Assert.IsNotNull(persona); | |
219
b9850b647a4e
Agregando alta de ponente durante la carga del evento
nelopauselli
parents:
209
diff
changeset
|
48 Assert.AreEqual(id, persona.Id); |
178 | 49 } |
50 } | |
51 | |
222
68b09c30b0d2
Separando los test de persistencia en un proyecto aparte
nelopauselli
parents:
219
diff
changeset
|
52 private ResultadoAdd CreatePersona(string nombre, string twitter, string mail, string blog, IEnumerable<string> roles) |
68b09c30b0d2
Separando los test de persistencia en un proyecto aparte
nelopauselli
parents:
219
diff
changeset
|
53 { |
68b09c30b0d2
Separando los test de persistencia en un proyecto aparte
nelopauselli
parents:
219
diff
changeset
|
54 return _personaService.Add(nombre, twitter, mail, blog, roles); |
68b09c30b0d2
Separando los test de persistencia en un proyecto aparte
nelopauselli
parents:
219
diff
changeset
|
55 } |
68b09c30b0d2
Separando los test de persistencia en un proyecto aparte
nelopauselli
parents:
219
diff
changeset
|
56 |
68b09c30b0d2
Separando los test de persistencia en un proyecto aparte
nelopauselli
parents:
219
diff
changeset
|
57 [Test] |
178 | 58 public void ReadAdministrador() |
59 { | |
222
68b09c30b0d2
Separando los test de persistencia en un proyecto aparte
nelopauselli
parents:
219
diff
changeset
|
60 Guid personaId; |
68b09c30b0d2
Separando los test de persistencia en un proyecto aparte
nelopauselli
parents:
219
diff
changeset
|
61 using (_requestEmulator.Invoke()) |
68b09c30b0d2
Separando los test de persistencia en un proyecto aparte
nelopauselli
parents:
219
diff
changeset
|
62 { |
68b09c30b0d2
Separando los test de persistencia en un proyecto aparte
nelopauselli
parents:
219
diff
changeset
|
63 var r = CreatePersona("Nelo Pauselli", "nelopauselli", "nelopauselli@gmail.com", "http://nelopauselli.blogspot.com", |
68b09c30b0d2
Separando los test de persistencia en un proyecto aparte
nelopauselli
parents:
219
diff
changeset
|
64 null); |
68b09c30b0d2
Separando los test de persistencia en un proyecto aparte
nelopauselli
parents:
219
diff
changeset
|
65 personaId = r.Id; |
68b09c30b0d2
Separando los test de persistencia en un proyecto aparte
nelopauselli
parents:
219
diff
changeset
|
66 } |
178 | 67 |
68 using (_requestEmulator.Invoke()) | |
69 { | |
70 var persona = _personaRepository.Get(personaId); | |
71 | |
72 Assert.IsNotNull(persona); | |
73 Assert.AreEqual("Nelo Pauselli", persona.Nombre); | |
74 Assert.AreEqual("nelopauselli", persona.Twitter); | |
75 Assert.AreEqual("nelopauselli@gmail.com", persona.Mail); | |
76 Assert.AreEqual("http://nelopauselli.blogspot.com", persona.Blog); | |
77 | |
78 Assert.IsTrue(persona.Cuentas.Any()); | |
79 Assert.AreEqual("nelopauselli", persona.Cuentas.First().LogonName); | |
80 Assert.AreEqual(IdentityProviderEnum.Twitter, persona.Cuentas.First().IdentityProvider); | |
81 | |
82 Assert.IsTrue(persona.Roles.Any()); | |
83 Assert.IsTrue(persona.Roles.Contains(Roles.Usuario)); | |
84 Assert.IsTrue(persona.Roles.Contains(Roles.Administrador)); | |
85 } | |
86 } | |
87 | |
222
68b09c30b0d2
Separando los test de persistencia en un proyecto aparte
nelopauselli
parents:
219
diff
changeset
|
88 [Test] |
68b09c30b0d2
Separando los test de persistencia en un proyecto aparte
nelopauselli
parents:
219
diff
changeset
|
89 public void CreateUsuario() |
178 | 90 { |
91 using (_requestEmulator.Invoke()) | |
92 { | |
222
68b09c30b0d2
Separando los test de persistencia en un proyecto aparte
nelopauselli
parents:
219
diff
changeset
|
93 CreatePersona("Pablo Morales", "pablomorales", "pablomorales@gmail.com", "http://pablomorales.blogspot.com", |
68b09c30b0d2
Separando los test de persistencia en un proyecto aparte
nelopauselli
parents:
219
diff
changeset
|
94 new[] {Roles.Usuario}); |
178 | 95 } |
96 | |
97 using (_requestEmulator.Invoke()) | |
98 { | |
99 var persona = _personaRepository.GetByNombre("Pablo Morales"); | |
100 Assert.IsNotNull(persona); | |
101 } | |
102 } | |
103 | |
222
68b09c30b0d2
Separando los test de persistencia en un proyecto aparte
nelopauselli
parents:
219
diff
changeset
|
104 [Test] |
178 | 105 public void ReadUsuario() |
106 { | |
222
68b09c30b0d2
Separando los test de persistencia en un proyecto aparte
nelopauselli
parents:
219
diff
changeset
|
107 Guid personaId; |
68b09c30b0d2
Separando los test de persistencia en un proyecto aparte
nelopauselli
parents:
219
diff
changeset
|
108 using (_requestEmulator.Invoke()) |
68b09c30b0d2
Separando los test de persistencia en un proyecto aparte
nelopauselli
parents:
219
diff
changeset
|
109 { |
68b09c30b0d2
Separando los test de persistencia en un proyecto aparte
nelopauselli
parents:
219
diff
changeset
|
110 var r = CreatePersona("Pablo Morales", "pablomorales", "pablomorales@gmail.com", "http://pablomorales.blogspot.com", |
68b09c30b0d2
Separando los test de persistencia en un proyecto aparte
nelopauselli
parents:
219
diff
changeset
|
111 new[] {Roles.Usuario}); |
68b09c30b0d2
Separando los test de persistencia en un proyecto aparte
nelopauselli
parents:
219
diff
changeset
|
112 personaId = r.Id; |
68b09c30b0d2
Separando los test de persistencia en un proyecto aparte
nelopauselli
parents:
219
diff
changeset
|
113 } |
178 | 114 |
115 using (_requestEmulator.Invoke()) | |
116 { | |
117 var persona = _personaRepository.Get(personaId); | |
118 | |
119 Assert.IsNotNull(persona); | |
120 Assert.AreEqual("Pablo Morales", persona.Nombre); | |
121 Assert.AreEqual("pablomorales", persona.Twitter); | |
122 Assert.AreEqual("pablomorales@gmail.com", persona.Mail); | |
123 Assert.AreEqual("http://pablomorales.blogspot.com", persona.Blog); | |
124 | |
125 Assert.IsTrue(persona.Cuentas.Any()); | |
126 Assert.AreEqual("pablomorales", persona.Cuentas.First().LogonName); | |
127 Assert.AreEqual(IdentityProviderEnum.Twitter, persona.Cuentas.First().IdentityProvider); | |
128 | |
129 Assert.IsTrue(persona.Roles.Any()); | |
130 Assert.IsTrue(persona.Roles.Contains(Roles.Usuario)); | |
131 Assert.IsFalse(persona.Roles.Contains(Roles.Administrador)); | |
132 } | |
133 } | |
134 | |
222
68b09c30b0d2
Separando los test de persistencia en un proyecto aparte
nelopauselli
parents:
219
diff
changeset
|
135 [Test] |
178 | 136 public void Update() |
137 { | |
222
68b09c30b0d2
Separando los test de persistencia en un proyecto aparte
nelopauselli
parents:
219
diff
changeset
|
138 Guid personaId; |
68b09c30b0d2
Separando los test de persistencia en un proyecto aparte
nelopauselli
parents:
219
diff
changeset
|
139 using (_requestEmulator.Invoke()) |
68b09c30b0d2
Separando los test de persistencia en un proyecto aparte
nelopauselli
parents:
219
diff
changeset
|
140 { |
68b09c30b0d2
Separando los test de persistencia en un proyecto aparte
nelopauselli
parents:
219
diff
changeset
|
141 var r = CreatePersona("Nelo Pauselli", "nelopauselli", "nelopauselli@gmail.com", "http://nelopauselli.blogspot.com", |
68b09c30b0d2
Separando los test de persistencia en un proyecto aparte
nelopauselli
parents:
219
diff
changeset
|
142 null); |
68b09c30b0d2
Separando los test de persistencia en un proyecto aparte
nelopauselli
parents:
219
diff
changeset
|
143 personaId = r.Id; |
68b09c30b0d2
Separando los test de persistencia en un proyecto aparte
nelopauselli
parents:
219
diff
changeset
|
144 } |
178 | 145 |
146 using (_requestEmulator.Invoke()) | |
147 { | |
148 var persona = _personaRepository.Get(personaId); | |
149 Assert.IsNotNull(persona); | |
150 | |
151 persona.Nombre = "Nelo Mariano Pauselli"; | |
152 } | |
153 | |
154 using (_requestEmulator.Invoke()) | |
155 { | |
156 var persona = _personaRepository.Get(personaId); | |
157 | |
158 Assert.IsNotNull(persona); | |
159 Assert.AreEqual("Nelo Mariano Pauselli", persona.Nombre); | |
160 } | |
161 } | |
222
68b09c30b0d2
Separando los test de persistencia en un proyecto aparte
nelopauselli
parents:
219
diff
changeset
|
162 |
68b09c30b0d2
Separando los test de persistencia en un proyecto aparte
nelopauselli
parents:
219
diff
changeset
|
163 [Test] |
68b09c30b0d2
Separando los test de persistencia en un proyecto aparte
nelopauselli
parents:
219
diff
changeset
|
164 public void Delete() |
68b09c30b0d2
Separando los test de persistencia en un proyecto aparte
nelopauselli
parents:
219
diff
changeset
|
165 { |
68b09c30b0d2
Separando los test de persistencia en un proyecto aparte
nelopauselli
parents:
219
diff
changeset
|
166 Guid personaId; |
68b09c30b0d2
Separando los test de persistencia en un proyecto aparte
nelopauselli
parents:
219
diff
changeset
|
167 using (_requestEmulator.Invoke()) |
68b09c30b0d2
Separando los test de persistencia en un proyecto aparte
nelopauselli
parents:
219
diff
changeset
|
168 { |
68b09c30b0d2
Separando los test de persistencia en un proyecto aparte
nelopauselli
parents:
219
diff
changeset
|
169 var r = CreatePersona("Nelo Pauselli", "nelopauselli", "nelopauselli@gmail.com", |
68b09c30b0d2
Separando los test de persistencia en un proyecto aparte
nelopauselli
parents:
219
diff
changeset
|
170 "http://nelopauselli.blogspot.com", null); |
68b09c30b0d2
Separando los test de persistencia en un proyecto aparte
nelopauselli
parents:
219
diff
changeset
|
171 personaId = r.Id; |
68b09c30b0d2
Separando los test de persistencia en un proyecto aparte
nelopauselli
parents:
219
diff
changeset
|
172 } |
68b09c30b0d2
Separando los test de persistencia en un proyecto aparte
nelopauselli
parents:
219
diff
changeset
|
173 |
68b09c30b0d2
Separando los test de persistencia en un proyecto aparte
nelopauselli
parents:
219
diff
changeset
|
174 using (_requestEmulator.Invoke()) |
68b09c30b0d2
Separando los test de persistencia en un proyecto aparte
nelopauselli
parents:
219
diff
changeset
|
175 { |
68b09c30b0d2
Separando los test de persistencia en un proyecto aparte
nelopauselli
parents:
219
diff
changeset
|
176 var persona = _personaRepository.Get(personaId); |
68b09c30b0d2
Separando los test de persistencia en un proyecto aparte
nelopauselli
parents:
219
diff
changeset
|
177 Assert.IsNotNull(persona); |
68b09c30b0d2
Separando los test de persistencia en un proyecto aparte
nelopauselli
parents:
219
diff
changeset
|
178 _personaService.Delete(personaId); |
68b09c30b0d2
Separando los test de persistencia en un proyecto aparte
nelopauselli
parents:
219
diff
changeset
|
179 } |
68b09c30b0d2
Separando los test de persistencia en un proyecto aparte
nelopauselli
parents:
219
diff
changeset
|
180 using (_requestEmulator.Invoke()) |
68b09c30b0d2
Separando los test de persistencia en un proyecto aparte
nelopauselli
parents:
219
diff
changeset
|
181 { |
68b09c30b0d2
Separando los test de persistencia en un proyecto aparte
nelopauselli
parents:
219
diff
changeset
|
182 var persona = _personaRepository.Get(personaId); |
68b09c30b0d2
Separando los test de persistencia en un proyecto aparte
nelopauselli
parents:
219
diff
changeset
|
183 Assert.IsNull(persona); |
68b09c30b0d2
Separando los test de persistencia en un proyecto aparte
nelopauselli
parents:
219
diff
changeset
|
184 } |
68b09c30b0d2
Separando los test de persistencia en un proyecto aparte
nelopauselli
parents:
219
diff
changeset
|
185 } |
178 | 186 } |
187 } |