view Agendas/trunk/src/Agendas.Tests/Workflows/WorkflowTests.cs @ 94:db4b1e2cae49

Cambio del nombre de la clase Ponente a Persona Se agrega la clase Cuenta para identificar cada una de las cuentas con que se puede autenticar una persona Alta Automatica de cuentas de twitter creando la persona
author Nelo@Kenia.neluz.int
date Sat, 04 Jun 2011 12:11:17 -0300
parents 26d0513a8410
children b74734a1a755
line wrap: on
line source

using System.Collections.Generic;
using System.Linq;
using AltNetHispano.Agendas.Domain;
using Moq;
using NUnit.Framework;

namespace AltNetHispano.Agendas.Tests.Workflows
{
	[TestFixture]
	public class WorkflowTests : TestBase
	{
		private Mock<IPublicador> _publicador;
		private Workflow _workflow;

		[SetUp]
		public void InitPublicador()
		{
			_publicador = new Mock<IPublicador>();
			_workflow = new Workflow(_publicador.Object, DefaultEventoRepository, DefaultPersonaRepository);
		}

		[Test]
		public void Proponer()
		{
			_workflow.Proponer();
			_publicador.Verify(p => p.Publicar(It.IsAny<IEnumerable<Track>>()), Times.Once());
		}

		[Test]
		public void Proponer_y_agendar()
		{
			_workflow.Proponer();

			_workflow.Agendar();

			_publicador.Verify(p => p.Publicar(It.IsAny<IEnumerable<Track>>()), Times.Exactly(2));
		}

		[Test]
		public void Proponer_agendar_y_confirmar()
		{
			_workflow.Proponer();

			_workflow.Agendar();

			var evento = DefaultEventoRepository.GetEventosConFecha().SingleOrDefault();
			Assert.IsNotNull(evento);

			_workflow.Confirmar(evento.Id);

			_publicador.Verify(p => p.Publicar(It.IsAny<IEnumerable<Track>>()), Times.Exactly(3));
		}

		[Test]
		public void Proponer_agendar_confirmar_publicar()
		{
			_workflow.Proponer();

			_workflow.Agendar();

			var evento = DefaultEventoRepository.GetEventosConFecha().SingleOrDefault();
			Assert.IsNotNull(evento);

			_workflow.Confirmar(evento.Id);

			_workflow.Publicar(evento.Id);

			_publicador.Verify(p => p.Publicar(It.IsAny<IEnumerable<Track>>()), Times.Exactly(4));
		}
	}
}