diff Agendas/trunk/src/Agendas.Tests/Eventos_y_patrocinadores_tests.cs @ 138:62791999ad01

Agregando relación entre Evento y Patrocinador
author nelopauselli
date Thu, 28 Jul 2011 10:13:28 -0300
parents
children e6e6bfb1da9e
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Agendas/trunk/src/Agendas.Tests/Eventos_y_patrocinadores_tests.cs	Thu Jul 28 10:13:28 2011 -0300
@@ -0,0 +1,108 @@
+using System;
+using System.Linq;
+using AltNetHispano.Agendas.Domain;
+using Moq;
+using NUnit.Framework;
+
+namespace AltNetHispano.Agendas.Tests
+{
+	[TestFixture]
+	public class Eventos_y_patrocinadores_tests : TestBase
+	{
+		private Guid _apressId;
+		private Guid _jetbrainsId;
+		private Guid _eventoId;
+		private Agenda _agenda;
+
+		[SetUp]
+		public void CrearDatos()
+		{
+			_agenda = new Agenda(null, DefaultEventoRepository, DefaultPersonaRepository, DefaultPatrocinadorRepository);
+
+			_apressId = CrearPatrocinador("Apress", "images/apress.gif");
+			_jetbrainsId = CrearPatrocinador("jetbrains", "images/jetbrains.png");
+			_eventoId = CrearEvento();
+		}
+
+		[Test]
+		public void Indicar_patrociadores()
+		{
+			_agenda.IndicarPatrocinadores(_eventoId, new[] { _apressId, _jetbrainsId });
+
+			var evento = DefaultEventoRepository.GetActivos().First();
+			Assert.AreNotEqual(Guid.Empty, evento.Id);
+			Assert.IsNotNull(evento.Fecha);
+			Assert.IsNotNull(evento.Patrocinadores);
+			Assert.IsTrue(evento.Patrocinadores.Any());
+			Assert.IsTrue(evento.Patrocinadores.Any(p => p.Nombre == "Apress"));
+			Assert.IsTrue(evento.Patrocinadores.Any(p => p.Nombre == "jetbrains"));
+		}
+
+		[Test]
+		public void Agregar_patrociador()
+		{
+			{
+				_agenda.IndicarPatrocinadores(_eventoId, new[] {_apressId});
+
+				var evento = DefaultEventoRepository.GetActivos().First();
+				Assert.IsTrue(evento.Patrocinadores.Any(p => p.Nombre == "Apress"));
+				Assert.IsFalse(evento.Patrocinadores.Any(p => p.Nombre == "jetbrains"));
+			}
+
+			{
+				_agenda.IndicarPatrocinadores(_eventoId, new[] { _apressId, _jetbrainsId });
+
+				var evento = DefaultEventoRepository.GetActivos().First();
+				Assert.IsTrue(evento.Patrocinadores.Any(p => p.Nombre == "Apress"));
+				Assert.IsTrue(evento.Patrocinadores.Any(p => p.Nombre == "jetbrains"));
+			}
+		}
+
+		[Test]
+		public void Quitar_patrociador()
+		{
+			{
+				_agenda.IndicarPatrocinadores(_eventoId, new[] { _apressId, _jetbrainsId });
+
+				var evento = DefaultEventoRepository.GetActivos().First();
+				Assert.IsTrue(evento.Patrocinadores.Any(p => p.Nombre == "Apress"));
+				Assert.IsTrue(evento.Patrocinadores.Any(p => p.Nombre == "jetbrains"));
+			}
+
+			{
+				_agenda.IndicarPatrocinadores(_eventoId, new[] { _apressId });
+
+				var evento = DefaultEventoRepository.GetActivos().First();
+				Assert.IsTrue(evento.Patrocinadores.Any(p => p.Nombre == "Apress"));
+				Assert.IsFalse(evento.Patrocinadores.Any(p => p.Nombre == "jetbrains"));
+			}
+
+			{
+				_agenda.IndicarPatrocinadores(_eventoId, new Guid[] {});
+
+				var evento = DefaultEventoRepository.GetActivos().First();
+				Assert.IsFalse(evento.Patrocinadores.Any());
+			}
+		}
+
+		private static Guid CrearPatrocinador(string nombre, string images)
+		{
+			var patrocinador = new Patrocinador(nombre);
+			patrocinador.LoadLogo(images);
+
+			var patrocinadorRepository = DefaultPatrocinadorRepository;
+			patrocinadorRepository.Save(patrocinador);
+
+			return patrocinador.Id;
+		}
+
+		private Guid CrearEvento()
+		{
+			_agenda.Agendar("ADFS", "Nelo Pauselli", DateTime.Today.AddDays(7), null, TipoEvento.Van);
+
+			var evento = DefaultEventoRepository.GetActivos().First();
+			return evento.Id;
+		}
+
+	}
+}
\ No newline at end of file