Mercurial > altnet-hispano
changeset 62:c40b97bbed01
Verificando persistencia de Ponentes y Tracks en tests de CRUD
author | nelopauselli |
---|---|
date | Tue, 17 May 2011 01:55:19 -0300 |
parents | cb3f7b47c1f0 |
children | 963b71ea6028 ebce59b45b50 |
files | Agendas/trunk/src/Agendas.Repositories.Memory/EventoRepository.cs Agendas/trunk/src/Agendas.Tests/Cruds/EventoCrud.cs Agendas/trunk/src/Agendas.Tests/Cruds/EventoTests.cs |
diffstat | 3 files changed, 50 insertions(+), 28 deletions(-) [+] |
line wrap: on
line diff
--- a/Agendas/trunk/src/Agendas.Repositories.Memory/EventoRepository.cs Tue May 17 01:27:03 2011 -0300 +++ b/Agendas/trunk/src/Agendas.Repositories.Memory/EventoRepository.cs Tue May 17 01:55:19 2011 -0300 @@ -15,10 +15,12 @@ public void Delete(Evento evento) { + if (evento.Ponente != null) + evento.Ponente.RemoveEvento(evento); Objects.Remove(evento.Id); } - public Evento Get(Guid vanId) + public Evento Get(Guid vanId) { Evento evento; return Objects.TryGetValue(vanId, out evento) ? evento : null;
--- a/Agendas/trunk/src/Agendas.Tests/Cruds/EventoCrud.cs Tue May 17 01:27:03 2011 -0300 +++ b/Agendas/trunk/src/Agendas.Tests/Cruds/EventoCrud.cs Tue May 17 01:55:19 2011 -0300 @@ -1,4 +1,5 @@ using System; +using System.Linq; using AltNetHispano.Agendas.Domain; using AltNetHispano.Agendas.Domain.Repositories; using NUnit.Framework; @@ -7,12 +8,15 @@ { public class EventoCrud { - private readonly Func<IEventoRepository> _createRepository; + private readonly IEventoRepository _eventoRepository; private readonly Func<IDisposable> _requestEmulator; + private readonly IPonenteRepository _ponenteRepository; - public EventoCrud(Func<IEventoRepository> createRepository, Func<IDisposable> requestEmulator) + public EventoCrud(Func<IEventoRepository> createEventoRepository, Func<IPonenteRepository> createPonenteRepository, Func<IDisposable> requestEmulator) { - _createRepository = createRepository; + _eventoRepository = createEventoRepository.Invoke(); + _ponenteRepository = createPonenteRepository.Invoke(); + _requestEmulator = requestEmulator; } @@ -20,11 +24,11 @@ { using (_requestEmulator.Invoke()) { - var van = Evento.Proponer("TDD - Diseño Basado en Ejemplos", new Ponente("Carlos Blé")); + var ponente = new Ponente("Carlos Blé"); + _ponenteRepository.Save(ponente); - IEventoRepository eventoRepository = _createRepository.Invoke(); - - eventoRepository.Save(van); + var van = Evento.Proponer("TDD - Diseño Basado en Ejemplos", ponente); + _eventoRepository.Save(van); return van.Id; } @@ -36,13 +40,16 @@ using (_requestEmulator.Invoke()) { - IEventoRepository eventoRepository = _createRepository.Invoke(); - - Evento van = eventoRepository.Get(eventoId); + Evento van = _eventoRepository.Get(eventoId); Assert.IsNotNull(van); Assert.IsNotNull(van.Ponente); Assert.AreEqual("Carlos Blé", van.Ponente.Nombre); + Assert.AreEqual(1, van.Ponente.Eventos.Count()); + Assert.AreEqual(van, van.Ponente.Eventos.First()); + + Assert.AreEqual(1, van.Tracks.Where(t => t.Accion == Accion.Proponer).Count()); + Assert.AreEqual("TDD - Diseño Basado en Ejemplos", van.Titulo); } } @@ -53,29 +60,40 @@ using (_requestEmulator.Invoke()) { - IEventoRepository eventoRepository = _createRepository.Invoke(); - - Evento van = eventoRepository.Get(eventoId); + Evento van = _eventoRepository.Get(eventoId); Assert.IsNotNull(van); van.CambiarTitulo("TDD & Ejemplos"); - van.Actualizar(van.Ponente, new DateTime(2010, 04, 17)); + + var otroPonente = new Ponente("José"); + _ponenteRepository.Save(otroPonente); - eventoRepository.Update(van); + van.Actualizar(otroPonente, new DateTime(2010, 04, 17)); + + _eventoRepository.Update(van); } using (_requestEmulator.Invoke()) { - IEventoRepository eventoRepository = _createRepository.Invoke(); - - Evento van = eventoRepository.Get(eventoId); + Evento van = _eventoRepository.Get(eventoId); Assert.IsNotNull(van); Assert.IsNotNull(van.Ponente); - Assert.AreEqual("Carlos Blé", van.Ponente.Nombre); + Assert.AreEqual("José", van.Ponente.Nombre); Assert.AreEqual("TDD & Ejemplos", van.Titulo); Assert.AreEqual(new DateTime(2010, 04, 17), van.Fecha); + + var ponente1 = _ponenteRepository.GetByNombre("Carlos Blé"); + Assert.IsNotNull(ponente1); + Assert.AreEqual(0, ponente1.Eventos.Count()); + + var ponente2 = _ponenteRepository.GetByNombre("José"); + Assert.IsNotNull(ponente2); + Assert.AreEqual(1, ponente2.Eventos.Count()); + + Assert.AreEqual(1, van.Tracks.Where(t => t.Accion == Accion.Proponer).Count()); + Assert.AreEqual(1, van.Tracks.Where(t => t.Accion == Accion.Modificar).Count()); } } @@ -85,20 +103,22 @@ using (_requestEmulator.Invoke()) { - IEventoRepository eventoRepository = _createRepository.Invoke(); + Evento van = _eventoRepository.Get(eventoId); + Assert.IsNotNull(van); - Evento van = eventoRepository.Get(eventoId); - Assert.IsNotNull(van); - eventoRepository.Delete(van); + _eventoRepository.Delete(van); } using (_requestEmulator.Invoke()) { - IEventoRepository eventoRepository = _createRepository.Invoke(); - - Evento van = eventoRepository.Get(eventoId); + Evento van = _eventoRepository.Get(eventoId); Assert.IsNull(van); + + var ponente = _ponenteRepository.GetByNombre("Carlos Blé"); + + Assert.IsNotNull(ponente); + Assert.AreEqual(0, ponente.Eventos.Count()); } } }
--- a/Agendas/trunk/src/Agendas.Tests/Cruds/EventoTests.cs Tue May 17 01:27:03 2011 -0300 +++ b/Agendas/trunk/src/Agendas.Tests/Cruds/EventoTests.cs Tue May 17 01:55:19 2011 -0300 @@ -13,7 +13,7 @@ [SetUp] public void CreateCrud() { - _eventoCrud = new EventoCrud(() => new EventoRepository(), () => new Mock<IDisposable>().Object); + _eventoCrud = new EventoCrud(() => new EventoRepository(), ()=>new PonenteRepository(), () => new Mock<IDisposable>().Object); }