Mercurial > altnet-hispano
view Agendas/trunk/src/Agendas.Google.Test/PublicadorTest.cs @ 158:734d3f0853bf
Manejando configuración de los publicadores con una sección propia en los .config
Agregando la opción de habilitar / deshabilitar un publicador
author | nelopauselli |
---|---|
date | Fri, 05 Aug 2011 16:55:18 -0300 |
parents | e6e6bfb1da9e |
children | 2d02adb79322 |
line wrap: on
line source
using System; using System.Linq; 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 { [Test] public void CuandoPublicarEventoDadoAccionAgendarEntoncesEventoCreado() { var adapter = new Mock<IGCalendarAdapter>(); var message=""; adapter.Setup(ad => ad.CreateEvent(It.IsAny<IGEventDetail>(), out message)).Returns(true); var publicador = new GooglePublicador(adapter.Object); var agenda = new Agenda(publicador, DefaultEventoRepository, DefaultPersonaRepository, DefaultPatrocinadorRepository); agenda.Proponer("Agile Patterns", null, null, TipoEvento.Van); adapter.Verify(ad => ad.CreateEvent(It.IsAny<IGEventDetail>(), out message), Times.Never()); agenda.Agendar("Agile Patterns", TestsHelper.GetOrCreatePonente("Alejandro Labra"), new DateTime(2011, 07, 09), "https://groups.google.com/d/topic/altnet-hispano/arYEMsPiAtY/discussion", TipoEvento.Van); adapter.Verify(ad => ad.CreateEvent(It.IsAny<IGEventDetail>(), out message), Times.Once()); } [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, DefaultPatrocinadorRepository); agenda.Proponer("Agile Patterns", null, null, TipoEvento.Van); agenda.Agendar("Agile Patterns", TestsHelper.GetOrCreatePonente("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, DefaultPatrocinadorRepository); agenda.Proponer("Agile Patterns", null, null, TipoEvento.Cafe); agenda.Agendar("Agile Patterns", TestsHelper.GetOrCreatePonente("Alejandro Labra"), 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, DefaultPatrocinadorRepository); agenda.Proponer("Agile Patterns", null, null, TipoEvento.GrupoEstudio); agenda.Agendar("Agile Patterns", TestsHelper.GetOrCreatePonente("Alejandro Labra"), 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 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 CuandoPublicarEventoDadoAccionCancelarEntoncesEventoEliminado() { var adapter = new Mock<IGCalendarAdapter>(); var message = ""; adapter.Setup(ad => ad.DeleteEvent(It.IsAny<DateTime>(), It.IsAny<DateTime>(), out message)).Returns(true); var publicador = new GooglePublicador(adapter.Object); var agenda = new Agenda(publicador, DefaultEventoRepository, DefaultPersonaRepository, DefaultPatrocinadorRepository); agenda.Proponer("Agile Patterns", null, null, TipoEvento.Van); adapter.Verify(ad => ad.DeleteEvent(It.IsAny<DateTime>(), It.IsAny<DateTime>(), out message), Times.Never()); agenda.Agendar("Agile Patterns", TestsHelper.GetOrCreatePonente("Alejandro Labra"), new DateTime(2011, 07, 09), "https://groups.google.com/d/topic/altnet-hispano/arYEMsPiAtY/discussion", TipoEvento.Van); adapter.Verify(ad => ad.DeleteEvent(It.IsAny<DateTime>(), It.IsAny<DateTime>(), out message), Times.Never()); var evento = DefaultEventoRepository.GetActivos().Single(e => e.Titulo == "Agile Patterns"); agenda.Cancelar(evento.Id); adapter.Verify(ad => ad.DeleteEvent(It.IsAny<DateTime>(), It.IsAny<DateTime>(), out message), Times.Once()); } } }