diff 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 diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Agendas/trunk/src/Agendas.Google.Test/PublicadorTest.cs	Sun Jul 10 18:50:11 2011 -0400
@@ -0,0 +1,139 @@
+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);
+        }
+    }
+}
\ No newline at end of file