Mercurial > altnet-hispano
view Agendas/trunk/src/Agendas.Tests/Cruds/EventoCrud.cs @ 60:02e163f2ca38
Refactoring de test de crud del evento
author | nelopauselli |
---|---|
date | Mon, 16 May 2011 21:40:40 -0300 |
parents | |
children | c40b97bbed01 |
line wrap: on
line source
using System; using AltNetHispano.Agendas.Domain; using AltNetHispano.Agendas.Domain.Repositories; using NUnit.Framework; namespace AltNetHispano.Agendas.Tests.Cruds { public class EventoCrud { private readonly Func<IEventoRepository> _createRepository; private readonly Func<IDisposable> _requestEmulator; public EventoCrud(Func<IEventoRepository> createRepository, Func<IDisposable> requestEmulator) { _createRepository = createRepository; _requestEmulator = requestEmulator; } public Guid Create() { using (_requestEmulator.Invoke()) { var van = Evento.Proponer("TDD - Diseño Basado en Ejemplos", new Ponente("Carlos Blé")); IEventoRepository eventoRepository = _createRepository.Invoke(); eventoRepository.Save(van); return van.Id; } } public void Read() { Guid eventoId = Create(); using (_requestEmulator.Invoke()) { IEventoRepository eventoRepository = _createRepository.Invoke(); Evento van = eventoRepository.Get(eventoId); Assert.IsNotNull(van); Assert.IsNotNull(van.Ponente); Assert.AreEqual("Carlos Blé", van.Ponente.Nombre); Assert.AreEqual("TDD - Diseño Basado en Ejemplos", van.Titulo); } } public void Update() { Guid eventoId = Create(); using (_requestEmulator.Invoke()) { IEventoRepository eventoRepository = _createRepository.Invoke(); Evento van = eventoRepository.Get(eventoId); Assert.IsNotNull(van); van.CambiarTitulo("TDD & Ejemplos"); van.Actualizar(van.Ponente, new DateTime(2010, 04, 17)); eventoRepository.Update(van); } using (_requestEmulator.Invoke()) { IEventoRepository eventoRepository = _createRepository.Invoke(); Evento van = eventoRepository.Get(eventoId); Assert.IsNotNull(van); Assert.IsNotNull(van.Ponente); Assert.AreEqual("Carlos Blé", van.Ponente.Nombre); Assert.AreEqual("TDD & Ejemplos", van.Titulo); Assert.AreEqual(new DateTime(2010, 04, 17), van.Fecha); } } public void Delete() { Guid eventoId = Create(); using (_requestEmulator.Invoke()) { IEventoRepository eventoRepository = _createRepository.Invoke(); Evento van = eventoRepository.Get(eventoId); Assert.IsNotNull(van); eventoRepository.Delete(van); } using (_requestEmulator.Invoke()) { IEventoRepository eventoRepository = _createRepository.Invoke(); Evento van = eventoRepository.Get(eventoId); Assert.IsNull(van); } } } }