Mercurial > altnet-hispano
annotate Agendas/trunk/src/Agendas.Web.Tests/Controllers/PersonaControllerTests.cs @ 302:11dddcc9a862 tip
Historico de Eventos, no muestra bien la Url del Patrocinador.
author | juanjose.montesdeocaarbos |
---|---|
date | Tue, 14 Aug 2012 21:54:30 -0300 |
parents | 3bb779434ae8 |
children |
rev | line source |
---|---|
269 | 1 using System.Linq; |
259
e6c041d8e1bf
Ticket #193.1: Al guardar (nuevo/modificar) una persona, que la cuenta de twitter no comience con @
juanjose.montesdeocaarbos
parents:
diff
changeset
|
2 using System.Web.Mvc; |
e6c041d8e1bf
Ticket #193.1: Al guardar (nuevo/modificar) una persona, que la cuenta de twitter no comience con @
juanjose.montesdeocaarbos
parents:
diff
changeset
|
3 using Agendas.NHibernate; |
e6c041d8e1bf
Ticket #193.1: Al guardar (nuevo/modificar) una persona, que la cuenta de twitter no comience con @
juanjose.montesdeocaarbos
parents:
diff
changeset
|
4 using Agendas.Repositories.Tests.Infraestructure; |
e6c041d8e1bf
Ticket #193.1: Al guardar (nuevo/modificar) una persona, que la cuenta de twitter no comience con @
juanjose.montesdeocaarbos
parents:
diff
changeset
|
5 using AltNetHispano.Agendas.Domain; |
e6c041d8e1bf
Ticket #193.1: Al guardar (nuevo/modificar) una persona, que la cuenta de twitter no comience con @
juanjose.montesdeocaarbos
parents:
diff
changeset
|
6 using AltNetHispano.Agendas.Repositories.NHibernate; |
e6c041d8e1bf
Ticket #193.1: Al guardar (nuevo/modificar) una persona, que la cuenta de twitter no comience con @
juanjose.montesdeocaarbos
parents:
diff
changeset
|
7 using AltNetHispano.Agendas.Web.Controllers; |
e6c041d8e1bf
Ticket #193.1: Al guardar (nuevo/modificar) una persona, que la cuenta de twitter no comience con @
juanjose.montesdeocaarbos
parents:
diff
changeset
|
8 using AltNetHispano.Agendas.Web.Models; |
e6c041d8e1bf
Ticket #193.1: Al guardar (nuevo/modificar) una persona, que la cuenta de twitter no comience con @
juanjose.montesdeocaarbos
parents:
diff
changeset
|
9 using Moq; |
e6c041d8e1bf
Ticket #193.1: Al guardar (nuevo/modificar) una persona, que la cuenta de twitter no comience con @
juanjose.montesdeocaarbos
parents:
diff
changeset
|
10 using NUnit.Framework; |
e6c041d8e1bf
Ticket #193.1: Al guardar (nuevo/modificar) una persona, que la cuenta de twitter no comience con @
juanjose.montesdeocaarbos
parents:
diff
changeset
|
11 |
e6c041d8e1bf
Ticket #193.1: Al guardar (nuevo/modificar) una persona, que la cuenta de twitter no comience con @
juanjose.montesdeocaarbos
parents:
diff
changeset
|
12 namespace Agendas.Web.Tests.Controllers |
e6c041d8e1bf
Ticket #193.1: Al guardar (nuevo/modificar) una persona, que la cuenta de twitter no comience con @
juanjose.montesdeocaarbos
parents:
diff
changeset
|
13 { |
e6c041d8e1bf
Ticket #193.1: Al guardar (nuevo/modificar) una persona, que la cuenta de twitter no comience con @
juanjose.montesdeocaarbos
parents:
diff
changeset
|
14 [TestFixture] |
262 | 15 public class PersonaControllerTests : MvcControllerTestsBase |
259
e6c041d8e1bf
Ticket #193.1: Al guardar (nuevo/modificar) una persona, que la cuenta de twitter no comience con @
juanjose.montesdeocaarbos
parents:
diff
changeset
|
16 { |
e6c041d8e1bf
Ticket #193.1: Al guardar (nuevo/modificar) una persona, que la cuenta de twitter no comience con @
juanjose.montesdeocaarbos
parents:
diff
changeset
|
17 private void SetearUsuario() |
e6c041d8e1bf
Ticket #193.1: Al guardar (nuevo/modificar) una persona, que la cuenta de twitter no comience con @
juanjose.montesdeocaarbos
parents:
diff
changeset
|
18 { |
e6c041d8e1bf
Ticket #193.1: Al guardar (nuevo/modificar) una persona, que la cuenta de twitter no comience con @
juanjose.montesdeocaarbos
parents:
diff
changeset
|
19 var seguridad = new Mock<ISeguridad>(); |
e6c041d8e1bf
Ticket #193.1: Al guardar (nuevo/modificar) una persona, que la cuenta de twitter no comience con @
juanjose.montesdeocaarbos
parents:
diff
changeset
|
20 seguridad.Setup(s => s.GetUserName()).Returns("neluz"); |
e6c041d8e1bf
Ticket #193.1: Al guardar (nuevo/modificar) una persona, que la cuenta de twitter no comience con @
juanjose.montesdeocaarbos
parents:
diff
changeset
|
21 IdentityContext.Init(seguridad.Object, new PersonaRepository(NhHelper.GetSessionFactory())); |
e6c041d8e1bf
Ticket #193.1: Al guardar (nuevo/modificar) una persona, que la cuenta de twitter no comience con @
juanjose.montesdeocaarbos
parents:
diff
changeset
|
22 } |
e6c041d8e1bf
Ticket #193.1: Al guardar (nuevo/modificar) una persona, que la cuenta de twitter no comience con @
juanjose.montesdeocaarbos
parents:
diff
changeset
|
23 |
270 | 24 private void PersonaNueva(ref PersonaController controller) |
269 | 25 { |
26 var personaNew = new PersonaNewModel | |
27 { | |
28 Blog = "http://juanjose.montesdeocaarbos.com.ar/blog/", | |
29 EMail = "juanjose.montesdeocaarbos@gmail.com", | |
30 Nombre = "Juan José Montes de Oca Arbós", | |
31 Roles = new string[] { "Administrador", "Usuario" }, | |
32 Twitter = "jjmoa" | |
33 }; | |
34 | |
35 using (new RequestEmulator(NhHelper.GetSessionFactory())) | |
36 { | |
37 controller.Nueva(personaNew); | |
270 | 38 controller = new PersonaController { ControllerContext = ControllerCtx }; |
269 | 39 } |
270 | 40 |
269 | 41 personaNew = new PersonaNewModel |
42 { | |
43 Blog = "http://nelopauselli.blogspot.com/", | |
44 EMail = "nelo@gmail.com", | |
45 Nombre = "Nelo Mariano Pauselli", | |
46 Roles = new string[] { "Administrador", "Usuario" }, | |
47 Twitter = "npauselli" | |
48 }; | |
49 | |
50 using (new RequestEmulator(NhHelper.GetSessionFactory())) | |
51 { | |
52 controller.Nueva(personaNew); | |
270 | 53 controller = new PersonaController { ControllerContext = ControllerCtx }; |
269 | 54 } |
55 } | |
56 | |
259
e6c041d8e1bf
Ticket #193.1: Al guardar (nuevo/modificar) una persona, que la cuenta de twitter no comience con @
juanjose.montesdeocaarbos
parents:
diff
changeset
|
57 [SetUp] |
e6c041d8e1bf
Ticket #193.1: Al guardar (nuevo/modificar) una persona, que la cuenta de twitter no comience con @
juanjose.montesdeocaarbos
parents:
diff
changeset
|
58 public void Setup() |
e6c041d8e1bf
Ticket #193.1: Al guardar (nuevo/modificar) una persona, que la cuenta de twitter no comience con @
juanjose.montesdeocaarbos
parents:
diff
changeset
|
59 { |
e6c041d8e1bf
Ticket #193.1: Al guardar (nuevo/modificar) una persona, que la cuenta de twitter no comience con @
juanjose.montesdeocaarbos
parents:
diff
changeset
|
60 NhHelperTest.CleanDb(); |
e6c041d8e1bf
Ticket #193.1: Al guardar (nuevo/modificar) una persona, que la cuenta de twitter no comience con @
juanjose.montesdeocaarbos
parents:
diff
changeset
|
61 SetearUsuario(); |
270 | 62 ControllerCtx = new ControllerContext(); |
259
e6c041d8e1bf
Ticket #193.1: Al guardar (nuevo/modificar) una persona, que la cuenta de twitter no comience con @
juanjose.montesdeocaarbos
parents:
diff
changeset
|
63 } |
e6c041d8e1bf
Ticket #193.1: Al guardar (nuevo/modificar) una persona, que la cuenta de twitter no comience con @
juanjose.montesdeocaarbos
parents:
diff
changeset
|
64 |
e6c041d8e1bf
Ticket #193.1: Al guardar (nuevo/modificar) una persona, que la cuenta de twitter no comience con @
juanjose.montesdeocaarbos
parents:
diff
changeset
|
65 [Test] |
269 | 66 public void PersonaNuevaGET() |
67 { | |
68 var personaController = new PersonaController { ControllerContext = ControllerCtx }; | |
69 using (new RequestEmulator(NhHelper.GetSessionFactory())) | |
70 { | |
71 var resultNuevo = personaController.Nueva(); | |
72 Assert.IsInstanceOf(typeof(ViewResult), resultNuevo); | |
73 Assert.AreEqual("Defaulteditor", ((ViewResult)resultNuevo).ViewName); | |
74 } | |
75 } | |
76 | |
77 [Test] | |
78 public void PersonaModificarGET() | |
79 { | |
80 var personaController = new PersonaController { ControllerContext = ControllerCtx }; | |
270 | 81 PersonaNueva(ref personaController); |
269 | 82 |
83 using (new RequestEmulator(NhHelper.GetSessionFactory())) | |
84 { | |
85 var personaRepository = new PersonaRepository(NhHelper.GetSessionFactory()); | |
86 | |
87 var resultModificar = personaController.Modificar(personaRepository.GetAll().FirstOrDefault().Id.ToString()); | |
88 Assert.IsInstanceOf(typeof(ViewResult), resultModificar); | |
89 Assert.AreEqual("Defaulteditor", ((ViewResult)resultModificar).ViewName); | |
90 } | |
91 } | |
92 | |
93 [Test] | |
94 public void PersonaModificarGET_PersonaInexistente() | |
95 { | |
96 var personaController = new PersonaController { ControllerContext = ControllerCtx }; | |
97 | |
98 using (new RequestEmulator(NhHelper.GetSessionFactory())) | |
99 { | |
100 var resultModificar = personaController.Modificar("11111111-1111-1111-1111-111111111111"); | |
101 Assert.IsInstanceOf(typeof(RedirectToRouteResult), resultModificar); | |
102 Assert.AreEqual("Index", ((RedirectToRouteResult)resultModificar).RouteValues["action"]); | |
103 Assert.AreEqual("No se encontró la persona que intenta modificar", personaController.TempData["error"]); | |
104 } | |
105 } | |
106 | |
107 [Test] | |
108 public void PersonaNuevaPOST_RequiredFields() | |
259
e6c041d8e1bf
Ticket #193.1: Al guardar (nuevo/modificar) una persona, que la cuenta de twitter no comience con @
juanjose.montesdeocaarbos
parents:
diff
changeset
|
109 { |
262 | 110 var personaController = new PersonaController { ControllerContext = ControllerCtx }; |
259
e6c041d8e1bf
Ticket #193.1: Al guardar (nuevo/modificar) una persona, que la cuenta de twitter no comience con @
juanjose.montesdeocaarbos
parents:
diff
changeset
|
111 |
261
d669e9b9e24e
PersonaControllerTests: No se estaba pasando el HttpContext al test.
juanjose.montesdeocaarbos
parents:
259
diff
changeset
|
112 var form = new FormCollection |
d669e9b9e24e
PersonaControllerTests: No se estaba pasando el HttpContext al test.
juanjose.montesdeocaarbos
parents:
259
diff
changeset
|
113 { |
269 | 114 {"Blog", ""}, |
115 {"EMail", ""}, | |
116 {"Nombre", ""}, | |
117 {"Roles", "Administrador"}, | |
118 {"Roles", "Usuario"}, | |
119 {"Twitter", ""} | |
120 }; | |
121 var personaNew = BindModel<PersonaNewModel>(personaController, form); | |
122 | |
123 using (new RequestEmulator(NhHelper.GetSessionFactory())) | |
124 { | |
125 var resultNuevo = personaController.Nueva(personaNew); | |
126 Assert.IsInstanceOf(typeof(ViewResult), resultNuevo); | |
127 var viewResultNuevo = (ViewResult) resultNuevo; | |
128 Assert.AreEqual("Defaulteditor", viewResultNuevo.ViewName); | |
129 Assert.AreEqual(1, viewResultNuevo.ViewData.ModelState["EMail"].Errors.Count); | |
130 Assert.AreEqual("El campo EMail es obligatorio.", viewResultNuevo.ViewData.ModelState["EMail"].Errors[0].ErrorMessage); | |
131 Assert.AreEqual(1, viewResultNuevo.ViewData.ModelState["Nombre"].Errors.Count); | |
132 Assert.AreEqual("El campo Nombre es obligatorio.", viewResultNuevo.ViewData.ModelState["Nombre"].Errors[0].ErrorMessage); | |
133 Assert.AreEqual(1, viewResultNuevo.ViewData.ModelState["Twitter"].Errors.Count); | |
134 Assert.AreEqual("El campo Twitter es obligatorio.", viewResultNuevo.ViewData.ModelState["Twitter"].Errors[0].ErrorMessage); | |
135 } | |
136 } | |
137 | |
138 [Test] | |
139 public void PersonaNuevaPOST_FormatFields() | |
140 { | |
141 var personaController = new PersonaController { ControllerContext = ControllerCtx }; | |
142 | |
143 var form = new FormCollection | |
144 { | |
145 {"Blog", "montesdeocaarbos.com.ar/blog/"}, | |
261
d669e9b9e24e
PersonaControllerTests: No se estaba pasando el HttpContext al test.
juanjose.montesdeocaarbos
parents:
259
diff
changeset
|
146 {"EMail", "juanjose.montesdeocaarbos gmail.com"}, |
d669e9b9e24e
PersonaControllerTests: No se estaba pasando el HttpContext al test.
juanjose.montesdeocaarbos
parents:
259
diff
changeset
|
147 {"Nombre", "Juan José Montes de Oca Arbós"}, |
d669e9b9e24e
PersonaControllerTests: No se estaba pasando el HttpContext al test.
juanjose.montesdeocaarbos
parents:
259
diff
changeset
|
148 {"Roles", "Administrador"}, |
d669e9b9e24e
PersonaControllerTests: No se estaba pasando el HttpContext al test.
juanjose.montesdeocaarbos
parents:
259
diff
changeset
|
149 {"Roles", "Usuario"}, |
d669e9b9e24e
PersonaControllerTests: No se estaba pasando el HttpContext al test.
juanjose.montesdeocaarbos
parents:
259
diff
changeset
|
150 {"Twitter", "@jjmoa"} |
d669e9b9e24e
PersonaControllerTests: No se estaba pasando el HttpContext al test.
juanjose.montesdeocaarbos
parents:
259
diff
changeset
|
151 }; |
d669e9b9e24e
PersonaControllerTests: No se estaba pasando el HttpContext al test.
juanjose.montesdeocaarbos
parents:
259
diff
changeset
|
152 var personaNew = BindModel<PersonaNewModel>(personaController, form); |
259
e6c041d8e1bf
Ticket #193.1: Al guardar (nuevo/modificar) una persona, que la cuenta de twitter no comience con @
juanjose.montesdeocaarbos
parents:
diff
changeset
|
153 |
e6c041d8e1bf
Ticket #193.1: Al guardar (nuevo/modificar) una persona, que la cuenta de twitter no comience con @
juanjose.montesdeocaarbos
parents:
diff
changeset
|
154 using (new RequestEmulator(NhHelper.GetSessionFactory())) |
e6c041d8e1bf
Ticket #193.1: Al guardar (nuevo/modificar) una persona, que la cuenta de twitter no comience con @
juanjose.montesdeocaarbos
parents:
diff
changeset
|
155 { |
e6c041d8e1bf
Ticket #193.1: Al guardar (nuevo/modificar) una persona, que la cuenta de twitter no comience con @
juanjose.montesdeocaarbos
parents:
diff
changeset
|
156 var resultNuevo = personaController.Nueva(personaNew); |
269 | 157 Assert.IsInstanceOf(typeof(ViewResult), resultNuevo); |
158 var viewResultNuevo = (ViewResult)resultNuevo; | |
159 Assert.AreEqual("Defaulteditor", viewResultNuevo.ViewName); | |
160 Assert.AreEqual(1, viewResultNuevo.ViewData.ModelState["Twitter"].Errors.Count); | |
161 Assert.AreEqual("No debe ingresar el arroba al escribir la cuenta de twitter.", viewResultNuevo.ViewData.ModelState["Twitter"].Errors[0].ErrorMessage); | |
162 Assert.AreEqual(1, viewResultNuevo.ViewData.ModelState["Blog"].Errors.Count); | |
163 Assert.AreEqual("The Blog field is not a valid fully-qualified http, https, or ftp URL.", viewResultNuevo.ViewData.ModelState["Blog"].Errors[0].ErrorMessage); | |
164 Assert.AreEqual(1, viewResultNuevo.ViewData.ModelState["EMail"].Errors.Count); | |
165 Assert.AreEqual("The EMail field is not a valid e-mail address.", viewResultNuevo.ViewData.ModelState["EMail"].Errors[0].ErrorMessage); | |
166 } | |
167 } | |
168 | |
169 [Test] | |
170 public void PersonaNuevaPOST_PersonaExistente() | |
171 { | |
172 var personaController = new PersonaController { ControllerContext = ControllerCtx }; | |
270 | 173 PersonaNueva(ref personaController); |
269 | 174 |
175 var form = new FormCollection | |
176 { | |
177 {"Blog", "http://montesdeocaarbos.com.ar/blog/"}, | |
178 {"EMail", "juanjose.montesdeocaarbos@gmail.com"}, | |
179 {"Nombre", "Juan José Montes de Oca Arbós"}, | |
180 {"Roles", "Administrador"}, | |
181 {"Roles", "Usuario"}, | |
182 {"Twitter", "jjmoa"} | |
183 }; | |
184 var personaNew = BindModel<PersonaNewModel>(personaController, form); | |
185 | |
186 using (new RequestEmulator(NhHelper.GetSessionFactory())) | |
187 { | |
188 var resultNuevo = personaController.Nueva(personaNew); | |
189 Assert.IsInstanceOf(typeof(ViewResult), resultNuevo); | |
190 var viewResultNuevo = (ViewResult)resultNuevo; | |
191 Assert.AreEqual("Defaulteditor", viewResultNuevo.ViewName); | |
192 Assert.AreEqual("Ya existe una persona con el nombre " + personaNew.Nombre, personaController.TempData["error"]); | |
259
e6c041d8e1bf
Ticket #193.1: Al guardar (nuevo/modificar) una persona, que la cuenta de twitter no comience con @
juanjose.montesdeocaarbos
parents:
diff
changeset
|
193 } |
e6c041d8e1bf
Ticket #193.1: Al guardar (nuevo/modificar) una persona, que la cuenta de twitter no comience con @
juanjose.montesdeocaarbos
parents:
diff
changeset
|
194 } |
e6c041d8e1bf
Ticket #193.1: Al guardar (nuevo/modificar) una persona, que la cuenta de twitter no comience con @
juanjose.montesdeocaarbos
parents:
diff
changeset
|
195 |
e6c041d8e1bf
Ticket #193.1: Al guardar (nuevo/modificar) una persona, que la cuenta de twitter no comience con @
juanjose.montesdeocaarbos
parents:
diff
changeset
|
196 [Test] |
269 | 197 public void PersonaModificarPOST_RequiredFields() |
259
e6c041d8e1bf
Ticket #193.1: Al guardar (nuevo/modificar) una persona, que la cuenta de twitter no comience con @
juanjose.montesdeocaarbos
parents:
diff
changeset
|
198 { |
269 | 199 var personaController = new PersonaController { ControllerContext = ControllerCtx }; |
270 | 200 PersonaNueva(ref personaController); |
269 | 201 |
202 PersonaEditModel personaEdit = null; | |
203 using (new RequestEmulator(NhHelper.GetSessionFactory())) | |
204 { | |
205 var form = new FormCollection | |
206 { | |
207 {"Id", ""}, | |
208 {"Blog", ""}, | |
209 {"EMail", ""}, | |
210 {"Nombre", ""}, | |
211 {"Roles", "Administrador"}, | |
212 {"Roles", "Usuario"}, | |
213 {"Twitter", ""} | |
214 }; | |
215 personaEdit = BindModel<PersonaEditModel>(personaController, form); | |
216 } | |
259
e6c041d8e1bf
Ticket #193.1: Al guardar (nuevo/modificar) una persona, que la cuenta de twitter no comience con @
juanjose.montesdeocaarbos
parents:
diff
changeset
|
217 |
e6c041d8e1bf
Ticket #193.1: Al guardar (nuevo/modificar) una persona, que la cuenta de twitter no comience con @
juanjose.montesdeocaarbos
parents:
diff
changeset
|
218 using (new RequestEmulator(NhHelper.GetSessionFactory())) |
e6c041d8e1bf
Ticket #193.1: Al guardar (nuevo/modificar) una persona, que la cuenta de twitter no comience con @
juanjose.montesdeocaarbos
parents:
diff
changeset
|
219 { |
269 | 220 var resultNuevo = personaController.Modificar(personaEdit); |
221 Assert.IsInstanceOf(typeof(ViewResult), resultNuevo); | |
222 var viewResultNuevo = (ViewResult)resultNuevo; | |
223 Assert.AreEqual("Defaulteditor", viewResultNuevo.ViewName); | |
224 Assert.AreEqual(1, viewResultNuevo.ViewData.ModelState["Id"].Errors.Count); | |
225 Assert.AreEqual("El campo Id es obligatorio.", viewResultNuevo.ViewData.ModelState["Id"].Errors[0].ErrorMessage); | |
226 Assert.AreEqual(1, viewResultNuevo.ViewData.ModelState["EMail"].Errors.Count); | |
227 Assert.AreEqual("El campo EMail es obligatorio.", viewResultNuevo.ViewData.ModelState["EMail"].Errors[0].ErrorMessage); | |
228 Assert.AreEqual(1, viewResultNuevo.ViewData.ModelState["Nombre"].Errors.Count); | |
229 Assert.AreEqual("El campo Nombre es obligatorio.", viewResultNuevo.ViewData.ModelState["Nombre"].Errors[0].ErrorMessage); | |
230 Assert.AreEqual(1, viewResultNuevo.ViewData.ModelState["Twitter"].Errors.Count); | |
231 Assert.AreEqual("El campo Twitter es obligatorio.", viewResultNuevo.ViewData.ModelState["Twitter"].Errors[0].ErrorMessage); | |
259
e6c041d8e1bf
Ticket #193.1: Al guardar (nuevo/modificar) una persona, que la cuenta de twitter no comience con @
juanjose.montesdeocaarbos
parents:
diff
changeset
|
232 } |
269 | 233 } |
234 | |
235 [Test] | |
236 public void PersonaModificarPOST_FormatFields() | |
237 { | |
238 var personaController = new PersonaController { ControllerContext = ControllerCtx }; | |
270 | 239 PersonaNueva(ref personaController); |
259
e6c041d8e1bf
Ticket #193.1: Al guardar (nuevo/modificar) una persona, que la cuenta de twitter no comience con @
juanjose.montesdeocaarbos
parents:
diff
changeset
|
240 |
e6c041d8e1bf
Ticket #193.1: Al guardar (nuevo/modificar) una persona, que la cuenta de twitter no comience con @
juanjose.montesdeocaarbos
parents:
diff
changeset
|
241 PersonaEditModel personaEdit = null; |
e6c041d8e1bf
Ticket #193.1: Al guardar (nuevo/modificar) una persona, que la cuenta de twitter no comience con @
juanjose.montesdeocaarbos
parents:
diff
changeset
|
242 using (new RequestEmulator(NhHelper.GetSessionFactory())) |
e6c041d8e1bf
Ticket #193.1: Al guardar (nuevo/modificar) una persona, que la cuenta de twitter no comience con @
juanjose.montesdeocaarbos
parents:
diff
changeset
|
243 { |
e6c041d8e1bf
Ticket #193.1: Al guardar (nuevo/modificar) una persona, que la cuenta de twitter no comience con @
juanjose.montesdeocaarbos
parents:
diff
changeset
|
244 var personaRepository = new PersonaRepository(NhHelper.GetSessionFactory()); |
261
d669e9b9e24e
PersonaControllerTests: No se estaba pasando el HttpContext al test.
juanjose.montesdeocaarbos
parents:
259
diff
changeset
|
245 |
d669e9b9e24e
PersonaControllerTests: No se estaba pasando el HttpContext al test.
juanjose.montesdeocaarbos
parents:
259
diff
changeset
|
246 var form = new FormCollection |
d669e9b9e24e
PersonaControllerTests: No se estaba pasando el HttpContext al test.
juanjose.montesdeocaarbos
parents:
259
diff
changeset
|
247 { |
d669e9b9e24e
PersonaControllerTests: No se estaba pasando el HttpContext al test.
juanjose.montesdeocaarbos
parents:
259
diff
changeset
|
248 {"Id", personaRepository.GetAll().FirstOrDefault().Id.ToString()}, |
269 | 249 {"Blog", "montesdeocaarbos.com.ar/blog/"}, |
261
d669e9b9e24e
PersonaControllerTests: No se estaba pasando el HttpContext al test.
juanjose.montesdeocaarbos
parents:
259
diff
changeset
|
250 {"EMail", "juanjose.montesdeocaarbos gmail.com"}, |
d669e9b9e24e
PersonaControllerTests: No se estaba pasando el HttpContext al test.
juanjose.montesdeocaarbos
parents:
259
diff
changeset
|
251 {"Nombre", "Juan José Montes de Oca Arbós"}, |
d669e9b9e24e
PersonaControllerTests: No se estaba pasando el HttpContext al test.
juanjose.montesdeocaarbos
parents:
259
diff
changeset
|
252 {"Roles", "Administrador"}, |
d669e9b9e24e
PersonaControllerTests: No se estaba pasando el HttpContext al test.
juanjose.montesdeocaarbos
parents:
259
diff
changeset
|
253 {"Roles", "Usuario"}, |
d669e9b9e24e
PersonaControllerTests: No se estaba pasando el HttpContext al test.
juanjose.montesdeocaarbos
parents:
259
diff
changeset
|
254 {"Twitter", "@jjmoa"} |
d669e9b9e24e
PersonaControllerTests: No se estaba pasando el HttpContext al test.
juanjose.montesdeocaarbos
parents:
259
diff
changeset
|
255 }; |
d669e9b9e24e
PersonaControllerTests: No se estaba pasando el HttpContext al test.
juanjose.montesdeocaarbos
parents:
259
diff
changeset
|
256 personaEdit = BindModel<PersonaEditModel>(personaController, form); |
259
e6c041d8e1bf
Ticket #193.1: Al guardar (nuevo/modificar) una persona, que la cuenta de twitter no comience con @
juanjose.montesdeocaarbos
parents:
diff
changeset
|
257 } |
269 | 258 |
259
e6c041d8e1bf
Ticket #193.1: Al guardar (nuevo/modificar) una persona, que la cuenta de twitter no comience con @
juanjose.montesdeocaarbos
parents:
diff
changeset
|
259 using (new RequestEmulator(NhHelper.GetSessionFactory())) |
e6c041d8e1bf
Ticket #193.1: Al guardar (nuevo/modificar) una persona, que la cuenta de twitter no comience con @
juanjose.montesdeocaarbos
parents:
diff
changeset
|
260 { |
e6c041d8e1bf
Ticket #193.1: Al guardar (nuevo/modificar) una persona, que la cuenta de twitter no comience con @
juanjose.montesdeocaarbos
parents:
diff
changeset
|
261 var resultModificar = personaController.Modificar(personaEdit); |
269 | 262 Assert.IsInstanceOf(typeof(ViewResult), resultModificar); |
263 var viewResultModificar = (ViewResult)resultModificar; | |
264 Assert.AreEqual("Defaulteditor", viewResultModificar.ViewName); | |
265 Assert.AreEqual(1, viewResultModificar.ViewData.ModelState["Twitter"].Errors.Count); | |
266 Assert.AreEqual("No debe ingresar el arroba al escribir la cuenta de twitter.", viewResultModificar.ViewData.ModelState["Twitter"].Errors[0].ErrorMessage); | |
267 Assert.AreEqual(1, viewResultModificar.ViewData.ModelState["Blog"].Errors.Count); | |
268 Assert.AreEqual("The Blog field is not a valid fully-qualified http, https, or ftp URL.", viewResultModificar.ViewData.ModelState["Blog"].Errors[0].ErrorMessage); | |
269 Assert.AreEqual(1, viewResultModificar.ViewData.ModelState["EMail"].Errors.Count); | |
270 Assert.AreEqual("The EMail field is not a valid e-mail address.", viewResultModificar.ViewData.ModelState["EMail"].Errors[0].ErrorMessage); | |
271 } | |
272 } | |
273 | |
274 [Test] | |
275 public void PersonaModificarPOST_PersonaExistente() | |
276 { | |
277 var personaController = new PersonaController { ControllerContext = ControllerCtx }; | |
270 | 278 PersonaNueva(ref personaController); |
269 | 279 |
280 PersonaEditModel personaEdit = null; | |
281 using (new RequestEmulator(NhHelper.GetSessionFactory())) | |
282 { | |
283 var personaRepository = new PersonaRepository(NhHelper.GetSessionFactory()); | |
284 | |
285 var form = new FormCollection | |
286 { | |
287 {"Id", personaRepository.GetAll().FirstOrDefault().Id.ToString()}, | |
288 {"Blog", "http://nelopauselli.blogspot.com/"}, | |
289 {"EMail", "nelo@gmail.com"}, | |
290 {"Nombre", "Nelo Mariano Pauselli"}, | |
291 {"Roles", "Administrador"}, | |
292 {"Roles", "Usuario"}, | |
293 {"Twitter", "npauselli"} | |
294 }; | |
295 personaEdit = BindModel<PersonaEditModel>(personaController, form); | |
296 } | |
297 | |
298 using (new RequestEmulator(NhHelper.GetSessionFactory())) | |
299 { | |
300 var resultEdit = personaController.Modificar(personaEdit); | |
301 Assert.IsInstanceOf(typeof(ViewResult), resultEdit); | |
302 var viewResultNuevo = (ViewResult)resultEdit; | |
303 Assert.AreEqual("Defaulteditor", viewResultNuevo.ViewName); | |
304 Assert.AreEqual("Ya existe una persona con el twitter " + personaEdit.Twitter, personaController.TempData["error"]); | |
305 } | |
306 } | |
307 | |
308 [Test] | |
309 public void PersonaModificarPOST_Successful() | |
310 { | |
311 var personaController = new PersonaController { ControllerContext = ControllerCtx }; | |
270 | 312 PersonaNueva(ref personaController); |
269 | 313 |
314 PersonaEditModel personaEdit = null; | |
315 using (new RequestEmulator(NhHelper.GetSessionFactory())) | |
316 { | |
317 var personaRepository = new PersonaRepository(NhHelper.GetSessionFactory()); | |
318 | |
319 var form = new FormCollection | |
320 { | |
321 {"Id", personaRepository.GetAll().FirstOrDefault().Id.ToString()}, | |
322 {"Blog", "http://montesdeocaarbos.com.ar/blog/"}, | |
323 {"EMail", "juanjose.montesdeocaarbos@gmail.com"}, | |
324 {"Nombre", "Juan José Montes de Oca Arbós"}, | |
325 {"Roles", "Administrador"}, | |
326 {"Roles", "Usuario"}, | |
327 {"Twitter", "jjmoa"} | |
328 }; | |
329 personaEdit = BindModel<PersonaEditModel>(personaController, form); | |
330 } | |
331 | |
332 using (new RequestEmulator(NhHelper.GetSessionFactory())) | |
333 { | |
334 var resultModificar = personaController.Modificar(personaEdit); | |
335 Assert.IsInstanceOf(typeof(RedirectToRouteResult), resultModificar); | |
336 Assert.AreEqual("Index", ((RedirectToRouteResult)resultModificar).RouteValues["action"]); | |
259
e6c041d8e1bf
Ticket #193.1: Al guardar (nuevo/modificar) una persona, que la cuenta de twitter no comience con @
juanjose.montesdeocaarbos
parents:
diff
changeset
|
337 } |
e6c041d8e1bf
Ticket #193.1: Al guardar (nuevo/modificar) una persona, que la cuenta de twitter no comience con @
juanjose.montesdeocaarbos
parents:
diff
changeset
|
338 } |
270 | 339 |
340 [Test] | |
341 public void PersonaQuitarGET() | |
342 { | |
343 var personaController = new PersonaController { ControllerContext = ControllerCtx }; | |
344 PersonaNueva(ref personaController); | |
345 | |
346 using (new RequestEmulator(NhHelper.GetSessionFactory())) | |
347 { | |
348 var personaRepository = new PersonaRepository(NhHelper.GetSessionFactory()); | |
349 | |
350 var resultQuitar = personaController.Quitar(personaRepository.GetAll().FirstOrDefault().Id.ToString()); | |
351 | |
352 Assert.IsInstanceOf(typeof(RedirectToRouteResult), resultQuitar); | |
353 var redirectResultQuitar = (RedirectToRouteResult)resultQuitar; | |
354 Assert.AreEqual("Index", redirectResultQuitar.RouteValues["action"]); | |
355 Assert.AreEqual(1, personaController.TempData.Count); | |
356 Assert.AreEqual("Se ha eliminado correctamente a la persona", personaController.TempData["notification"]); | |
357 Assert.IsNull(personaController.TempData["warning"]); | |
358 Assert.IsNull(personaController.TempData["error"]); | |
359 } | |
360 } | |
361 | |
362 [Test] | |
363 public void PersonaQuitarGET_PersonaInexistente() | |
364 { | |
365 var personaController = new PersonaController { ControllerContext = ControllerCtx }; | |
366 | |
367 using (new RequestEmulator(NhHelper.GetSessionFactory())) | |
368 { | |
369 const string personaId = "11111111-1111-1111-1111-111111111111"; | |
370 var resultVer = personaController.Quitar(personaId); | |
371 Assert.IsInstanceOf(typeof(RedirectToRouteResult), resultVer); | |
372 Assert.AreEqual("Index", ((RedirectToRouteResult)resultVer).RouteValues["action"]); | |
373 Assert.AreEqual(string.Format("No se pudo encontrar la persona cuyo Id sea {0}", personaId), personaController.TempData["error"]); | |
374 } | |
375 } | |
376 | |
377 [Test] | |
378 public void PersonaVerGET() | |
379 { | |
380 var personaController = new PersonaController { ControllerContext = ControllerCtx }; | |
381 PersonaNueva(ref personaController); | |
382 | |
383 using (new RequestEmulator(NhHelper.GetSessionFactory())) | |
384 { | |
385 var personaRepository = new PersonaRepository(NhHelper.GetSessionFactory()); | |
386 | |
387 var resultModificar = personaController.Ver(personaRepository.GetAll().FirstOrDefault().Id.ToString()); | |
388 Assert.IsInstanceOf(typeof(ViewResult), resultModificar); | |
389 Assert.AreEqual("DefaultViewer", ((ViewResult)resultModificar).ViewName); | |
390 } | |
391 } | |
392 | |
393 [Test] | |
394 public void PersonaVerGET_PersonaInexistente() | |
395 { | |
396 var personaController = new PersonaController { ControllerContext = ControllerCtx }; | |
397 | |
398 using (new RequestEmulator(NhHelper.GetSessionFactory())) | |
399 { | |
400 var resultVer = personaController.Ver("11111111-1111-1111-1111-111111111111"); | |
401 Assert.IsInstanceOf(typeof(RedirectToRouteResult), resultVer); | |
402 Assert.AreEqual("Index", ((RedirectToRouteResult)resultVer).RouteValues["action"]); | |
403 Assert.AreEqual("No se encontró la persona que intenta visualizar", personaController.TempData["error"]); | |
404 } | |
405 } | |
259
e6c041d8e1bf
Ticket #193.1: Al guardar (nuevo/modificar) una persona, que la cuenta de twitter no comience con @
juanjose.montesdeocaarbos
parents:
diff
changeset
|
406 } |
e6c041d8e1bf
Ticket #193.1: Al guardar (nuevo/modificar) una persona, que la cuenta de twitter no comience con @
juanjose.montesdeocaarbos
parents:
diff
changeset
|
407 } |