diff Agendas/trunk/src/Agendas.Web.Tests/Controllers/PatrocinadorApiControllerTests.cs @ 285:c8f378272407

#123: Patrocinadores de las vans.
author juanjose.montesdeocaarbos
date Sat, 31 Dec 2011 14:45:55 -0300
parents
children 9bc60d166c8a
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Agendas/trunk/src/Agendas.Web.Tests/Controllers/PatrocinadorApiControllerTests.cs	Sat Dec 31 14:45:55 2011 -0300
@@ -0,0 +1,136 @@
+using System.Linq;
+using System.Web;
+using System.Web.Mvc;
+using Agendas.NHibernate;
+using Agendas.Repositories.Tests.Infraestructure;
+using Agendas.Web.Tests.Helpers;
+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 PatrocinadorApiControllerTests: 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 PatrocinadorNuevoGetSusseful()
+		{
+			var patrocinadorController = new PatrocinadorApiController { ControllerContext = ControllerCtx };
+			using (new RequestEmulator(NhHelper.GetSessionFactory()))
+			{
+				var resultNuevo = patrocinadorController.Nuevo();
+				Assert.IsInstanceOf(typeof(PartialViewResult), resultNuevo);
+				Assert.AreEqual(string.Empty, ((PartialViewResult)resultNuevo).ViewName);
+			}
+		}
+
+		[Test]
+		public void PatrocinadorNuevoPostErrorRequeriedFields()
+		{
+			var patrocinadorApiController = new PatrocinadorApiController(new HttpServerStub())
+			{
+				ControllerContext = ControllerCtx
+			};
+			var form = new FormCollection
+                           {
+                               {"Nombre", ""},
+                               {"Logo", "" }
+                           };
+			var patrocinadorApiNew = BindModel<PatrocinadorNewModel>(patrocinadorApiController, form);
+
+			using (new RequestEmulator(NhHelper.GetSessionFactory()))
+			{
+				var resultNuevo = patrocinadorApiController.Nuevo(patrocinadorApiNew);
+				Assert.IsInstanceOf(typeof(JsonResult), resultNuevo);
+				var resultadoJsonNuevo = (Resultado)resultNuevo.Data;
+				Assert.IsFalse(resultadoJsonNuevo.Succeful);
+				//Assert.AreEqual("El Nombre es obligatorio,El Logo es obligatorio", resultadoJsonNuevo.Message);
+			}
+		}
+
+		[Test]
+		public void PatrocinadorNuevoPostErrorPatrocinadorExists()
+		{
+			CrearPatrocinadorApress();
+
+			var patrocinadorApiController = new PatrocinadorApiController(new HttpServerStub())
+			{
+				ControllerContext = ControllerCtx
+			};
+			var form = new FormCollection
+                           {
+                               {"Nombre", "Apress"},
+                               {"Logo", @"images\apress.gif" }
+                           };
+			var patrocinadorApiNew = BindModel<PatrocinadorNewModel>(patrocinadorApiController, form);
+
+			using (new RequestEmulator(NhHelper.GetSessionFactory()))
+			{
+				var resultNuevo = patrocinadorApiController.Nuevo(patrocinadorApiNew);
+				Assert.IsInstanceOf(typeof(JsonResult), resultNuevo);
+				var resultadoJsonNuevo = (Resultado)resultNuevo.Data;
+				Assert.IsFalse(resultadoJsonNuevo.Succeful);
+				Assert.AreEqual("El patrocinador ya existe.", resultadoJsonNuevo.Message);
+			}
+		}
+
+		[Test]
+		public void PatrocinadorNuevoPostSusseful()
+		{
+			var patrocinadorApiController = new PatrocinadorApiController(new HttpServerStub())
+			{
+				ControllerContext = ControllerCtx
+			};
+			var form = new FormCollection
+                           {
+                               {"Nombre", "Apress"},
+                               {"Logo", @"images\apress.gif" }
+                           };
+			var patrocinadorApiNew = BindModel<PatrocinadorNewModel>(patrocinadorApiController, form);
+
+			using (new RequestEmulator(NhHelper.GetSessionFactory()))
+			{
+				var resultNuevo = patrocinadorApiController.Nuevo(patrocinadorApiNew);
+				Assert.IsInstanceOf(typeof(JsonResult), resultNuevo);
+				var resultadoJsonNuevo = (Resultado)resultNuevo.Data;
+				Assert.IsTrue(resultadoJsonNuevo.Succeful);
+				Assert.AreEqual(string.Empty, resultadoJsonNuevo.Message);
+			}
+		}
+	}
+}