annotate Agendas/trunk/src/Agendas.Web.Tests/Controllers/PersonaControllerTests.cs @ 262:b87a4875b2b6

ControllerTests: Refactoring.
author juanjose.montesdeocaarbos
date Sat, 22 Oct 2011 14:08:30 -0300
parents d669e9b9e24e
children 3339d1da6a63
rev   line source
259
e6c041d8e1bf Ticket #193.1: Al guardar (nuevo/modificar) una persona, que la cuenta de twitter no comience con @
juanjose.montesdeocaarbos
parents:
diff changeset
1 using System;
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.Collections.Generic;
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 System.Linq;
261
d669e9b9e24e PersonaControllerTests: No se estaba pasando el HttpContext al test.
juanjose.montesdeocaarbos
parents: 259
diff changeset
4 using System.Web;
259
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 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
6 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
7 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
8 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
9 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
10 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
11 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
12 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
13 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
14
e6c041d8e1bf Ticket #193.1: Al guardar (nuevo/modificar) una persona, que la cuenta de twitter no comience con @
juanjose.montesdeocaarbos
parents:
diff changeset
15 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
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 [TestFixture]
262
b87a4875b2b6 ControllerTests: Refactoring.
juanjose.montesdeocaarbos
parents: 261
diff changeset
18 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
19 {
e6c041d8e1bf Ticket #193.1: Al guardar (nuevo/modificar) una persona, que la cuenta de twitter no comience con @
juanjose.montesdeocaarbos
parents:
diff changeset
20 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
21 {
e6c041d8e1bf Ticket #193.1: Al guardar (nuevo/modificar) una persona, que la cuenta de twitter no comience con @
juanjose.montesdeocaarbos
parents:
diff changeset
22 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
23 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
24 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
25 }
e6c041d8e1bf Ticket #193.1: Al guardar (nuevo/modificar) una persona, que la cuenta de twitter no comience con @
juanjose.montesdeocaarbos
parents:
diff changeset
26
e6c041d8e1bf Ticket #193.1: Al guardar (nuevo/modificar) una persona, que la cuenta de twitter no comience con @
juanjose.montesdeocaarbos
parents:
diff changeset
27 [SetUp]
e6c041d8e1bf Ticket #193.1: Al guardar (nuevo/modificar) una persona, que la cuenta de twitter no comience con @
juanjose.montesdeocaarbos
parents:
diff changeset
28 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
29 {
e6c041d8e1bf Ticket #193.1: Al guardar (nuevo/modificar) una persona, que la cuenta de twitter no comience con @
juanjose.montesdeocaarbos
parents:
diff changeset
30 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
31 //PopulatePersona();
e6c041d8e1bf Ticket #193.1: Al guardar (nuevo/modificar) una persona, que la cuenta de twitter no comience con @
juanjose.montesdeocaarbos
parents:
diff changeset
32 SetearUsuario();
262
b87a4875b2b6 ControllerTests: Refactoring.
juanjose.montesdeocaarbos
parents: 261
diff changeset
33 SetupTests();
259
e6c041d8e1bf Ticket #193.1: Al guardar (nuevo/modificar) una persona, que la cuenta de twitter no comience con @
juanjose.montesdeocaarbos
parents:
diff changeset
34 }
e6c041d8e1bf Ticket #193.1: Al guardar (nuevo/modificar) una persona, que la cuenta de twitter no comience con @
juanjose.montesdeocaarbos
parents:
diff changeset
35
e6c041d8e1bf Ticket #193.1: Al guardar (nuevo/modificar) una persona, que la cuenta de twitter no comience con @
juanjose.montesdeocaarbos
parents:
diff changeset
36 [Test]
e6c041d8e1bf Ticket #193.1: Al guardar (nuevo/modificar) una persona, que la cuenta de twitter no comience con @
juanjose.montesdeocaarbos
parents:
diff changeset
37 public void PersonaNueva_ErrorAlGuardarTwitterConArroba()
e6c041d8e1bf Ticket #193.1: Al guardar (nuevo/modificar) una persona, que la cuenta de twitter no comience con @
juanjose.montesdeocaarbos
parents:
diff changeset
38 {
262
b87a4875b2b6 ControllerTests: Refactoring.
juanjose.montesdeocaarbos
parents: 261
diff changeset
39 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
40
261
d669e9b9e24e PersonaControllerTests: No se estaba pasando el HttpContext al test.
juanjose.montesdeocaarbos
parents: 259
diff changeset
41 var form = new FormCollection
d669e9b9e24e PersonaControllerTests: No se estaba pasando el HttpContext al test.
juanjose.montesdeocaarbos
parents: 259
diff changeset
42 {
d669e9b9e24e PersonaControllerTests: No se estaba pasando el HttpContext al test.
juanjose.montesdeocaarbos
parents: 259
diff changeset
43 {"Blog", "http://juanjose.montesdeocaarbos.com.ar/blog/"},
d669e9b9e24e PersonaControllerTests: No se estaba pasando el HttpContext al test.
juanjose.montesdeocaarbos
parents: 259
diff changeset
44 {"EMail", "juanjose.montesdeocaarbos gmail.com"},
d669e9b9e24e PersonaControllerTests: No se estaba pasando el HttpContext al test.
juanjose.montesdeocaarbos
parents: 259
diff changeset
45 {"Nombre", "Juan José Montes de Oca Arbós"},
d669e9b9e24e PersonaControllerTests: No se estaba pasando el HttpContext al test.
juanjose.montesdeocaarbos
parents: 259
diff changeset
46 {"Roles", "Administrador"},
d669e9b9e24e PersonaControllerTests: No se estaba pasando el HttpContext al test.
juanjose.montesdeocaarbos
parents: 259
diff changeset
47 {"Roles", "Usuario"},
d669e9b9e24e PersonaControllerTests: No se estaba pasando el HttpContext al test.
juanjose.montesdeocaarbos
parents: 259
diff changeset
48 {"Twitter", "@jjmoa"}
d669e9b9e24e PersonaControllerTests: No se estaba pasando el HttpContext al test.
juanjose.montesdeocaarbos
parents: 259
diff changeset
49 };
d669e9b9e24e PersonaControllerTests: No se estaba pasando el HttpContext al test.
juanjose.montesdeocaarbos
parents: 259
diff changeset
50 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
51
e6c041d8e1bf Ticket #193.1: Al guardar (nuevo/modificar) una persona, que la cuenta de twitter no comience con @
juanjose.montesdeocaarbos
parents:
diff changeset
52 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
53 {
e6c041d8e1bf Ticket #193.1: Al guardar (nuevo/modificar) una persona, que la cuenta de twitter no comience con @
juanjose.montesdeocaarbos
parents:
diff changeset
54 var resultNuevo = personaController.Nueva(personaNew);
e6c041d8e1bf Ticket #193.1: Al guardar (nuevo/modificar) una persona, que la cuenta de twitter no comience con @
juanjose.montesdeocaarbos
parents:
diff changeset
55 Assert.IsInstanceOf(typeof (ViewResult), resultNuevo);
e6c041d8e1bf Ticket #193.1: Al guardar (nuevo/modificar) una persona, que la cuenta de twitter no comience con @
juanjose.montesdeocaarbos
parents:
diff changeset
56 Assert.AreEqual("Defaulteditor", ((ViewResult) resultNuevo).ViewName);
261
d669e9b9e24e PersonaControllerTests: No se estaba pasando el HttpContext al test.
juanjose.montesdeocaarbos
parents: 259
diff changeset
57 Assert.IsFalse(personaController.TempData.ContainsKey("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
58 }
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
e6c041d8e1bf Ticket #193.1: Al guardar (nuevo/modificar) una persona, que la cuenta de twitter no comience con @
juanjose.montesdeocaarbos
parents:
diff changeset
61 [Test]
e6c041d8e1bf Ticket #193.1: Al guardar (nuevo/modificar) una persona, que la cuenta de twitter no comience con @
juanjose.montesdeocaarbos
parents:
diff changeset
62 public void PersonaModificar_ErrorAlGuardarTwitterConArroba()
e6c041d8e1bf Ticket #193.1: Al guardar (nuevo/modificar) una persona, que la cuenta de twitter no comience con @
juanjose.montesdeocaarbos
parents:
diff changeset
63 {
262
b87a4875b2b6 ControllerTests: Refactoring.
juanjose.montesdeocaarbos
parents: 261
diff changeset
64 var personaController = new PersonaController {ControllerContext = ControllerCtx};
261
d669e9b9e24e PersonaControllerTests: No se estaba pasando el HttpContext al test.
juanjose.montesdeocaarbos
parents: 259
diff changeset
65
259
e6c041d8e1bf Ticket #193.1: Al guardar (nuevo/modificar) una persona, que la cuenta de twitter no comience con @
juanjose.montesdeocaarbos
parents:
diff changeset
66 #region PersonaNew
e6c041d8e1bf Ticket #193.1: Al guardar (nuevo/modificar) una persona, que la cuenta de twitter no comience con @
juanjose.montesdeocaarbos
parents:
diff changeset
67 var personaNew = new PersonaNewModel
e6c041d8e1bf Ticket #193.1: Al guardar (nuevo/modificar) una persona, que la cuenta de twitter no comience con @
juanjose.montesdeocaarbos
parents:
diff changeset
68 {
e6c041d8e1bf Ticket #193.1: Al guardar (nuevo/modificar) una persona, que la cuenta de twitter no comience con @
juanjose.montesdeocaarbos
parents:
diff changeset
69 Blog = "http://juanjose.montesdeocaarbos.com.ar/blog/",
e6c041d8e1bf Ticket #193.1: Al guardar (nuevo/modificar) una persona, que la cuenta de twitter no comience con @
juanjose.montesdeocaarbos
parents:
diff changeset
70 EMail = "juanjose.montesdeocaarbos@gmail.com",
e6c041d8e1bf Ticket #193.1: Al guardar (nuevo/modificar) una persona, que la cuenta de twitter no comience con @
juanjose.montesdeocaarbos
parents:
diff changeset
71 Nombre = "Juan José Montes de Oca Arbós",
e6c041d8e1bf Ticket #193.1: Al guardar (nuevo/modificar) una persona, que la cuenta de twitter no comience con @
juanjose.montesdeocaarbos
parents:
diff changeset
72 Roles = new string[] {"Administrador", "Usuario"},
e6c041d8e1bf Ticket #193.1: Al guardar (nuevo/modificar) una persona, que la cuenta de twitter no comience con @
juanjose.montesdeocaarbos
parents:
diff changeset
73 Twitter = "jjmoa"
e6c041d8e1bf Ticket #193.1: Al guardar (nuevo/modificar) una persona, que la cuenta de twitter no comience con @
juanjose.montesdeocaarbos
parents:
diff changeset
74 };
e6c041d8e1bf Ticket #193.1: Al guardar (nuevo/modificar) una persona, que la cuenta de twitter no comience con @
juanjose.montesdeocaarbos
parents:
diff changeset
75
e6c041d8e1bf Ticket #193.1: Al guardar (nuevo/modificar) una persona, que la cuenta de twitter no comience con @
juanjose.montesdeocaarbos
parents:
diff changeset
76 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
77 {
e6c041d8e1bf Ticket #193.1: Al guardar (nuevo/modificar) una persona, que la cuenta de twitter no comience con @
juanjose.montesdeocaarbos
parents:
diff changeset
78 personaController.Nueva(personaNew);
e6c041d8e1bf Ticket #193.1: Al guardar (nuevo/modificar) una persona, que la cuenta de twitter no comience con @
juanjose.montesdeocaarbos
parents:
diff changeset
79 }
e6c041d8e1bf Ticket #193.1: Al guardar (nuevo/modificar) una persona, que la cuenta de twitter no comience con @
juanjose.montesdeocaarbos
parents:
diff changeset
80 #endregion
e6c041d8e1bf Ticket #193.1: Al guardar (nuevo/modificar) una persona, que la cuenta de twitter no comience con @
juanjose.montesdeocaarbos
parents:
diff changeset
81
e6c041d8e1bf Ticket #193.1: Al guardar (nuevo/modificar) una persona, que la cuenta de twitter no comience con @
juanjose.montesdeocaarbos
parents:
diff changeset
82 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
83 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
84 {
e6c041d8e1bf Ticket #193.1: Al guardar (nuevo/modificar) una persona, que la cuenta de twitter no comience con @
juanjose.montesdeocaarbos
parents:
diff changeset
85 var personaRepository = new PersonaRepository(NhHelper.GetSessionFactory());
261
d669e9b9e24e PersonaControllerTests: No se estaba pasando el HttpContext al test.
juanjose.montesdeocaarbos
parents: 259
diff changeset
86
d669e9b9e24e PersonaControllerTests: No se estaba pasando el HttpContext al test.
juanjose.montesdeocaarbos
parents: 259
diff changeset
87 var form = new FormCollection
d669e9b9e24e PersonaControllerTests: No se estaba pasando el HttpContext al test.
juanjose.montesdeocaarbos
parents: 259
diff changeset
88 {
d669e9b9e24e PersonaControllerTests: No se estaba pasando el HttpContext al test.
juanjose.montesdeocaarbos
parents: 259
diff changeset
89 {"Id", personaRepository.GetAll().FirstOrDefault().Id.ToString()},
d669e9b9e24e PersonaControllerTests: No se estaba pasando el HttpContext al test.
juanjose.montesdeocaarbos
parents: 259
diff changeset
90 {"Blog", "http://juanjose.montesdeocaarbos.com.ar/blog/"},
d669e9b9e24e PersonaControllerTests: No se estaba pasando el HttpContext al test.
juanjose.montesdeocaarbos
parents: 259
diff changeset
91 {"EMail", "juanjose.montesdeocaarbos gmail.com"},
d669e9b9e24e PersonaControllerTests: No se estaba pasando el HttpContext al test.
juanjose.montesdeocaarbos
parents: 259
diff changeset
92 {"Nombre", "Juan José Montes de Oca Arbós"},
d669e9b9e24e PersonaControllerTests: No se estaba pasando el HttpContext al test.
juanjose.montesdeocaarbos
parents: 259
diff changeset
93 {"Roles", "Administrador"},
d669e9b9e24e PersonaControllerTests: No se estaba pasando el HttpContext al test.
juanjose.montesdeocaarbos
parents: 259
diff changeset
94 {"Roles", "Usuario"},
d669e9b9e24e PersonaControllerTests: No se estaba pasando el HttpContext al test.
juanjose.montesdeocaarbos
parents: 259
diff changeset
95 {"Twitter", "@jjmoa"}
d669e9b9e24e PersonaControllerTests: No se estaba pasando el HttpContext al test.
juanjose.montesdeocaarbos
parents: 259
diff changeset
96 };
d669e9b9e24e PersonaControllerTests: No se estaba pasando el HttpContext al test.
juanjose.montesdeocaarbos
parents: 259
diff changeset
97 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
98 }
261
d669e9b9e24e PersonaControllerTests: No se estaba pasando el HttpContext al test.
juanjose.montesdeocaarbos
parents: 259
diff changeset
99
259
e6c041d8e1bf Ticket #193.1: Al guardar (nuevo/modificar) una persona, que la cuenta de twitter no comience con @
juanjose.montesdeocaarbos
parents:
diff changeset
100 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
101 {
e6c041d8e1bf Ticket #193.1: Al guardar (nuevo/modificar) una persona, que la cuenta de twitter no comience con @
juanjose.montesdeocaarbos
parents:
diff changeset
102 var resultModificar = personaController.Modificar(personaEdit);
e6c041d8e1bf Ticket #193.1: Al guardar (nuevo/modificar) una persona, que la cuenta de twitter no comience con @
juanjose.montesdeocaarbos
parents:
diff changeset
103 Assert.IsInstanceOf(typeof (ViewResult), resultModificar);
e6c041d8e1bf Ticket #193.1: Al guardar (nuevo/modificar) una persona, que la cuenta de twitter no comience con @
juanjose.montesdeocaarbos
parents:
diff changeset
104 Assert.AreEqual("Defaulteditor", ((ViewResult) resultModificar).ViewName);
261
d669e9b9e24e PersonaControllerTests: No se estaba pasando el HttpContext al test.
juanjose.montesdeocaarbos
parents: 259
diff changeset
105 Assert.IsFalse(personaController.TempData.ContainsKey("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
106 }
e6c041d8e1bf Ticket #193.1: Al guardar (nuevo/modificar) una persona, que la cuenta de twitter no comience con @
juanjose.montesdeocaarbos
parents:
diff changeset
107 }
e6c041d8e1bf Ticket #193.1: Al guardar (nuevo/modificar) una persona, que la cuenta de twitter no comience con @
juanjose.montesdeocaarbos
parents:
diff changeset
108 }
e6c041d8e1bf Ticket #193.1: Al guardar (nuevo/modificar) una persona, que la cuenta de twitter no comience con @
juanjose.montesdeocaarbos
parents:
diff changeset
109 }