view Agendas/trunk/src/Agendas.Tests/TrackTests.cs @ 138:62791999ad01

Agregando relación entre Evento y Patrocinador
author nelopauselli
date Thu, 28 Jul 2011 10:13:28 -0300
parents b74734a1a755
children e6e6bfb1da9e
line wrap: on
line source

using System;
using System.Linq;
using AltNetHispano.Agendas.Domain;
using NUnit.Framework;

namespace AltNetHispano.Agendas.Tests
{
	[TestFixture]
	public class TrackTests : TestBase
	{
		private const string urlInvitacion = "http://groups.google.com/group/altnet-hispano/browse_thread/thread/65d6d26eb381386e";

		[Test]
		public void Track_al_publicar_y_modificar_evento()
		{
			var repository = DefaultEventoRepository;

			var agenda = new Agenda(null, repository, DefaultPersonaRepository, DefaultPatrocinadorRepository);

			var fecha = DateTime.Now.AddDays(5);
			agenda.Agendar("Html 5", "jjmontes", fecha, urlInvitacion, TipoEvento.Van);
			var evento = repository.GetActivos().First();

			Assert.AreEqual(1, evento.Tracks.Count());
			var ultimo = evento.Tracks.Last();
			Assert.AreEqual(evento, ultimo.Evento);
			Assert.AreEqual(Accion.Agendar, ultimo.Accion);
			Assert.IsNotNull(ultimo.Usuario);
			Assert.AreEqual("Nelo Pauselli", ultimo.Usuario.Nombre);

			agenda.ModificarEvento(evento.Id, "Html 5", "otro ponente", fecha, urlInvitacion);
			Assert.AreEqual(2, evento.Tracks.Count());
			ultimo = evento.Tracks.Last();
			Assert.AreEqual(evento, ultimo.Evento);
			Assert.AreEqual(Accion.Modificar, ultimo.Accion);
			Assert.IsNotNull(ultimo.Usuario);
			Assert.AreEqual("Nelo Pauselli", ultimo.Usuario.Nombre);

			agenda.ModificarEvento(evento.Id, "Html 5 y Css 3", "otro ponente", fecha, urlInvitacion);
			Assert.AreEqual(3, evento.Tracks.Count());
			ultimo = evento.Tracks.Last();
			Assert.AreEqual(evento, ultimo.Evento);
			Assert.AreEqual(Accion.CambiarTitulo, ultimo.Accion);
			Assert.IsNotNull(ultimo.Usuario);
			Assert.AreEqual("Nelo Pauselli", ultimo.Usuario.Nombre);
		}

		[Test]
		public void Track_al_publicar_y_confirmar_evento()
		{
			var repository = DefaultEventoRepository;

			var agenda = new Agenda(null, repository, DefaultPersonaRepository, DefaultPatrocinadorRepository);

			agenda.Agendar("Html 5", "jjmontes", DateTime.Now,
        urlInvitacion, TipoEvento.Van);
			var evento = repository.GetActivos().First();

			Assert.AreEqual(1, evento.Tracks.Count());
			Assert.AreEqual(Accion.Agendar, evento.Tracks.Last().Accion);

			//TODO: confirmar evento y evaluar .tracks
		}
	}
}