Mercurial > altnet-hispano
view Agendas/trunk/src/Agendas.Web.Tests/Controllers/PatrocinadorControllerTests.cs @ 283:2e17dfd1ba35
Cambiandos espacios por tabuladores, etc.
author | juanjose.montesdeocaarbos |
---|---|
date | Mon, 26 Dec 2011 14:34:46 -0300 |
parents | 1e889a2e45c5 |
children | 48ab8788bd19 |
line wrap: on
line source
using System; using System.Collections.Generic; using System.IO; using System.Linq; using System.Text; using System.Web; using System.Web.Mvc; using System.Web.Routing; using Agendas.NHibernate; using Agendas.Repositories.Tests.Infraestructure; using Agendas.Web.Tests.Helpers; using AltNetHispano.Agendas.Repositories.NHibernate; using AltNetHispano.Agendas.Web.Controllers; using AltNetHispano.Agendas.Web.Models; using Moq; using NUnit.Framework; using System.Drawing; namespace Agendas.Web.Tests.Controllers { [TestFixture] public class PatrocinadorControllerTests : MvcControllerTestsBase { internal void CrearPatrocinadorApress() { var patrocinadorController = new PatrocinadorController(new HttpServerStub()) { ControllerContext = ControllerCtx }; var form = new FormCollection { {"Nombre", "APRESS"}, {"Logo", @"images\apress.gif"} }; var patrocinadorNew = BindModel<PatrocinadorNewModel>(patrocinadorController, form); using (new RequestEmulator(NhHelper.GetSessionFactory())) { var resultNuevo = patrocinadorController.Nuevo(patrocinadorNew); } } internal void RegisterBinders() { ModelBinders.Binders[typeof(HttpPostedFileBase)] = new HttpPostedFileBaseModelBinder(); } [SetUp] public void SetUpTests() { NhHelperTest.CleanDb(); RegisterBinders(); } [Test] public void PatrocinadorIndexGet() { var patrocinadorController = new PatrocinadorController(new HttpServerStub()) { ControllerContext = ControllerCtx }; using (new RequestEmulator(NhHelper.GetSessionFactory())) { var resultIndex = patrocinadorController.Index(); Assert.IsInstanceOf(typeof(ViewResult), resultIndex); Assert.AreEqual("", ((ViewResult)resultIndex).ViewName); } } [Test] public void PatrocinadorNuevoGet() { var patrocinadorController = new PatrocinadorController(new HttpServerStub()) { ControllerContext = ControllerCtx }; using (new RequestEmulator(NhHelper.GetSessionFactory())) { var resultNuevo = patrocinadorController.Nuevo(); Assert.IsInstanceOf(typeof(ViewResult), resultNuevo); Assert.AreEqual("DefaultEditor", ((ViewResult)resultNuevo).ViewName); //UploadFileEditor } } [Test] public void PatrocinadorNuevoPostSatisfactorio() { var patrocinadorController = new PatrocinadorController(new HttpServerStub()) { ControllerContext = ControllerCtx }; var form = new FormCollection { {"Nombre", "APRESS"}, {"Logo", @"images\apress.gif"} }; var patrocinadorNew = BindModel<PatrocinadorNewModel>(patrocinadorController, form); using (new RequestEmulator(NhHelper.GetSessionFactory())) { var resultNuevo = patrocinadorController.Nuevo(patrocinadorNew); Assert.IsInstanceOf(typeof(RedirectToRouteResult), resultNuevo); var viewResultNuevo = (RedirectToRouteResult)resultNuevo; Assert.AreEqual("Index", viewResultNuevo.RouteValues["action"]); } } [Test] public void PatrocinadorNuevoPostRequiredFields() { var patrocinadorController = new PatrocinadorController(new HttpServerStub()) { ControllerContext = ControllerCtx }; var form = new FormCollection { {"Nombre", ""}, {"Logo", "" } }; var patrocinadorNew = BindModel<PatrocinadorNewModel>(patrocinadorController, form); using (new RequestEmulator(NhHelper.GetSessionFactory())) { var resultNuevo = patrocinadorController.Nuevo(patrocinadorNew); Assert.IsInstanceOf(typeof(ViewResult), resultNuevo); var viewResultNuevo = (ViewResult)resultNuevo; Assert.AreEqual("DefaultEditor", viewResultNuevo.ViewName); Assert.AreEqual(1, viewResultNuevo.ViewData.ModelState["Nombre"].Errors.Count); Assert.AreEqual("El campo Nombre es obligatorio.", viewResultNuevo.ViewData.ModelState["Nombre"].Errors[0].ErrorMessage); Assert.AreEqual(1, viewResultNuevo.ViewData.ModelState["Logo"].Errors.Count); Assert.AreEqual("El campo Logo es obligatorio.", viewResultNuevo.ViewData.ModelState["Logo"].Errors[0].ErrorMessage); } } [Test] public void PatrocinadorNuevoPostExists() { CrearPatrocinadorApress(); var patrocinadorController = new PatrocinadorController(new HttpServerStub()) { ControllerContext = ControllerCtx }; var form = new FormCollection { {"Nombre", "APRESS"}, {"Logo", @"images\apress.gif"} }; var patrocinadorNew = BindModel<PatrocinadorNewModel>(patrocinadorController, form); using (new RequestEmulator(NhHelper.GetSessionFactory())) { var resultNuevo = patrocinadorController.Nuevo(patrocinadorNew); Assert.IsInstanceOf(typeof (ViewResult), resultNuevo); var viewResultNuevo = (ViewResult) resultNuevo; Assert.AreEqual("El patrocinador ya existe.", viewResultNuevo.TempData["error"]); } } [Test] public void PatrocinadorModificarGetDontExists() { var patrocinadorController = new PatrocinadorController(new HttpServerStub()) { ControllerContext = ControllerCtx }; using (new RequestEmulator(NhHelper.GetSessionFactory())) { var patrocinadorRepository = new PatrocinadorRepository(NhHelper.GetSessionFactory()); Assert.AreEqual(0, patrocinadorRepository.GetAll().Count()); var resultModificar = patrocinadorController.Modificar("11111111-1111-1111-1111-111111111111"); Assert.IsInstanceOf(typeof(RedirectToRouteResult), resultModificar); Assert.AreEqual("Index", ((RedirectToRouteResult)resultModificar).RouteValues["action"]); Assert.AreEqual("No se encontró el patrocinador que intenta modificar", patrocinadorController.TempData["error"]); Assert.AreEqual(0, patrocinadorRepository.GetAll().Count()); } } [Test] public void PatrocinadorModificarGetExists() { CrearPatrocinadorApress(); var patrocinadorController = new PatrocinadorController(new HttpServerStub()) { ControllerContext = ControllerCtx }; using (new RequestEmulator(NhHelper.GetSessionFactory())) { var patrocinadorRepository = new PatrocinadorRepository(NhHelper.GetSessionFactory()); var resultModificar = patrocinadorController.Modificar(patrocinadorRepository.GetAll().FirstOrDefault().Id.ToString()); Assert.IsInstanceOf(typeof(ViewResult), resultModificar); Assert.AreEqual("DefaultEditor", ((ViewResult)resultModificar).ViewName); } } [Test] public void PatrocinadorModificarPostSatisfactorio() { PatrocinadorRepository patrocinadorRepository; PatrocinadorEditModel patrocinadorEdit; CrearPatrocinadorApress(); var patrocinadorController = new PatrocinadorController(new HttpServerStub()) { ControllerContext = ControllerCtx }; using (new RequestEmulator(NhHelper.GetSessionFactory())) { patrocinadorRepository = new PatrocinadorRepository(NhHelper.GetSessionFactory()); var form = new FormCollection { {"Id", patrocinadorRepository.GetAll().FirstOrDefault().Id.ToString()}, {"Nombre", "APRESS"}, {"Logo", @"images\apress.gif"} }; patrocinadorEdit = BindModel<PatrocinadorEditModel>(patrocinadorController, form); } using (new RequestEmulator(NhHelper.GetSessionFactory())) { Assert.AreEqual(1, patrocinadorRepository.GetAll().Count()); var resultModificar = patrocinadorController.Modificar(patrocinadorEdit); Assert.IsInstanceOf(typeof(RedirectToRouteResult), resultModificar); var viewResultEdit = (RedirectToRouteResult)resultModificar; Assert.AreEqual("Index", viewResultEdit.RouteValues["action"]); Assert.AreEqual(1, patrocinadorRepository.GetAll().Count()); } } [Test] public void PatrocinadorModificarPostRequiredFields() { CrearPatrocinadorApress(); var patrocinadorController = new PatrocinadorController(new HttpServerStub()) { ControllerContext = ControllerCtx }; var form = new FormCollection { {"Id", ""}, {"Nombre", ""}, {"Logo", ""} }; var patrocinadorEdit = BindModel<PatrocinadorEditModel>(patrocinadorController, form); using (new RequestEmulator(NhHelper.GetSessionFactory())) { var resultModificar = patrocinadorController.Modificar(patrocinadorEdit); Assert.IsInstanceOf(typeof(ViewResult), resultModificar); var viewResultNuevo = (ViewResult)resultModificar; Assert.AreEqual("DefaultEditor", viewResultNuevo.ViewName); Assert.AreEqual(1, viewResultNuevo.ViewData.ModelState["Nombre"].Errors.Count); Assert.AreEqual("El campo Nombre es obligatorio.", viewResultNuevo.ViewData.ModelState["Nombre"].Errors[0].ErrorMessage); Assert.AreEqual(1, viewResultNuevo.ViewData.ModelState["Logo"].Errors.Count); Assert.AreEqual("El campo Logo es obligatorio.", viewResultNuevo.ViewData.ModelState["Logo"].Errors[0].ErrorMessage); } } [Test] public void PatrocinadorQuitarPostSatisfactorio() { var patrocinadorId = string.Empty; PatrocinadorRepository patrocinadorRepository; CrearPatrocinadorApress(); var patrocinadorController = new PatrocinadorController(new HttpServerStub()) { ControllerContext = ControllerCtx }; using (new RequestEmulator(NhHelper.GetSessionFactory())) { patrocinadorRepository = new PatrocinadorRepository(NhHelper.GetSessionFactory()); patrocinadorId = patrocinadorRepository.GetByNombre("Apress").Id.ToString(); } using (new RequestEmulator(NhHelper.GetSessionFactory())) { Assert.AreEqual(1, patrocinadorRepository.GetAll().Count()); var resultQuitar = patrocinadorController.Eliminar(patrocinadorId); Assert.IsInstanceOf(typeof(RedirectToRouteResult), resultQuitar); var viewResult = (RedirectToRouteResult)resultQuitar; Assert.AreEqual("Index", viewResult.RouteValues["action"]); } using (new RequestEmulator(NhHelper.GetSessionFactory())) { Assert.AreEqual(0, patrocinadorRepository.GetAll().Count()); } } [Test] [Ignore] public void PatrocinadorQuitarPostDontExists() { PatrocinadorRepository patrocinadorRepository; PatrocinadorEditModel patrocinadorEdit; CrearPatrocinadorApress(); var patrocinadorController = new PatrocinadorController(new HttpServerStub()) { ControllerContext = ControllerCtx }; using (new RequestEmulator(NhHelper.GetSessionFactory())) { patrocinadorRepository = new PatrocinadorRepository(NhHelper.GetSessionFactory()); var form = new FormCollection { {"Id", patrocinadorRepository.GetAll().FirstOrDefault().Id.ToString()}, {"Nombre", "APRESS"}, {"Logo", @"images\apress.gif"} }; patrocinadorEdit = BindModel<PatrocinadorEditModel>(patrocinadorController, form); } using (new RequestEmulator(NhHelper.GetSessionFactory())) { Assert.AreEqual(1, patrocinadorRepository.GetAll().Count()); var resultQuit = patrocinadorController.Modificar(patrocinadorEdit); Assert.IsInstanceOf(typeof(RedirectToRouteResult), resultQuit); var viewResult = (RedirectToRouteResult)resultQuit; Assert.AreEqual("Index", viewResult.RouteValues["action"]); Assert.AreEqual(1, patrocinadorRepository.GetAll().Count()); } } } }