Mercurial > altnet-hispano
diff Agendas/trunk/src/Agendas.Tests/Workflows/Workflow.cs @ 181:6ee05ceea8c3
Implementando test de workflow también con nh
author | nelopauselli |
---|---|
date | Mon, 08 Aug 2011 20:08:31 -0300 |
parents | 5c94b052d838 |
children | 2d02adb79322 |
line wrap: on
line diff
--- a/Agendas/trunk/src/Agendas.Tests/Workflows/Workflow.cs Mon Aug 08 16:42:52 2011 -0300 +++ b/Agendas/trunk/src/Agendas.Tests/Workflows/Workflow.cs Mon Aug 08 20:08:31 2011 -0300 @@ -1,4 +1,5 @@ using System; +using System.Linq; using AltNetHispano.Agendas.Domain; using AltNetHispano.Agendas.Domain.Repositories; using NUnit.Framework; @@ -7,61 +8,105 @@ { internal class Workflow { + private readonly Func<IDisposable> _requestEmulator; private readonly Agenda _agenda; + private readonly IEventoRepository _eventoRepository; + private Guid _eventoId; - public Workflow(IPublicador publicador, IEventoRepository eventoRepository, IPersonaRepository personaRepository, IPatrocinadorRepository patrocinadorRepository) + public Workflow(IPublicador publicador, IEventoRepository eventoRepository, IPersonaRepository personaRepository, + IPatrocinadorRepository patrocinadorRepository, Func<IDisposable> requestEmulator) { + _requestEmulator = requestEmulator; + _eventoRepository = eventoRepository; _agenda = new Agenda(publicador, eventoRepository, personaRepository, patrocinadorRepository); } public void Proponer() { - - var resultado = _agenda.Proponer("SOLID", TestsHelper.GetOrCreatePonente("Jorge"), null, TipoEvento.Van); - Assert.IsTrue(resultado.Succeful); + using (_requestEmulator.Invoke()) + { + var resultado = _agenda.Proponer("SOLID", TestsHelper.GetOrCreatePonente("Jorge"), null, TipoEvento.Van); + Assert.IsTrue(resultado.Succeful); + } + + GetId(); } public void Agendar() { - var resultado = _agenda.Agendar("SOLID", TestsHelper.GetOrCreatePonente("Jorge"), DateTime.Today.AddDays(5), null, TipoEvento.Van); - Assert.IsTrue(resultado.Succeful); + using (_requestEmulator.Invoke()) + { + var resultado = _agenda.Agendar("SOLID", TestsHelper.GetOrCreatePonente("Jorge"), DateTime.Today.AddDays(5), null, + TipoEvento.Van); + Assert.IsTrue(resultado.Succeful); + } + + GetId(); } - public void Confirmar(Guid eventoId) + private void GetId() { - var resultado = _agenda.Confirmar(eventoId); - Assert.IsTrue(resultado.Succeful); + using (_requestEmulator.Invoke()) + { + var evento = _eventoRepository.GetActivos().SingleOrDefault(); + Assert.IsNotNull(evento); + _eventoId = evento.Id; + } } - public void Publicar(Guid eventoId) + public void Confirmar() { - var resultado = _agenda.Publicar(eventoId, 1, "http://www.altnethispano.org/", new TimeSpan(2, 11, 0)); - Assert.IsTrue(resultado.Succeful); + using (_requestEmulator.Invoke()) + { + var resultado = _agenda.Confirmar(_eventoId); + Assert.IsTrue(resultado.Succeful); + } + } + + public void Publicar() + { + using (_requestEmulator.Invoke()) + { + var resultado = _agenda.Publicar(_eventoId, 1, "http://www.altnethispano.org/", new TimeSpan(2, 11, 0)); + Assert.IsTrue(resultado.Succeful); + } } - public void Cancelar(Guid eventoId) - { - var resultado = _agenda.Cancelar(eventoId); - Assert.IsTrue(resultado.Succeful); - } + public void Cancelar() + { + using (_requestEmulator.Invoke()) + { + var resultado = _agenda.Cancelar(_eventoId); + Assert.IsTrue(resultado.Succeful); + } + } - public void Descartar(Guid eventoId) - { - var resultado = _agenda.Descartar(eventoId); - Assert.IsTrue(resultado.Succeful); - } + public void Descartar() + { + using (_requestEmulator.Invoke()) + { + var resultado = _agenda.Descartar(_eventoId); + Assert.IsTrue(resultado.Succeful); + } + } - public void ReProponer(Guid eventoId) - { - var resultado = _agenda.ReProponer(eventoId); - Assert.IsTrue(resultado.Succeful); - } + public void ReProponer() + { + using (_requestEmulator.Invoke()) + { + var resultado = _agenda.ReProponer(_eventoId); + Assert.IsTrue(resultado.Succeful); + } + } - public void ReAgendar(Guid eventoId) - { - var resultado = _agenda.ReAgendar(eventoId); - Assert.IsTrue(resultado.Succeful); - } + public void ReAgendar() + { + using (_requestEmulator.Invoke()) + { + var resultado = _agenda.ReAgendar(_eventoId); + Assert.IsTrue(resultado.Succeful); + } + } } } \ No newline at end of file