view Agendas/trunk/src/Agendas.Google.Test/PublicadorTest.cs @ 130:0ea32a748453

Se termina el publicador via el calendario de google, además se realizan las pruebas unitarias.
author alabra
date Sun, 10 Jul 2011 18:50:11 -0400
parents
children 81870e6f7e55
line wrap: on
line source

using System;
using AltNetHispano.Agendas.Domain;
using AltNetHispano.Agendas.Google;
using AltNetHispano.Agendas.Google.DetailsEvents;
using AltNetHispano.Agendas.Tests;
using Moq;
using NUnit.Framework;

namespace Agendas.Google.Test
{
    [TestFixture]
    public class PublicadorTest : TestBase
    {
        /// <summary>
        /// Validar que solamente se creen eventos cuando la acción sea Accion.Agendar
        /// </summary>
        [Test]
        public void CuandoPublicarEventoDadoAccionAgendarEntoncesEventoCreado()
        {
            
        }

        /// <summary>
        /// Validar que se halla creado IGEventDetail según detalles y tipo de evento (VAN, Café, Grupo estudio)
        ///     - Summary correcto, según tipo
        ///     - Summary con fecha en cultura es-ES
        ///     - Fecha de inicio y termino en Utc.
        ///     - Location
        ///     - Titulo según tipo
        /// </summary>
        [Test]
        public void CuandoPublicarEventoDadoTipoVanEntoncesDetalleCorrecto()
        {
            var adapter = new Mock<IGCalendarAdapter>();
            var detail = new VanGEventDetail();

            var publicador = new GooglePublicador(adapter.Object);
            var agenda = new Agenda(publicador, DefaultEventoRepository, DefaultPersonaRepository);
            agenda.Proponer("Agile Patterns", null, null, TipoEvento.Van);
            agenda.Agendar("Agile Patterns", "Alejandro Labra", new DateTime(2011, 07, 09), "https://groups.google.com/d/topic/altnet-hispano/arYEMsPiAtY/discussion", TipoEvento.Van);

            var ev = DefaultEventoRepository.GetActivos()[0];
            detail.Generate(ev);

            Assert.AreEqual("http://snipr.com/virtualaltnet", detail.Location);
            Assert.AreEqual("VAN sobre Agile Patterns", detail.Title);
            
            Assert.AreEqual(DateTimeKind.Utc, detail.StartEvent.Kind);
            Assert.AreEqual(18, detail.StartEvent.Hour);
            Assert.AreEqual(ev.Fecha.Value.Day, detail.StartEvent.Day);
            Assert.AreEqual(ev.Fecha.Value.Month, detail.StartEvent.Month);
            Assert.AreEqual(ev.Fecha.Value.Year, detail.StartEvent.Year);

            Assert.AreEqual(DateTimeKind.Utc, detail.EndEvent.Kind);
            Assert.AreEqual(20, detail.EndEvent.Hour);
            Assert.AreEqual(ev.Fecha.Value.Day, detail.EndEvent.Day);
            Assert.AreEqual(ev.Fecha.Value.Month, detail.EndEvent.Month);
            Assert.AreEqual(ev.Fecha.Value.Year, detail.EndEvent.Year);

            Assert.AreEqual("La comunidad ALT.NET Hispano (http://altnethispano.org) realizará una VAN sobre Agile Patterns, con Alejandro Labra." +
                           "\n\rFecha: sábado, 09 de julio de 2011 a las 18:00 hrs. Hora Internacional (GMT/UTC), con una duración aproximada de 2 horas." +
                           "\n\rPueden plantear sus comentarios e inquietudes sobre el tema de la reunión en: https://groups.google.com/d/topic/altnet-hispano/arYEMsPiAtY/discussion" +
                           "\n\rPara mayor información sobre cómo atender la reunión consulten: http://tinyurl.com/van-hispano" +
                           "\n\rPueden vincular el Google Calendar al suyo (http://screenr.com/nr7)", detail.Summary);
        }

