Mercurial > altnet-hispano
diff Agendas/trunk/src/Agendas.Web.Tests/Controllers/PersonaControllerTests.cs @ 259:e6c041d8e1bf
Ticket #193.1: Al guardar (nuevo/modificar) una persona, que la cuenta de twitter no comience con @
author | juanjose.montesdeocaarbos |
---|---|
date | Thu, 20 Oct 2011 08:16:55 -0300 |
parents | |
children | d669e9b9e24e |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Agendas/trunk/src/Agendas.Web.Tests/Controllers/PersonaControllerTests.cs Thu Oct 20 08:16:55 2011 -0300 @@ -0,0 +1,104 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Web.Mvc; +using Agendas.NHibernate; +using Agendas.Repositories.Tests.Infraestructure; +using AltNetHispano.Agendas.Domain; +using AltNetHispano.Agendas.Repositories.NHibernate; +using AltNetHispano.Agendas.Web.Controllers; +using AltNetHispano.Agendas.Web.Models; +using Moq; +using NUnit.Framework; + +namespace Agendas.Web.Tests.Controllers +{ + [TestFixture] + public class PersonaControllerTests + { + private void SetearUsuario() + { + var seguridad = new Mock<ISeguridad>(); + seguridad.Setup(s => s.GetUserName()).Returns("neluz"); + IdentityContext.Init(seguridad.Object, new PersonaRepository(NhHelper.GetSessionFactory())); + } + + [SetUp] + public void Setup() + { + NhHelperTest.CleanDb(); + //PopulatePersona(); + SetearUsuario(); + } + + [Test] + public void PersonaNueva_ErrorAlGuardarTwitterConArroba() + { + var personaController = new PersonaController(); + + var personaNew = new PersonaNewModel + { + Blog = "http://juanjose.montesdeocaarbos.com.ar/blog/", + EMail = "juanjose.montesdeocaarbos gmail.com", + Nombre = "Juan José Montes de Oca Arbós", + Roles = new string[] {"Administrador", "Usuario"}, + Twitter = "@jjmoa" + }; + + using (new RequestEmulator(NhHelper.GetSessionFactory())) + { + Assert.IsFalse(personaController.TempData.ContainsKey("error")); + var resultNuevo = personaController.Nueva(personaNew); + Assert.IsInstanceOf(typeof (ViewResult), resultNuevo); + Assert.AreEqual("Defaulteditor", ((ViewResult) resultNuevo).ViewName); + Assert.IsTrue(personaController.TempData.ContainsKey("error")); + Assert.AreNotEqual(string.Empty, personaController.TempData["error"]); + } + } + + [Test] + public void PersonaModificar_ErrorAlGuardarTwitterConArroba() + { + var personaController = new PersonaController(); + #region PersonaNew + var personaNew = new PersonaNewModel + { + Blog = "http://juanjose.montesdeocaarbos.com.ar/blog/", + EMail = "juanjose.montesdeocaarbos@gmail.com", + Nombre = "Juan José Montes de Oca Arbós", + Roles = new string[] {"Administrador", "Usuario"}, + Twitter = "jjmoa" + }; + + using (new RequestEmulator(NhHelper.GetSessionFactory())) + { + personaController.Nueva(personaNew); + } + #endregion + + PersonaEditModel personaEdit = null; + using (new RequestEmulator(NhHelper.GetSessionFactory())) + { + var personaRepository = new PersonaRepository(NhHelper.GetSessionFactory()); + personaEdit = new PersonaEditModel + { + Id = personaRepository.GetAll().FirstOrDefault().Id.ToString(), + Blog = "http://juanjose.montesdeocaarbos.com.ar/blog/", + EMail = "juanjose.montesdeocaarbos gmail.com", + Nombre = "Juan José Montes de Oca Arbós", + Roles = new string[] {"Administrador", "Usuario"}, + Twitter = "@jjmoa" + }; + } + using (new RequestEmulator(NhHelper.GetSessionFactory())) + { + Assert.IsFalse(personaController.TempData.ContainsKey("error")); + var resultModificar = personaController.Modificar(personaEdit); + Assert.IsInstanceOf(typeof (ViewResult), resultModificar); + Assert.AreEqual("Defaulteditor", ((ViewResult) resultModificar).ViewName); + Assert.IsTrue(personaController.TempData.ContainsKey("error")); + Assert.AreNotEqual(string.Empty, personaController.TempData["error"]); + } + } + } +}