Mercurial > altnet-hispano
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