Mercurial > altnet-hispano
diff Agendas/trunk/src/Agendas.Repositories.Tests/Workflow.cs @ 222:68b09c30b0d2
Separando los test de persistencia en un proyecto aparte
author | nelopauselli |
---|---|
date | Mon, 19 Sep 2011 18:18:17 -0300 |
parents | Agendas/trunk/src/Agendas.Tests/Workflows/Workflow.cs@5346c0500594 |
children | c61954d24c8c |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Agendas/trunk/src/Agendas.Repositories.Tests/Workflow.cs Mon Sep 19 18:18:17 2011 -0300 @@ -0,0 +1,117 @@ +using System; +using System.Linq; +using AltNetHispano.Agendas.Domain; +using AltNetHispano.Agendas.Domain.Repositories; +using NUnit.Framework; + +namespace Agendas.Repositories.Tests +{ + internal class Workflow + { + private readonly Func<IDisposable> _requestEmulator; + private readonly Agenda _agenda; + private readonly IEventoRepository _eventoRepository; + private Guid _eventoId; + private readonly TestsHelper _testsHelper; + + public Workflow(IPublicador publicador, IEventoRepository eventoRepository, IPersonaRepository personaRepository, + Func<IDisposable> requestEmulator) + { + _requestEmulator = requestEmulator; + _eventoRepository = eventoRepository; + + _agenda = new Agenda(publicador, eventoRepository, personaRepository); + _testsHelper = new TestsHelper(personaRepository); + } + + public void Proponer() + { + using (_requestEmulator.Invoke()) + { + var resultado = _agenda.Proponer("SOLID", _testsHelper.GetOrCreatePonente("Jorge"), null, TipoEvento.Van); + Assert.IsTrue(resultado.Succeful); + } + + GetId(); + } + + + public void Agendar() + { + using (_requestEmulator.Invoke()) + { + var fechaInicio = DateTime.Today.AddDays(5).ToUniversalTime(); + var fechaTermino = fechaInicio.AddHours(2); + var resultado = _agenda.Agendar("SOLID", _testsHelper.GetOrCreatePonente("Jorge"), fechaInicio, fechaTermino, null, + TipoEvento.Van); + Assert.IsTrue(resultado.Succeful); + } + + GetId(); + } + + private void GetId() + { + using (_requestEmulator.Invoke()) + { + var evento = _eventoRepository.GetActivos().SingleOrDefault(); + Assert.IsNotNull(evento); + _eventoId = evento.Id; + } + } + + public void Confirmar() + { + 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() + { + using (_requestEmulator.Invoke()) + { + var resultado = _agenda.Cancelar(_eventoId); + Assert.IsTrue(resultado.Succeful); + } + } + + public void Descartar() + { + using (_requestEmulator.Invoke()) + { + var resultado = _agenda.Descartar(_eventoId); + Assert.IsTrue(resultado.Succeful); + } + } + + public void ReProponer() + { + using (_requestEmulator.Invoke()) + { + var resultado = _agenda.ReProponer(_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