Mercurial > altnet-hispano
diff Agendas/trunk/src/Agendas.Tests/PonentesTests.cs @ 61:cb3f7b47c1f0
Relación de Ponente a Eventos de los que es el ponente.
author | nelopauselli |
---|---|
date | Tue, 17 May 2011 01:27:03 -0300 |
parents | 4a4e12e32256 |
children | c7264bfc4b71 |
line wrap: on
line diff
--- a/Agendas/trunk/src/Agendas.Tests/PonentesTests.cs Mon May 16 21:40:40 2011 -0300 +++ b/Agendas/trunk/src/Agendas.Tests/PonentesTests.cs Tue May 17 01:27:03 2011 -0300 @@ -1,4 +1,6 @@ using System; +using System.Collections.Generic; +using System.Linq; using AltNetHispano.Agendas.Domain; using Moq; using NUnit.Framework; @@ -18,11 +20,20 @@ agenda.Publicar("Audit (parallel model) con NHibernate 3", "Fabio Maulo", new DateTime(2011, 2, 26)); agenda.Publicar("Conform - Parte 2", "Fabio Maulo", new DateTime(2011, 3, 5)); - Assert.AreEqual(2, agenda.GetEventosPublicados().Count); + var eventos = agenda.GetEventosPublicados(); + Assert.AreEqual(2, eventos.Count); publicador.Verify(p => p.Publicar(It.IsAny<Evento>()), Times.Exactly(2)); Assert.AreEqual(1, DefaultPonenteRepository.GetAll().Count); + + var evento = eventos[0]; + + Assert.IsNotNull(evento.Ponente); + var ponente = evento.Ponente; + Assert.IsNotNull(evento.Ponente.Eventos); + Assert.Contains(eventos[0], new List<Evento>(ponente.Eventos)); + Assert.Contains(eventos[1], new List<Evento>(ponente.Eventos)); } [Test] @@ -78,6 +89,7 @@ Guid eventoId; agenda.Proponer(titulo, "Fabio"); + Ponente ponente; { var eventos = agenda.GetEventosPropuestos(); Assert.AreEqual(1, eventos.Count); @@ -86,6 +98,7 @@ Assert.AreEqual("Fabio", evento.Ponente.Nombre); eventoId = evento.Id; + ponente = evento.Ponente; } agenda.ModificarPropuesta(eventoId, titulo, null); @@ -96,6 +109,44 @@ Evento evento = eventos[0]; Assert.IsNull(evento.Ponente); } + + Assert.AreEqual(0, ponente.Eventos.Count()); + } + + [Test] + public void Cambiar_ponente_de_un_evento() + { + var agenda = new Agenda(null, null, DefaultEventoRepository, DefaultPonenteRepository); + + const string titulo = "Audit (parallel model) con NHibernate 3"; + Guid eventoId; + + agenda.Proponer(titulo, "Fabio"); + Ponente ponente1; + { + var eventos = agenda.GetEventosPropuestos(); + Assert.AreEqual(1, eventos.Count); + + Evento evento = eventos[0]; + Assert.AreEqual("Fabio", evento.Ponente.Nombre); + + eventoId = evento.Id; + ponente1 = evento.Ponente; + } + + agenda.ModificarPropuesta(eventoId, titulo, "José"); + Ponente ponente2; + { + var eventos = agenda.GetEventosPropuestos(); + Assert.AreEqual(1, eventos.Count); + + Evento evento = eventos[0]; + Assert.IsNotNull(evento.Ponente); + ponente2 = evento.Ponente; + } + + Assert.AreEqual(0, ponente1.Eventos.Count()); + Assert.AreEqual(1, ponente2.Eventos.Count()); } } } \ No newline at end of file