comparison Agendas/trunk/src/Agendas.Google.Test/PublicadorTest.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 cd96cfc8a1f5
comparison
equal deleted inserted replaced
184:2a336a6a76b5 185:2d02adb79322
14 { 14 {
15 [Test] 15 [Test]
16 public void CuandoPublicarEventoDadoAccionAgendarEntoncesEventoCreado() 16 public void CuandoPublicarEventoDadoAccionAgendarEntoncesEventoCreado()
17 { 17 {
18 var adapter = new Mock<IGCalendarAdapter>(); 18 var adapter = new Mock<IGCalendarAdapter>();
19 var message=""; 19 string message;
20 var fechaInicio = new DateTime(2011, 07, 09, 18, 0, 0, DateTimeKind.Utc);
21 var fechaTermino = fechaInicio.AddHours(2);
20 adapter.Setup(ad => ad.CreateEvent(It.IsAny<IGEventDetail>(), out message)).Returns(true); 22 adapter.Setup(ad => ad.CreateEvent(It.IsAny<IGEventDetail>(), out message)).Returns(true);
21 23
22 var publicador = new GooglePublicador(adapter.Object); 24 var publicador = new GooglePublicador(adapter.Object);
23 var agenda = new Agenda(publicador, DefaultEventoRepository, DefaultPersonaRepository, DefaultPatrocinadorRepository); 25 var agenda = new Agenda(publicador, DefaultEventoRepository, DefaultPersonaRepository, DefaultPatrocinadorRepository);
24 26
25 agenda.Proponer("Agile Patterns", null, null, TipoEvento.Van); 27 agenda.Proponer("Agile Patterns", null, null, TipoEvento.Van);
26 adapter.Verify(ad => ad.CreateEvent(It.IsAny<IGEventDetail>(), out message), Times.Never()); 28 adapter.Verify(ad => ad.CreateEvent(It.IsAny<IGEventDetail>(), out message), Times.Never());
27 29
28 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); 30
31 agenda.Agendar("Agile Patterns", TestsHelper.GetOrCreatePonente("Alejandro Labra"), fechaInicio,
32 fechaTermino, "https://groups.google.com/d/topic/altnet-hispano/arYEMsPiAtY/discussion",
33 TipoEvento.Van);
29 adapter.Verify(ad => ad.CreateEvent(It.IsAny<IGEventDetail>(), out message), Times.Once()); 34 adapter.Verify(ad => ad.CreateEvent(It.IsAny<IGEventDetail>(), out message), Times.Once());
30 } 35 }
31 36
32 [Test] 37 [Test]
33 public void CuandoPublicarEventoDadoTipoVanEntoncesDetalleCorrecto() 38 public void CuandoPublicarEventoDadoTipoVanEntoncesDetalleCorrecto()
34 { 39 {
35 var adapter = new Mock<IGCalendarAdapter>(); 40 var adapter = new Mock<IGCalendarAdapter>();
36 var detail = new VanGEventDetail(); 41 var detail = new VanGEventDetail();
42 var fechaInicio = new DateTime(2011, 07, 09, 18, 0, 0, DateTimeKind.Utc);
43 var fechaTermino = fechaInicio.AddHours(2);
37 44
38 var publicador = new GooglePublicador(adapter.Object); 45 var publicador = new GooglePublicador(adapter.Object);
39 var agenda = new Agenda(publicador, DefaultEventoRepository, DefaultPersonaRepository, DefaultPatrocinadorRepository); 46 var agenda = new Agenda(publicador, DefaultEventoRepository, DefaultPersonaRepository, DefaultPatrocinadorRepository);
40 agenda.Proponer("Agile Patterns", null, null, TipoEvento.Van); 47 agenda.Proponer("Agile Patterns", null, null, TipoEvento.Van);
41 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); 48 agenda.Agendar("Agile Patterns", TestsHelper.GetOrCreatePonente("Alejandro Labra"), fechaInicio,
49 fechaTermino, "https://groups.google.com/d/topic/altnet-hispano/arYEMsPiAtY/discussion",
50 TipoEvento.Van);
42 51
43 var ev = DefaultEventoRepository.GetActivos()[0]; 52 var ev = DefaultEventoRepository.GetActivos()[0];
44 detail.Generate(ev); 53 detail.Generate(ev);
45 54
46 Assert.AreEqual("http://snipr.com/virtualaltnet", detail.Location); 55 Assert.AreEqual("http://snipr.com/virtualaltnet", detail.Location);
47 Assert.AreEqual("VAN sobre Agile Patterns", detail.Title); 56 Assert.AreEqual("VAN sobre Agile Patterns", detail.Title);
48 57
49 Assert.AreEqual(DateTimeKind.Utc, detail.StartEvent.Kind); 58 Assert.AreEqual(DateTimeKind.Utc, detail.StartEvent.Kind);
50 Assert.AreEqual(18, detail.StartEvent.Hour); 59 Assert.AreEqual(18, detail.StartEvent.Hour);
51 Assert.AreEqual(ev.Fecha.Value.Day, detail.StartEvent.Day); 60 Assert.AreEqual(ev.FechaInicio.Value.Day, detail.StartEvent.Day);
52 Assert.AreEqual(ev.Fecha.Value.Month, detail.StartEvent.Month); 61 Assert.AreEqual(ev.FechaInicio.Value.Month, detail.StartEvent.Month);
53 Assert.AreEqual(ev.Fecha.Value.Year, detail.StartEvent.Year); 62 Assert.AreEqual(ev.FechaInicio.Value.Year, detail.StartEvent.Year);
54 63
55 Assert.AreEqual(DateTimeKind.Utc, detail.EndEvent.Kind); 64 Assert.AreEqual(DateTimeKind.Utc, detail.EndEvent.Kind);
56 Assert.AreEqual(20, detail.EndEvent.Hour); 65 Assert.AreEqual(20, detail.EndEvent.Hour);
57 Assert.AreEqual(ev.Fecha.Value.Day, detail.EndEvent.Day); 66 Assert.AreEqual(ev.FechaInicio.Value.Day, detail.EndEvent.Day);
58 Assert.AreEqual(ev.Fecha.Value.Month, detail.EndEvent.Month); 67 Assert.AreEqual(ev.FechaInicio.Value.Month, detail.EndEvent.Month);
59 Assert.AreEqual(ev.Fecha.Value.Year, detail.EndEvent.Year); 68 Assert.AreEqual(ev.FechaInicio.Value.Year, detail.EndEvent.Year);
60 69
61 Assert.AreEqual("La comunidad ALT.NET Hispano (http://altnethispano.org) realizará una VAN sobre Agile Patterns, con Alejandro Labra." + 70 Assert.AreEqual("La comunidad ALT.NET Hispano (http://altnethispano.org) realizará una VAN sobre Agile Patterns, con Alejandro Labra." +
62 "\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." + 71 "\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." +
63 "\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" + 72 "\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" +
64 "\n\rPara mayor información sobre cómo atender la reunión consulten: http://tinyurl.com/van-hispano" + 73 "\n\rPara mayor información sobre cómo atender la reunión consulten: http://tinyurl.com/van-hispano" +
68 [Test] 77 [Test]
69 public void CuandoPublicarEventoTipoCafeEntoncesDetalleCorrecto() 78 public void CuandoPublicarEventoTipoCafeEntoncesDetalleCorrecto()
70 { 79 {
71 var adapter = new Mock<IGCalendarAdapter>(); 80 var adapter = new Mock<IGCalendarAdapter>();
72 var detail = new CafeGEventDetail(); 81 var detail = new CafeGEventDetail();
82 var fechaInicio = new DateTime(2011, 07, 09, 18, 0, 0, DateTimeKind.Utc);
83 var fechaTermino = fechaInicio.AddHours(2);
73 84
74 var publicador = new GooglePublicador(adapter.Object); 85 var publicador = new GooglePublicador(adapter.Object);
75 var agenda = new Agenda(publicador, DefaultEventoRepository, DefaultPersonaRepository, DefaultPatrocinadorRepository); 86 var agenda = new Agenda(publicador, DefaultEventoRepository, DefaultPersonaRepository, DefaultPatrocinadorRepository);
76 agenda.Proponer("Agile Patterns", null, null, TipoEvento.Cafe); 87 agenda.Proponer("Agile Patterns", null, null, TipoEvento.Cafe);
77 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); 88 agenda.Agendar("Agile Patterns", TestsHelper.GetOrCreatePonente("Alejandro Labra"), fechaInicio,
89 fechaTermino, "https://groups.google.com/d/topic/altnet-hispano/arYEMsPiAtY/discussion",
90 TipoEvento.Cafe);
78 91
79 var ev = DefaultEventoRepository.GetActivos()[0]; 92 var ev = DefaultEventoRepository.GetActivos()[0];
80 detail.Generate(ev); 93 detail.Generate(ev);
81 94
82 Assert.AreEqual("http://snipr.com/virtualaltnet", detail.Location); 95 Assert.AreEqual("http://snipr.com/virtualaltnet", detail.Location);
83 Assert.AreEqual("Alt.Net Café Agile Patterns", detail.Title); 96 Assert.AreEqual("Alt.Net Café Agile Patterns", detail.Title);
84 97
85 Assert.AreEqual(DateTimeKind.Utc, detail.StartEvent.Kind); 98 Assert.AreEqual(DateTimeKind.Utc, detail.StartEvent.Kind);
86 Assert.AreEqual(18, detail.StartEvent.Hour); 99 Assert.AreEqual(18, detail.StartEvent.Hour);
87 Assert.AreEqual(ev.Fecha.Value.Day, detail.StartEvent.Day); 100 Assert.AreEqual(ev.FechaInicio.Value.Day, detail.StartEvent.Day);
88 Assert.AreEqual(ev.Fecha.Value.Month, detail.StartEvent.Month); 101 Assert.AreEqual(ev.FechaInicio.Value.Month, detail.StartEvent.Month);
89 Assert.AreEqual(ev.Fecha.Value.Year, detail.StartEvent.Year); 102 Assert.AreEqual(ev.FechaInicio.Value.Year, detail.StartEvent.Year);
90 103
91 Assert.AreEqual(DateTimeKind.Utc, detail.EndEvent.Kind); 104 Assert.AreEqual(DateTimeKind.Utc, detail.EndEvent.Kind);
92 Assert.AreEqual(20, detail.EndEvent.Hour); 105 Assert.AreEqual(20, detail.EndEvent.Hour);
93 Assert.AreEqual(ev.Fecha.Value.Day, detail.EndEvent.Day); 106 Assert.AreEqual(ev.FechaInicio.Value.Day, detail.EndEvent.Day);
94 Assert.AreEqual(ev.Fecha.Value.Month, detail.EndEvent.Month); 107 Assert.AreEqual(ev.FechaInicio.Value.Month, detail.EndEvent.Month);
95 Assert.AreEqual(ev.Fecha.Value.Year, detail.EndEvent.Year); 108 Assert.AreEqual(ev.FechaInicio.Value.Year, detail.EndEvent.Year);
96 109
97 Assert.AreEqual("La comunidad ALT.NET Hispano (http://altnethispano.org) realizará un Alt.Net Cafe virtual con el tema Agile Patterns." + 110 Assert.AreEqual("La comunidad ALT.NET Hispano (http://altnethispano.org) realizará un Alt.Net Cafe virtual con el tema Agile Patterns." +
98 "\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." + 111 "\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." +
99 "\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" + 112 "\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" +
100 "\n\rPara mayor información sobre cómo atender la reunión consulten: http://tinyurl.com/van-hispano" + 113 "\n\rPara mayor información sobre cómo atender la reunión consulten: http://tinyurl.com/van-hispano" +
104 [Test] 117 [Test]
105 public void CuandoPublicarEventoTipoEstudioEntoncesDetalleCorrecto() 118 public void CuandoPublicarEventoTipoEstudioEntoncesDetalleCorrecto()
106 { 119 {
107 var adapter = new Mock<IGCalendarAdapter>(); 120 var adapter = new Mock<IGCalendarAdapter>();
108 var detail = new EstudioGEventDetail(); 121 var detail = new EstudioGEventDetail();
122 var fechaInicio = new DateTime(2011, 07, 09, 18, 0, 0, DateTimeKind.Utc);
123 var fechaTermino = fechaInicio.AddHours(2);
109 124
110 var publicador = new GooglePublicador(adapter.Object); 125 var publicador = new GooglePublicador(adapter.Object);
111 var agenda = new Agenda(publicador, DefaultEventoRepository, DefaultPersonaRepository, DefaultPatrocinadorRepository); 126 var agenda = new Agenda(publicador, DefaultEventoRepository, DefaultPersonaRepository, DefaultPatrocinadorRepository);
112 agenda.Proponer("Agile Patterns", null, null, TipoEvento.GrupoEstudio); 127 agenda.Proponer("Agile Patterns", null, null, TipoEvento.GrupoEstudio);
113 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); 128 agenda.Agendar("Agile Patterns", TestsHelper.GetOrCreatePonente("Alejandro Labra"), fechaInicio,
129 fechaTermino, "https://groups.google.com/d/topic/altnet-hispano/arYEMsPiAtY/discussion",
130 TipoEvento.GrupoEstudio);
114 131
115 var ev = DefaultEventoRepository.GetActivos()[0]; 132 var ev = DefaultEventoRepository.GetActivos()[0];
116 detail.Generate(ev); 133 detail.Generate(ev);
117 134
118 Assert.AreEqual("http://snipr.com/virtualaltnet", detail.Location); 135 Assert.AreEqual("http://snipr.com/virtualaltnet", detail.Location);
119 Assert.AreEqual("Grupo de Estudio Agile Patterns", detail.Title); 136 Assert.AreEqual("Grupo de Estudio Agile Patterns", detail.Title);
120 137
121 Assert.AreEqual(DateTimeKind.Utc, detail.StartEvent.Kind); 138 Assert.AreEqual(DateTimeKind.Utc, detail.StartEvent.Kind);
122 Assert.AreEqual(18, detail.StartEvent.Hour); 139 Assert.AreEqual(18, detail.StartEvent.Hour);
123 Assert.AreEqual(ev.Fecha.Value.Day, detail.StartEvent.Day); 140 Assert.AreEqual(ev.FechaInicio.Value.Day, detail.StartEvent.Day);
124 Assert.AreEqual(ev.Fecha.Value.Month, detail.StartEvent.Month); 141 Assert.AreEqual(ev.FechaInicio.Value.Month, detail.StartEvent.Month);
125 Assert.AreEqual(ev.Fecha.Value.Year, detail.StartEvent.Year); 142 Assert.AreEqual(ev.FechaInicio.Value.Year, detail.StartEvent.Year);
126 143
127 Assert.AreEqual(DateTimeKind.Utc, detail.EndEvent.Kind); 144 Assert.AreEqual(DateTimeKind.Utc, detail.EndEvent.Kind);
128 Assert.AreEqual(20, detail.EndEvent.Hour); 145 Assert.AreEqual(20, detail.EndEvent.Hour);
129 Assert.AreEqual(ev.Fecha.Value.Day, detail.EndEvent.Day); 146 Assert.AreEqual(ev.FechaInicio.Value.Day, detail.EndEvent.Day);
130 Assert.AreEqual(ev.Fecha.Value.Month, detail.EndEvent.Month); 147 Assert.AreEqual(ev.FechaInicio.Value.Month, detail.EndEvent.Month);
131 Assert.AreEqual(ev.Fecha.Value.Year, detail.EndEvent.Year); 148 Assert.AreEqual(ev.FechaInicio.Value.Year, detail.EndEvent.Year);
132 149
133 Assert.AreEqual("La comunidad ALT.NET Hispano (http://altnethispano.org) realizará un grupo de estudio sobre Agile Patterns." + 150 Assert.AreEqual("La comunidad ALT.NET Hispano (http://altnethispano.org) realizará un grupo de estudio sobre Agile Patterns." +
134 "\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." + 151 "\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." +
135 "\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" + 152 "\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" +
136 "\n\rPara mayor información sobre cómo atender la reunión consulten: http://tinyurl.com/van-hispano" + 153 "\n\rPara mayor información sobre cómo atender la reunión consulten: http://tinyurl.com/van-hispano" +
139 156
140 [Test] 157 [Test]
141 public void CuandoPublicarEventoDadoAccionCancelarEntoncesEventoEliminado() 158 public void CuandoPublicarEventoDadoAccionCancelarEntoncesEventoEliminado()
142 { 159 {
143 var adapter = new Mock<IGCalendarAdapter>(); 160 var adapter = new Mock<IGCalendarAdapter>();
144 var message = ""; 161 string message;
162 var fechaInicio = new DateTime(2011, 07, 09, 18, 0, 0, DateTimeKind.Utc);
163 var fechaTermino = fechaInicio.AddHours(2);
145 adapter.Setup(ad => ad.DeleteEvent(It.IsAny<DateTime>(), It.IsAny<DateTime>(), out message)).Returns(true); 164 adapter.Setup(ad => ad.DeleteEvent(It.IsAny<DateTime>(), It.IsAny<DateTime>(), out message)).Returns(true);
146 165
147 var publicador = new GooglePublicador(adapter.Object); 166 var publicador = new GooglePublicador(adapter.Object);
148 var agenda = new Agenda(publicador, DefaultEventoRepository, DefaultPersonaRepository, DefaultPatrocinadorRepository); 167 var agenda = new Agenda(publicador, DefaultEventoRepository, DefaultPersonaRepository, DefaultPatrocinadorRepository);
149 168
150 agenda.Proponer("Agile Patterns", null, null, TipoEvento.Van); 169 agenda.Proponer("Agile Patterns", null, null, TipoEvento.Van);
151 adapter.Verify(ad => ad.DeleteEvent(It.IsAny<DateTime>(), It.IsAny<DateTime>(), out message), Times.Never()); 170 adapter.Verify(ad => ad.DeleteEvent(It.IsAny<DateTime>(), It.IsAny<DateTime>(), out message), Times.Never());
152 171
153 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); 172 agenda.Agendar("Agile Patterns", TestsHelper.GetOrCreatePonente("Alejandro Labra"), fechaInicio,
173 fechaTermino, "https://groups.google.com/d/topic/altnet-hispano/arYEMsPiAtY/discussion",
174 TipoEvento.Van);
154 adapter.Verify(ad => ad.DeleteEvent(It.IsAny<DateTime>(), It.IsAny<DateTime>(), out message), Times.Never()); 175 adapter.Verify(ad => ad.DeleteEvent(It.IsAny<DateTime>(), It.IsAny<DateTime>(), out message), Times.Never());
155 176
156 var evento = DefaultEventoRepository.GetActivos().Single(e => e.Titulo == "Agile Patterns"); 177 var evento = DefaultEventoRepository.GetActivos().Single(e => e.Titulo == "Agile Patterns");
157 178
158 agenda.Cancelar(evento.Id); 179 agenda.Cancelar(evento.Id);