Mercurial > altnet-hispano
view Agendas/trunk/src/Agendas.Repositories.Tests/Workflow.cs @ 282:bc8dfbde0523
#123: Patrocinadores de las vans: Se verifica que para publicar una Van, debe tener al menos un Patrocinador.
author | juanjose.montesdeocaarbos |
---|---|
date | Mon, 26 Dec 2011 14:21:44 -0300 |
parents | 72a96459f910 |
children | 48ab8788bd19 |
line wrap: on
line source
using System; using System.Linq; using AltNetHispano.Agendas.Domain; using AltNetHispano.Agendas.Domain.Repositories; using NUnit.Framework; using System.Collections.Generic; 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, IPatrocinadorRepository patrocinadorRepository, Func<IDisposable> requestEmulator) { _requestEmulator = requestEmulator; _eventoRepository = eventoRepository; _agenda = new Agenda(publicador, eventoRepository, personaRepository, patrocinadorRepository); _testsHelper = new TestsHelper(personaRepository, patrocinadorRepository); } public void Proponer() { using (_requestEmulator.Invoke()) { var resultado = _agenda.Proponer("SOLID", new[] {_testsHelper.GetOrCreatePonente("Jorge")}, null, TipoEvento.Van); Console.WriteLine(resultado.Message); 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", new[]{ _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()) { _agenda.IndicarPatrocinadores(_eventoId, new List<Guid> {_testsHelper.GetOrCreatePatrocinador("Apress")}); } 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); } } } }