view 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 source

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