diff Agendas/trunk/src/Agendas.Tests/Eventos_y_patrocinadores_tests.cs @ 287:eeca9ddb330a

BUG: Los Patrocinadores quedaban asociados a un único evento. Se armó un test que lo demuestra y se modificó el modelo de la base de datos.
author juanjose.montesdeocaarbos
date Mon, 02 Jan 2012 19:44:41 -0300
parents 72a96459f910
children 9bc60d166c8a
line wrap: on
line diff
--- a/Agendas/trunk/src/Agendas.Tests/Eventos_y_patrocinadores_tests.cs	Mon Jan 02 15:51:19 2012 -0300
+++ b/Agendas/trunk/src/Agendas.Tests/Eventos_y_patrocinadores_tests.cs	Mon Jan 02 19:44:41 2012 -0300
@@ -11,23 +11,27 @@
 	{
 		private Guid _apressId;
 		private Guid _jetbrainsId;
-		private Guid _eventoId;
+		private Guid _eventoUnoId;
+		private Guid _eventoDosId;
 		private Agenda _agenda;
 
 		[SetUp]
 		public void CrearDatos()
 		{
+			var fechaInicio = DateTime.Today.AddDays(7).ToUniversalTime();
+			var fechaTermino = fechaInicio.AddHours(2); 
 			_agenda = new Agenda(null, DefaultEventoRepository, DefaultPersonaRepository, DefaultPatrocinadorRepository);
 
 			_apressId = CrearPatrocinador("Apress", "images/apress.gif");
 			_jetbrainsId = CrearPatrocinador("jetbrains", "images/jetbrains.png");
-			_eventoId = CrearEvento();
+			_eventoUnoId = CrearEvento(new[] { "Carlos Peix", "Nelo Pauselli" }, "ADFS", fechaInicio, fechaTermino);
+			_eventoDosId = CrearEvento(new[] { "Carlos Peix", "Nelo Pauselli" }, "ADFS: Segunda parte.", fechaInicio.AddDays(3), fechaTermino.AddDays(3));
 		}
 
 		[Test]
 		public void Indicar_patrociadores()
 		{
-			_agenda.IndicarPatrocinadores(_eventoId, new[] { _apressId, _jetbrainsId });
+			_agenda.IndicarPatrocinadores(_eventoUnoId, new[] { _apressId, _jetbrainsId });
 
 			var evento = DefaultEventoRepository.GetActivos().First();
 			Assert.AreNotEqual(Guid.Empty, evento.Id);
@@ -42,7 +46,7 @@
 		public void Agregar_patrociador()
 		{
 			{
-				_agenda.IndicarPatrocinadores(_eventoId, new[] { _apressId });
+				_agenda.IndicarPatrocinadores(_eventoUnoId, new[] { _apressId });
 
 				var evento = DefaultEventoRepository.GetActivos().First();
 				Assert.IsTrue(evento.Patrocinadores.Any(p => p.Nombre == "Apress"));
@@ -50,7 +54,7 @@
 			}
 
 			{
-				_agenda.IndicarPatrocinadores(_eventoId, new[] { _apressId, _jetbrainsId });
+				_agenda.IndicarPatrocinadores(_eventoUnoId, new[] { _apressId, _jetbrainsId });
 
 				var evento = DefaultEventoRepository.GetActivos().First();
 				Assert.IsTrue(evento.Patrocinadores.Any(p => p.Nombre == "Apress"));
@@ -62,7 +66,7 @@
 		public void Quitar_patrociador()
 		{
 			{
-				_agenda.IndicarPatrocinadores(_eventoId, new[] { _apressId, _jetbrainsId });
+				_agenda.IndicarPatrocinadores(_eventoUnoId, new[] { _apressId, _jetbrainsId });
 
 				var evento = DefaultEventoRepository.GetActivos().First();
 				Assert.IsTrue(evento.Patrocinadores.Any(p => p.Nombre == "Apress"));
@@ -70,7 +74,7 @@
 			}
 
 			{
-				_agenda.IndicarPatrocinadores(_eventoId, new[] { _apressId });
+				_agenda.IndicarPatrocinadores(_eventoUnoId, new[] { _apressId });
 
 				var evento = DefaultEventoRepository.GetActivos().First();
 				Assert.IsTrue(evento.Patrocinadores.Any(p => p.Nombre == "Apress"));
@@ -78,7 +82,7 @@
 			}
 
 			{
-				_agenda.IndicarPatrocinadores(_eventoId, new Guid[] { });
+				_agenda.IndicarPatrocinadores(_eventoUnoId, new Guid[] { });
 
 				var evento = DefaultEventoRepository.GetActivos().First();
 				Assert.IsFalse(evento.Patrocinadores.Any());
@@ -96,14 +100,17 @@
 			return patrocinador.Id;
 		}
 
-		private Guid CrearEvento()
+		private Guid CrearEvento(string[] nombrePonentes, string nombreEvento, DateTime fechaInicio, DateTime fechaTermino)
 		{
-			var fechaInicio = DateTime.Today.AddDays(7).ToUniversalTime();
-			var fechaTermino = fechaInicio.AddHours(2);
-			var ponentes = new[] {TestsHelper.GetOrCreatePonente("Carlos Peix"), TestsHelper.GetOrCreatePonente("Nelo Pauselli")};
-			_agenda.Agendar("ADFS", ponentes, fechaInicio, fechaTermino, null, TipoEvento.Van);
+			var ponentes = new Guid[nombrePonentes.Length];
+			for (var nroPonente = 0; nroPonente < nombrePonentes.Length; nroPonente++)
+			{
+				ponentes[nroPonente] = TestsHelper.GetOrCreatePonente(nombrePonentes[nroPonente]);
+			}
 
-			var evento = DefaultEventoRepository.GetActivos().First();
+			_agenda.Agendar(nombreEvento, ponentes, fechaInicio, fechaTermino, null, TipoEvento.Van);
+
+			var evento = DefaultEventoRepository.GetActivos().First(e=>e.Titulo == nombreEvento);
 			return evento.Id;
 		}