view Agendas/trunk/src/Agendas.Tests/TrackTests.cs @ 185:2d02adb79322

Se agrega fecha de termino de un Evento y se incluye la hora a la fecha de inicio. Se modifica la propiedad Fecha del Evento, renombrandola FechaInicio. En el ModelView se agrega propiedades Duración y Hora del Evento cuando es Modificado, Nuevo y Agendado. Las fechas ingresadas son creadas en sistema UTC Queda pendiente Agregar duración a Google Calendar.
author alabra
date Tue, 09 Aug 2011 01:04:27 -0400
parents e6e6bfb1da9e
children 21ad1c337c94
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 fechaInicio = DateTime.Now.AddDays(5).ToUniversalTime();
            var fechaTermino = fechaInicio.AddHours(2);
            agenda.Agendar("Html 5", TestsHelper.GetOrCreatePonente("jjmontes"), fechaInicio, fechaTermino, 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", TestsHelper.GetOrCreatePonente("otro ponente"), fechaInicio, fechaTermino, 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", TestsHelper.GetOrCreatePonente("otro ponente"), fechaInicio, fechaTermino, 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);
            var fechaInicio = DateTime.Now.ToUniversalTime();
            var fechaTermino = fechaInicio.AddHours(2);

            agenda.Agendar("Html 5", TestsHelper.GetOrCreatePonente("jjmontes"), DateTime.Now, fechaTermino,
                           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
        }
    }
}