Mercurial > altnet-hispano
view Agendas/trunk/src/Agendas.Google.Test/PublicadorTest.cs @ 248:da9c295e9fa1
Nro de versión en el footer
author | nelopauselli |
---|---|
date | Fri, 07 Oct 2011 13:02:13 -0300 |
parents | c61954d24c8c |
children | 72a96459f910 |
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>(); string message; var fechaInicio = new DateTime(2011, 07, 09, 18, 0, 0, DateTimeKind.Utc); var fechaTermino = fechaInicio.AddHours(2); 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); agenda.Proponer("Agile Patterns", null, null, TipoEvento.Van); adapter.Verify(ad => ad.CreateEvent(It.IsAny<IGEventDetail>(), out message), Times.Never()); agenda.Agendar("Agile Patterns",new[]{ TestsHelper.GetOrCreatePonente("Alejandro Labra")}, fechaInicio, fechaTermino, "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 fechaInicio = new DateTime(2011, 07, 09, 18, 0, 0, DateTimeKind.Utc); var fechaTermino = fechaInicio.AddHours(2); 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", new[]{ TestsHelper.GetOrCreatePonente("Alejandro Labra")}, fechaInicio, fechaTermino, "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(ev.FechaInicio.Value.Hour, detail.StartEvent.Hour); Assert.AreEqual(ev.FechaInicio.Value.Day, detail.StartEvent.Day); Assert.AreEqual(ev.FechaInicio.Value.Month, detail.StartEvent.Month); Assert.AreEqual(ev.FechaInicio.Value.Year, detail.StartEvent.Year); Assert.AreEqual(DateTimeKind.Utc, detail.EndEvent.Kind); Assert.AreEqual(ev.FechaTermino.Value.Hour, detail.EndEvent.Hour); Assert.AreEqual(ev.FechaTermino.Value.Day, detail.EndEvent.Day); Assert.AreEqual(ev.FechaTermino.Value.Month, detail.EndEvent.Month); Assert.AreEqual(ev.FechaTermino.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 fechaInicio = new DateTime(2011, 07, 09, 18, 0, 0, DateTimeKind.Utc); var fechaTermino = fechaInicio.AddHours(2); 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", new[]{ TestsHelper.GetOrCreatePonente("Alejandro Labra")}, fechaInicio, fechaTermino, "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(ev.FechaInicio.Value.Hour, detail.StartEvent.Hour); Assert.AreEqual(ev.FechaInicio.Value.Day, detail.StartEvent.Day); Assert.AreEqual(ev.FechaInicio.Value.Month, detail.StartEvent.Month); Assert.AreEqual(ev.FechaInicio.Value.Year, detail.StartEvent.Year); Assert.AreEqual(DateTimeKind.Utc, detail.EndEvent.Kind); Assert.AreEqual(ev.FechaTermino.Value.Hour, detail.EndEvent.Hour); Assert.AreEqual(ev.FechaTermino.Value.Day, detail.EndEvent.Day); Assert.AreEqual(ev.FechaTermino.Value.Month, detail.EndEvent.Month); Assert.AreEqual(ev.FechaTermino.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 fechaInicio = new DateTime(2011, 07, 09, 18, 0, 0, DateTimeKind.Utc); var fechaTermino = fechaInicio.AddHours(2); 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", new[]{ TestsHelper.GetOrCreatePonente("Alejandro Labra")}, fechaInicio, fechaTermino, "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(ev.FechaInicio.Value.Hour, detail.StartEvent.Hour); Assert.AreEqual(ev.FechaInicio.Value.Day, detail.StartEvent.Day); Assert.AreEqual(ev.FechaInicio.Value.Month, detail.StartEvent.Month); Assert.AreEqual(ev.FechaInicio.Value.Year, detail.StartEvent.Year); Assert.AreEqual(DateTimeKind.Utc, detail.EndEvent.Kind); Assert.AreEqual(ev.FechaTermino.Value.Hour, detail.EndEvent.Hour); Assert.AreEqual(ev.FechaTermino.Value.Day, detail.EndEvent.Day); Assert.AreEqual(ev.FechaTermino.Value.Month, detail.EndEvent.Month); Assert.AreEqual(ev.FechaTermino.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>(); string message; var fechaInicio = new DateTime(2011, 07, 09, 18, 0, 0, DateTimeKind.Utc); var fechaTermino = fechaInicio.AddHours(2); 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); 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", new[]{ TestsHelper.GetOrCreatePonente("Alejandro Labra")}, fechaInicio, fechaTermino, "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()); } [Test] public void PublicarConMasDeUnPonente() { var adapter = new Mock<IGCalendarAdapter>(); var detail = new VanGEventDetail(); var fechaInicio = new DateTime(2011, 07, 09, 18, 0, 0, DateTimeKind.Utc); var fechaTermino = fechaInicio.AddHours(2); var publicador = new GooglePublicador(adapter.Object); var agenda = new Agenda(publicador, DefaultEventoRepository, DefaultPersonaRepository); agenda.Agendar("Identity Providers Públicos y Empresariales", new[]{ TestsHelper.GetOrCreatePonente("Carlos Peix"),TestsHelper.GetOrCreatePonente("Nelo Pauselli")}, fechaInicio, fechaTermino, "https://groups.google.com/d/topic/altnet-hispano/arYEMsPiAtY/discussion", TipoEvento.Van); var ev = DefaultEventoRepository.GetActivos()[0]; detail.Generate(ev); Assert.That(detail.Summary, Is.StringContaining("Carlos Peix y Nelo Pauselli.")); } [Test] public void PublicarSinPonente() { var adapter = new Mock<IGCalendarAdapter>(); var detail = new VanGEventDetail(); var fechaInicio = new DateTime(2011, 07, 09, 18, 0, 0, DateTimeKind.Utc); var fechaTermino = fechaInicio.AddHours(2); var publicador = new GooglePublicador(adapter.Object); var agenda = new Agenda(publicador, DefaultEventoRepository, DefaultPersonaRepository); agenda.Agendar("Identity Providers Públicos y Empresariales", null, fechaInicio, fechaTermino, "https://groups.google.com/d/topic/altnet-hispano/arYEMsPiAtY/discussion", TipoEvento.Cafe); var ev = DefaultEventoRepository.GetActivos()[0]; detail.Generate(ev); Assert.AreEqual("La comunidad ALT.NET Hispano (http://altnethispano.org) realizará un Café sobre Identity Providers Públicos y Empresariales." + "\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); } } }