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"]);
+            }
+        }
+    }
+}