        [Test]
        public void CuandoPublicarEventoTipoCafeEntoncesDetalleCorrecto()
        {
            var adapter = new Mock<IGCalendarAdapter>();
            var detail = new CafeGEventDetail();

            var publicador = new GooglePublicador(adapter.Object);
            var agenda = new Agenda(publicador, DefaultEventoRepository, DefaultPersonaRepository);
            agenda.Proponer("Agile Patterns", null, null, TipoEvento.Cafe);
            agenda.Agendar("Agile Patterns", null, new DateTime(2011, 07, 09), "https://groups.google.com/d/topic/altnet-hispano/arYEMsPiAtY/discussion", TipoEvento.Cafe);

            var ev = DefaultEventoRepository.GetActivos()[0];
            detail.Generate(ev);

            Assert.AreEqual("http://snipr.com/virtualaltnet", detail.Location);
            Assert.AreEqual("Alt.Net Café Agile Patterns", detail.Title);

            Assert.AreEqual(DateTimeKind.Utc, detail.StartEvent.Kind);
            Assert.AreEqual(18, detail.StartEvent.Hour);
            Assert.AreEqual(ev.Fecha.Value.Day, detail.StartEvent.Day);
            Assert.AreEqual(ev.Fecha.Value.Month, detail.StartEvent.Month);
            Assert.AreEqual(ev.Fecha.Value.Year, detail.StartEvent.Year);

            Assert.AreEqual(DateTimeKind.Utc, detail.EndEvent.Kind);
            Assert.AreEqual(20, detail.EndEvent.Hour);
            Assert.AreEqual(ev.Fecha.Value.Day, detail.EndEvent.Day);
            Assert.AreEqual(ev.Fecha.Value.Month, detail.EndEvent.Month);
            Assert.AreEqual(ev.Fecha.Value.Year, detail.EndEvent.Year);

            Assert.AreEqual("La comunidad ALT.NET Hispano (http://altnethispano.org) realizará un Alt.Net Cafe virtual con el tema Agile Patterns." +
                           "\n\rFecha: sábado, 09 de julio de 2011 a las 18:00 hrs. Hora Internacional (GMT/UTC), con una duración aproximada de 2 horas." +
                           "\n\rPueden plantear sus comentarios e inquietudes sobre el tema de la reunión en: https://groups.google.com/d/topic/altnet-hispano/arYEMsPiAtY/discussion" +
                           "\n\rPara mayor información sobre cómo atender la reunión consulten: http://tinyurl.com/van-hispano" +
                           "\n\rPueden vincular el Google Calendar al suyo (http://screenr.com/nr7)", detail.Summary);
        }

        [Test]
        public void CuandoPublicarEventoTipoEstudioEntoncesDetalleCorrecto()
        {
            var adapter = new Mock<IGCalendarAdapter>();
            var detail = new EstudioGEventDetail();

            var publicador = new GooglePublicador(adapter.Object);
            var agenda = new Agenda(publicador, DefaultEventoRepository, DefaultPersonaRepository);
            agenda.Proponer("Agile Patterns", null, null, TipoEvento.GrupoEstudio);
            agenda.Agendar("Agile Patterns", null, new DateTime(2011, 07, 09), "https://groups.google.com/d/topic/altnet-hispano/arYEMsPiAtY/discussion", TipoEvento.GrupoEstudio);

            var ev = DefaultEventoRepository.GetActivos()[0];
            detail.Generate(ev);

            Assert.AreEqual("http://snipr.com/virtualaltnet", detail.Location);
            Assert.AreEqual("Grupo de Estudio Agile Patterns", detail.Title);

            Assert.AreEqual(DateTimeKind.Utc, detail.StartEvent.Kind);
            Assert.AreEqual(18, detail.StartEvent.Hour);
            Assert.AreEqual(ev.Fecha.Value.Day, detail.StartEvent.Day);
            Assert.AreEqual(ev.Fecha.Value.Month, detail.StartEvent.Month);
            Assert.AreEqual(ev.Fecha.Value.Year, detail.StartEvent.Year);

            Assert.AreEqual(DateTimeKind.Utc, detail.EndEvent.Kind);
            Assert.AreEqual(20, detail.EndEvent.Hour);
            Assert.AreEqual(ev.Fecha.Value.Day, detail.EndEvent.Day);
            Assert.AreEqual(ev.Fecha.Value.Month, detail.EndEvent.Month);
            Assert.AreEqual(ev.Fecha.Value.Year, detail.EndEvent.Year);

            Assert.AreEqual("La comunidad ALT.NET Hispano (http://altnethispano.org) realizará un grupo de estudio sobre tema Agile Patterns." +
                           "\n\rFecha: sábado, 09 de julio de 2011 a las 18:00 hrs. Hora Internacional (GMT/UTC), con una duración aproximada de 2 horas." +
                           "\n\rPueden plantear sus comentarios e inquietudes sobre el tema de la reunión en: https://groups.google.com/d/topic/altnet-hispano/arYEMsPiAtY/discussion" +
                           "\n\rPara mayor información sobre cómo atender la reunión consulten: http://tinyurl.com/van-hispano" +
                           "\n\rPueden vincular el Google Calendar al suyo (http://screenr.com/nr7)", detail.Summary);
        }
    }
}