comparison Agendas/trunk/src/Agendas.Tests/AgendarTests.cs @ 235:c61954d24c8c

Quitando ponente principal y utilizando siempre la lista de ponentes
author nelopauselli
date Tue, 04 Oct 2011 20:42:35 -0300
parents e5959f3405e0
children 59f8fa2f835e
comparison
equal deleted inserted replaced
231:e5959f3405e0 235:c61954d24c8c
33 33
34 var fechaInicio = DateTime.Now.ToUniversalTime(); 34 var fechaInicio = DateTime.Now.ToUniversalTime();
35 var fechaTermino = fechaInicio.AddHours(2); 35 var fechaTermino = fechaInicio.AddHours(2);
36 Assert.Throws<Exception>( 36 Assert.Throws<Exception>(
37 () => 37 () =>
38 agenda.Agendar("Van para publicar", TestsHelper.GetOrCreatePonente("jjmontes"), fechaInicio, fechaTermino, 38 agenda.Agendar("Van para publicar", new[]{ TestsHelper.GetOrCreatePonente("jjmontes")}, fechaInicio, fechaTermino,
39 urlInvitacion, TipoEvento.Van)); 39 urlInvitacion, TipoEvento.Van));
40 Assert.AreEqual(0, agenda.GetEventosActivos().Count); 40 Assert.AreEqual(0, agenda.GetEventosActivos().Count);
41 41
42 publicador.Verify(p => p.Publicar(It.IsAny<IEnumerable<Track>>()), Times.Exactly(1)); 42 publicador.Verify(p => p.Publicar(It.IsAny<IEnumerable<Track>>()), Times.Exactly(1));
43 repository.Verify(p => p.Save(It.IsAny<Evento>()), Times.Exactly(0)); 43 repository.Verify(p => p.Save(It.IsAny<Evento>()), Times.Exactly(0));
55 55
56 var fechaInicio = DateTime.Now.ToUniversalTime(); 56 var fechaInicio = DateTime.Now.ToUniversalTime();
57 var fechaTermino = fechaInicio.AddHours(2); 57 var fechaTermino = fechaInicio.AddHours(2);
58 Assert.Throws<IdentityContextNotConfiguredException>( 58 Assert.Throws<IdentityContextNotConfiguredException>(
59 () => 59 () =>
60 agenda.Agendar("Van para publicar", TestsHelper.GetOrCreatePonente("jjmontes"), fechaInicio, fechaTermino, 60 agenda.Agendar("Van para publicar", new[]{ TestsHelper.GetOrCreatePonente("jjmontes")}, fechaInicio, fechaTermino,
61 urlInvitacion, TipoEvento.Van)); 61 urlInvitacion, TipoEvento.Van));
62 repository.Verify(p => p.Save(It.IsAny<Evento>()), Times.Exactly(0)); 62 repository.Verify(p => p.Save(It.IsAny<Evento>()), Times.Exactly(0));
63 } 63 }
64 64
65 [Test] 65 [Test]
74 74
75 var fechaInicio = DateTime.Now.ToUniversalTime(); 75 var fechaInicio = DateTime.Now.ToUniversalTime();
76 var fechaTermino = fechaInicio.AddHours(2); 76 var fechaTermino = fechaInicio.AddHours(2);
77 Assert.Throws<UsuarioNoAutenticadoException>( 77 Assert.Throws<UsuarioNoAutenticadoException>(
78 () => 78 () =>
79 agenda.Agendar("Van para publicar", TestsHelper.GetOrCreatePonente("jjmontes"), fechaInicio, fechaTermino, 79 agenda.Agendar("Van para publicar", new[]{ TestsHelper.GetOrCreatePonente("jjmontes")}, fechaInicio, fechaTermino,
80 urlInvitacion, TipoEvento.Van)); 80 urlInvitacion, TipoEvento.Van));
81 81
82 publicador.Verify(p => p.Publicar(It.IsAny<IEnumerable<Track>>()), Times.Exactly(0)); 82 publicador.Verify(p => p.Publicar(It.IsAny<IEnumerable<Track>>()), Times.Exactly(0));
83 repository.Verify(p => p.Save(It.IsAny<Evento>()), Times.Exactly(0)); 83 repository.Verify(p => p.Save(It.IsAny<Evento>()), Times.Exactly(0));
84 } 84 }
85 85
86 [Test] 86 [Test]
87 public void Intentar_agendar_van_sin_ponente() 87 public void Intentar_agendar_van_sin_ponentes_null()
88 { 88 {
89 var agenda = new Agenda(null, DefaultEventoRepository, DefaultPersonaRepository); 89 var agenda = new Agenda(null, DefaultEventoRepository, DefaultPersonaRepository);
90 90
91 var fechaInicio = DateTime.Now.ToUniversalTime(); 91 var fechaInicio = DateTime.Now.ToUniversalTime();
92 var fechaTermino = fechaInicio.AddHours(2); 92 var fechaTermino = fechaInicio.AddHours(2);
93 var r = agenda.Agendar("Van para publicar", Guid.Empty, fechaInicio, fechaTermino, urlInvitacion, TipoEvento.Van); 93 var r = agenda.Agendar("Van para publicar", null, fechaInicio, fechaTermino, urlInvitacion, TipoEvento.Van);
94 94
95 Assert.IsFalse(r.Succeful); 95 Assert.IsFalse(r.Succeful);
96 } 96 }
97 97
98 [Test] 98 [Test]
99 public void Agendar_cafe_sin_ponente() 99 public void Intentar_agendar_van_sin_ponentes_empty()
100 { 100 {
101 var agenda = new Agenda(null, DefaultEventoRepository, DefaultPersonaRepository); 101 var agenda = new Agenda(null, DefaultEventoRepository, DefaultPersonaRepository);
102 102
103 var fechaInicio = DateTime.Now.ToUniversalTime(); 103 var fechaInicio = DateTime.Now.ToUniversalTime();
104 var fechaTermino = fechaInicio.AddHours(2); 104 var fechaTermino = fechaInicio.AddHours(2);
105 var r = agenda.Agendar("Cafe para publicar", Guid.Empty, fechaInicio, fechaTermino, urlInvitacion, TipoEvento.Cafe); 105 var r = agenda.Agendar("Van para publicar", new[] {Guid.Empty}, fechaInicio, fechaTermino, urlInvitacion,
106 106 TipoEvento.Van);
107 Assert.IsTrue(r.Succeful); 107
108 } 108 Assert.IsFalse(r.Succeful);
109 109 }
110 [Test] 110
111 public void Agendar_grupo_de_estudio_sin_ponente() 111 [Test]
112 public void Agendar_cafe_sin_ponente()
112 { 113 {
113 var agenda = new Agenda(null, DefaultEventoRepository, DefaultPersonaRepository); 114 var agenda = new Agenda(null, DefaultEventoRepository, DefaultPersonaRepository);
114 115
115 var fechaInicio = DateTime.Now.ToUniversalTime(); 116 var fechaInicio = DateTime.Now.ToUniversalTime();
116 var fechaTermino = fechaInicio.AddHours(2); 117 var fechaTermino = fechaInicio.AddHours(2);
117 var r = agenda.Agendar("GrupoEstudio para publicar", Guid.Empty, fechaInicio, fechaTermino, urlInvitacion, TipoEvento.GrupoEstudio); 118 var r = agenda.Agendar("Cafe para publicar", new[] { Guid.Empty }, fechaInicio, fechaTermino, urlInvitacion, TipoEvento.Cafe);
119
120 Console.WriteLine(r.Message);
121 Assert.IsTrue(r.Succeful);
122 }
123
124 [Test]
125 public void Agendar_grupo_de_estudio_sin_ponente()
126 {
127 var agenda = new Agenda(null, DefaultEventoRepository, DefaultPersonaRepository);
128
129 var fechaInicio = DateTime.Now.ToUniversalTime();
130 var fechaTermino = fechaInicio.AddHours(2);
131 var r = agenda.Agendar("GrupoEstudio para publicar", new[] { Guid.Empty }, fechaInicio, fechaTermino, urlInvitacion, TipoEvento.GrupoEstudio);
118 132
119 Assert.IsTrue(r.Succeful); 133 Assert.IsTrue(r.Succeful);
120 } 134 }
121 135
122 [Test] 136 [Test]
130 var agenda = new Agenda(new CompositePublicador(new[] { publicador1.Object, publicador2.Object }), 144 var agenda = new Agenda(new CompositePublicador(new[] { publicador1.Object, publicador2.Object }),
131 repository.Object, DefaultPersonaRepository); 145 repository.Object, DefaultPersonaRepository);
132 146
133 var fechaInicio = DateTime.Now.ToUniversalTime(); 147 var fechaInicio = DateTime.Now.ToUniversalTime();
134 var fechaTermino = fechaInicio.AddHours(2); 148 var fechaTermino = fechaInicio.AddHours(2);
135 agenda.Agendar("Van para publicar", TestsHelper.GetOrCreatePonente("jjmontes"), fechaInicio, fechaTermino, 149 agenda.Agendar("Van para publicar", new[]{TestsHelper.GetOrCreatePonente("jjmontes")}, fechaInicio, fechaTermino,
136 urlInvitacion, TipoEvento.Van); 150 urlInvitacion, TipoEvento.Van);
137 151
138 publicador1.Verify(p => p.Publicar(It.IsAny<IEnumerable<Track>>()), Times.Exactly(1)); 152 publicador1.Verify(p => p.Publicar(It.IsAny<IEnumerable<Track>>()), Times.Exactly(1));
139 publicador2.Verify(p => p.Publicar(It.IsAny<IEnumerable<Track>>()), Times.Exactly(1)); 153 publicador2.Verify(p => p.Publicar(It.IsAny<IEnumerable<Track>>()), Times.Exactly(1));
140 repository.Verify(p => p.Save(It.IsAny<Evento>()), Times.Exactly(1)); 154 repository.Verify(p => p.Save(It.IsAny<Evento>()), Times.Exactly(1));
147 161
148 var agenda = new Agenda(publicador.Object, DefaultEventoRepository, DefaultPersonaRepository); 162 var agenda = new Agenda(publicador.Object, DefaultEventoRepository, DefaultPersonaRepository);
149 163
150 var fechaInicio = DateTime.Now.ToUniversalTime(); 164 var fechaInicio = DateTime.Now.ToUniversalTime();
151 var fechaTermino = fechaInicio.AddHours(2); 165 var fechaTermino = fechaInicio.AddHours(2);
152 agenda.Agendar("Van para publicar", TestsHelper.GetOrCreatePonente("jjmontes"), fechaInicio, fechaTermino, 166 agenda.Agendar("Van para publicar",new[]{ TestsHelper.GetOrCreatePonente("jjmontes")}, fechaInicio, fechaTermino,
153 urlInvitacion, TipoEvento.Van); 167 urlInvitacion, TipoEvento.Van);
154 168
155 Assert.AreEqual(0, agenda.GetEventosActivos(EventoPropuestoState.GetInstance()).Count); 169 Assert.AreEqual(0, agenda.GetEventosActivos(EventoPropuestoState.GetInstance()).Count);
156 170
157 var eventos = agenda.GetEventosActivos(); 171 var eventos = agenda.GetEventosActivos();
169 var agenda = new Agenda(null, DefaultEventoRepository, DefaultPersonaRepository); 183 var agenda = new Agenda(null, DefaultEventoRepository, DefaultPersonaRepository);
170 184
171 var fechaInicio = DateTime.Now.ToUniversalTime(); 185 var fechaInicio = DateTime.Now.ToUniversalTime();
172 var fechaTermino = fechaInicio.AddHours(2); 186 var fechaTermino = fechaInicio.AddHours(2);
173 187
174 agenda.Agendar("Identity Providers, oAuth y Autenticaciones on-line", TestsHelper.GetOrCreatePonente("carlospeix"), fechaInicio, fechaTermino, urlInvitacion, TipoEvento.Van, new[] {TestsHelper.GetOrCreatePonente("nelopauselli")}); 188 agenda.Agendar("Identity Providers, oAuth y Autenticaciones on-line",
189 new[] {TestsHelper.GetOrCreatePonente("Carlos Peix"), TestsHelper.GetOrCreatePonente("Nelo Pauselli")},
190 fechaInicio, fechaTermino, urlInvitacion, TipoEvento.Van);
175 191
176 Assert.AreEqual(0, agenda.GetEventosActivos(EventoPropuestoState.GetInstance()).Count); 192 Assert.AreEqual(0, agenda.GetEventosActivos(EventoPropuestoState.GetInstance()).Count);
177 193
178 var eventos = agenda.GetEventosActivos(); 194 var eventos = agenda.GetEventosActivos();
179 Assert.AreEqual(1, eventos.Count); 195 Assert.AreEqual(1, eventos.Count);
180 196
181 var evento = eventos[0]; 197 var evento = eventos[0];
182 198
183 Assert.IsNotNull(evento.Ponente); 199 var carlos = evento.Ponentes.Single(p => p.Twitter == "carlospeix");
184 Assert.AreEqual("carlospeix", evento.Ponente.Twitter); 200 Assert.AreEqual("Carlos Peix", carlos.Nombre);
185 201
186 Assert.IsNotNull(evento.OtrosPonentes); 202 var nelo = evento.Ponentes.Single(p => p.Twitter == "nelopauselli");
187 Assert.AreEqual(1, evento.OtrosPonentes.Count()); 203 Assert.AreEqual("Nelo Pauselli", nelo.Nombre);
188 var colaborador = evento.OtrosPonentes.First();
189 Assert.AreEqual("nelopauselli", colaborador.Twitter);
190 } 204 }
191 205
192 [Test] 206 [Test]
193 public void Agendar_y_modificar_evento() 207 public void Agendar_y_modificar_evento()
194 { 208 {
197 211
198 var agenda = new Agenda(publicador.Object, repository, DefaultPersonaRepository); 212 var agenda = new Agenda(publicador.Object, repository, DefaultPersonaRepository);
199 var fechaInicioVanPublicar = DateTime.Now.ToUniversalTime(); 213 var fechaInicioVanPublicar = DateTime.Now.ToUniversalTime();
200 var fechaTerminoVanPublicar = fechaInicioVanPublicar.AddHours(2); 214 var fechaTerminoVanPublicar = fechaInicioVanPublicar.AddHours(2);
201 215
202 agenda.Agendar("Van para publicar", TestsHelper.GetOrCreatePonente("jjmontes"), fechaInicioVanPublicar, 216 agenda.Agendar("Van para publicar", new[] {TestsHelper.GetOrCreatePonente("jjmontes")}, fechaInicioVanPublicar, fechaTerminoVanPublicar, urlInvitacion, TipoEvento.Van);
203 fechaTerminoVanPublicar,
204 urlInvitacion, TipoEvento.Van);
205 217
206 publicador.Verify(p => p.Publicar(It.IsAny<IEnumerable<Track>>()), Times.Exactly(1)); 218 publicador.Verify(p => p.Publicar(It.IsAny<IEnumerable<Track>>()), Times.Exactly(1));
207 219
208 var evento = repository.GetActivos().First(); 220 var evento = repository.GetActivos().First();
209 Assert.AreNotEqual(Guid.Empty, evento.Id); 221 Assert.AreNotEqual(Guid.Empty, evento.Id);
210 Assert.IsNotNull(evento.FechaInicio); 222 Assert.IsNotNull(evento.FechaInicio);
211 223
212 var fechaInicio = evento.FechaInicio.Value.AddDays(7); 224 var fechaInicio = evento.FechaInicio.Value.AddDays(7);
213 var fechaTermino = fechaInicio.AddHours(2); 225 var fechaTermino = fechaInicio.AddHours(2);
214 agenda.ModificarEvento(evento.Id, "otro titulo", TestsHelper.GetOrCreatePonente("otro ponente"), fechaInicio, 226 agenda.ModificarEvento(evento.Id, "otro titulo", new[]{TestsHelper.GetOrCreatePonente("otro ponente")}, fechaInicio,
215 fechaTermino, urlInvitacion); 227 fechaTermino, urlInvitacion);
216 228
217 publicador.Verify(p => p.Publicar(It.IsAny<IEnumerable<Track>>()), Times.Exactly(2)); 229 publicador.Verify(p => p.Publicar(It.IsAny<IEnumerable<Track>>()), Times.Exactly(2));
218 230
219 evento = repository.GetActivos().First(); 231 evento = repository.GetActivos().First();
220 Assert.AreEqual("otro titulo", evento.Titulo); 232 Assert.AreEqual("otro titulo", evento.Titulo);
221 Assert.AreEqual("otro ponente", evento.Ponente.Nombre); 233 Assert.IsTrue(evento.Ponentes.Any(p=>p.Nombre=="otro ponente"));
222 Assert.AreEqual(fechaInicio, evento.FechaInicio); 234 Assert.AreEqual(fechaInicio, evento.FechaInicio);
223 235
224 var idEventoNoExistente = new Guid("99999999999999999999999999999999"); 236 var idEventoNoExistente = new Guid("99999999999999999999999999999999");
225 Assert.Throws<EventoNotFoundException>( 237 Assert.Throws<EventoNotFoundException>(
226 () => 238 () =>
227 agenda.ModificarEvento(idEventoNoExistente, "algún título", TestsHelper.GetOrCreatePonente("un ponente"), 239 agenda.ModificarEvento(idEventoNoExistente, "algún título",new[]{ TestsHelper.GetOrCreatePonente("un ponente")},
228 DateTime.Now, DateTime.Now.AddHours(2), urlInvitacion)); 240 DateTime.Now, DateTime.Now.AddHours(2), urlInvitacion));
229 } 241 }
230 242
231 [Test, Ignore("Por ahora no existe el concepto de recordar")] 243 [Test, Ignore("Por ahora no existe el concepto de recordar")]
232 public void Agendar_y_recordar_evento() 244 public void Agendar_y_recordar_evento()
237 var agenda = new Agenda(new CompositePublicador(new[] { publicador1.Object, publicador2.Object }), 249 var agenda = new Agenda(new CompositePublicador(new[] { publicador1.Object, publicador2.Object }),
238 DefaultEventoRepository, DefaultPersonaRepository); 250 DefaultEventoRepository, DefaultPersonaRepository);
239 251
240 var fechaInicio = DateTime.Now.ToUniversalTime(); 252 var fechaInicio = DateTime.Now.ToUniversalTime();
241 var fechaTermino = fechaInicio.AddHours(2); 253 var fechaTermino = fechaInicio.AddHours(2);
242 agenda.Agendar("Van para publicar", TestsHelper.GetOrCreatePonente("jjmontes"), fechaInicio, fechaTermino, 254 agenda.Agendar("Van para publicar", new[]{TestsHelper.GetOrCreatePonente("jjmontes")}, fechaInicio, fechaTermino,
243 urlInvitacion, TipoEvento.Van); 255 urlInvitacion, TipoEvento.Van);
244 256
245 var van = agenda.GetEventosActivos().Single(v => v.Titulo == "Van para publicar"); 257 var van = agenda.GetEventosActivos().Single(v => v.Titulo == "Van para publicar");
246 //agenda.Recordar(van.Id); 258 //agenda.Recordar(van.Id);
247 259
257 var publicador2 = new Mock<IPublicador>(); 269 var publicador2 = new Mock<IPublicador>();
258 270
259 var agenda = new Agenda(new CompositePublicador(new[] { publicador1.Object, publicador2.Object }), 271 var agenda = new Agenda(new CompositePublicador(new[] { publicador1.Object, publicador2.Object }),
260 DefaultEventoRepository, DefaultPersonaRepository); 272 DefaultEventoRepository, DefaultPersonaRepository);
261 273
262 agenda.Proponer("Html 5", TestsHelper.GetOrCreatePonente("jjmontes"), urlInvitacion, TipoEvento.Van); 274 agenda.Proponer("Html 5", new[]{TestsHelper.GetOrCreatePonente("jjmontes")}, urlInvitacion, TipoEvento.Van);
263 Assert.AreEqual(1, agenda.GetEventosActivos(EventoPropuestoState.GetInstance()).Count); 275 Assert.AreEqual(1, agenda.GetEventosActivos(EventoPropuestoState.GetInstance()).Count);
264 Assert.AreEqual(1, agenda.GetEventosActivos().Count); 276 Assert.AreEqual(1, agenda.GetEventosActivos().Count);
265 277
266 var publicado = agenda.GetEventosActivos(EventoPropuestoState.GetInstance()).First(); 278 var publicado = agenda.GetEventosActivos(EventoPropuestoState.GetInstance()).First();
267 Assert.AreEqual(1, publicado.Tracks.Count()); 279 Assert.AreEqual(1, publicado.Tracks.Count());
268 280
269 var fechaInicio = DateTime.Today.AddDays(5).ToUniversalTime(); 281 var fechaInicio = DateTime.Today.AddDays(5).ToUniversalTime();
270 var fechaTermino = fechaInicio.AddHours(2); 282 var fechaTermino = fechaInicio.AddHours(2);
271 agenda.ModificarEvento(publicado.Id, "Html 5", TestsHelper.GetOrCreatePonente("jjmontes"), fechaInicio, 283 agenda.ModificarEvento(publicado.Id, "Html 5", new[]{TestsHelper.GetOrCreatePonente("jjmontes")}, fechaInicio,
272 fechaTermino, urlInvitacion); 284 fechaTermino, urlInvitacion);
273 Assert.AreEqual(0, agenda.GetEventosActivos(EventoPropuestoState.GetInstance()).Count); 285 Assert.AreEqual(0, agenda.GetEventosActivos(EventoPropuestoState.GetInstance()).Count);
274 Assert.AreEqual(1, agenda.GetEventosActivos(EventoAgendadoState.GetInstance()).Count); 286 Assert.AreEqual(1, agenda.GetEventosActivos(EventoAgendadoState.GetInstance()).Count);
275 Assert.AreEqual(1, agenda.GetEventosActivos().Count); 287 Assert.AreEqual(1, agenda.GetEventosActivos().Count);
276 288
286 public void Al_proponer_un_evento_debe_quedar_con_estado_EventoPropuestoState_y_debe_generar_el_track_correspondiente() 298 public void Al_proponer_un_evento_debe_quedar_con_estado_EventoPropuestoState_y_debe_generar_el_track_correspondiente()
287 { 299 {
288 var publicador1 = new Mock<IPublicador>(); 300 var publicador1 = new Mock<IPublicador>();
289 301
290 var agenda = new Agenda(publicador1.Object, DefaultEventoRepository, DefaultPersonaRepository); 302 var agenda = new Agenda(publicador1.Object, DefaultEventoRepository, DefaultPersonaRepository);
291 agenda.Proponer("Html 5", TestsHelper.GetOrCreatePonente("jjmontes"), urlInvitacion, TipoEvento.Van); 303 agenda.Proponer("Html 5", new[]{TestsHelper.GetOrCreatePonente("jjmontes")}, urlInvitacion, TipoEvento.Van);
292 304
293 var evento = 305 var evento =
294 DefaultEventoRepository.GetByState(EventoPropuestoState.GetInstance()).Single(e => e.Titulo == "Html 5"); 306 DefaultEventoRepository.GetByState(EventoPropuestoState.GetInstance()).Single(e => e.Titulo == "Html 5");
295 307
296 Assert.IsInstanceOf(typeof(EventoPropuestoState), evento.Estado); 308 Assert.IsInstanceOf(typeof(EventoPropuestoState), evento.Estado);
303 var publicador1 = new Mock<IPublicador>(); 315 var publicador1 = new Mock<IPublicador>();
304 316
305 var agenda = new Agenda(publicador1.Object, DefaultEventoRepository, DefaultPersonaRepository); 317 var agenda = new Agenda(publicador1.Object, DefaultEventoRepository, DefaultPersonaRepository);
306 var fechaInicio = DateTime.MinValue.ToUniversalTime(); 318 var fechaInicio = DateTime.MinValue.ToUniversalTime();
307 var fechatermino = fechaInicio.AddHours(2); 319 var fechatermino = fechaInicio.AddHours(2);
308 agenda.Agendar("Html 5", TestsHelper.GetOrCreatePonente("jjmontes"), fechaInicio, fechatermino, urlInvitacion, 320 agenda.Agendar("Html 5", new[]{TestsHelper.GetOrCreatePonente("jjmontes")}, fechaInicio, fechatermino, urlInvitacion,
309 TipoEvento.Van); 321 TipoEvento.Van);
310 322
311 var evento = DefaultEventoRepository.GetActivos().Single(e => e.Titulo == "Html 5"); 323 var evento = DefaultEventoRepository.GetActivos().Single(e => e.Titulo == "Html 5");
312 324
313 Assert.IsInstanceOf(typeof(EventoAgendadoState), evento.Estado); 325 Assert.IsInstanceOf(typeof(EventoAgendadoState), evento.Estado);
320 var publicador1 = new Mock<IPublicador>(); 332 var publicador1 = new Mock<IPublicador>();
321 333
322 var agenda = new Agenda(publicador1.Object, DefaultEventoRepository, DefaultPersonaRepository); 334 var agenda = new Agenda(publicador1.Object, DefaultEventoRepository, DefaultPersonaRepository);
323 var fechaInicio = DateTime.MinValue.ToUniversalTime(); 335 var fechaInicio = DateTime.MinValue.ToUniversalTime();
324 var fechaTermino = fechaInicio.AddHours(2); 336 var fechaTermino = fechaInicio.AddHours(2);
325 agenda.Agendar("Html 5", TestsHelper.GetOrCreatePonente("jjmontes"), fechaInicio, fechaTermino, 337 agenda.Agendar("Html 5", new[]{TestsHelper.GetOrCreatePonente("jjmontes")}, fechaInicio, fechaTermino,
326 urlInvitacion, TipoEvento.Van); 338 urlInvitacion, TipoEvento.Van);
327 339
328 var evento = DefaultEventoRepository.GetActivos().Single(e => e.Titulo == "Html 5"); 340 var evento = DefaultEventoRepository.GetActivos().Single(e => e.Titulo == "Html 5");
329 341
330 agenda.Cancelar(evento.Id); 342 agenda.Cancelar(evento.Id);
340 var publicador1 = new Mock<IPublicador>(); 352 var publicador1 = new Mock<IPublicador>();
341 353
342 var agenda = new Agenda(publicador1.Object, DefaultEventoRepository, DefaultPersonaRepository); 354 var agenda = new Agenda(publicador1.Object, DefaultEventoRepository, DefaultPersonaRepository);
343 var fechaInicio = DateTime.MinValue.ToUniversalTime(); 355 var fechaInicio = DateTime.MinValue.ToUniversalTime();
344 var fechaTermino = fechaInicio.AddHours(2); 356 var fechaTermino = fechaInicio.AddHours(2);
345 agenda.Agendar("Html 5", TestsHelper.GetOrCreatePonente("jjmontes"), fechaInicio, fechaTermino, 357 agenda.Agendar("Html 5", new[]{TestsHelper.GetOrCreatePonente("jjmontes")}, fechaInicio, fechaTermino,
346 urlInvitacion, TipoEvento.Van); 358 urlInvitacion, TipoEvento.Van);
347 359
348 var evento = DefaultEventoRepository.GetActivos().Single(e => e.Titulo == "Html 5"); 360 var evento = DefaultEventoRepository.GetActivos().Single(e => e.Titulo == "Html 5");
349 361
350 agenda.Cancelar(evento.Id); 362 agenda.Cancelar(evento.Id);
361 var publicador1 = new Mock<IPublicador>(); 373 var publicador1 = new Mock<IPublicador>();
362 374
363 var agenda = new Agenda(publicador1.Object, DefaultEventoRepository, DefaultPersonaRepository); 375 var agenda = new Agenda(publicador1.Object, DefaultEventoRepository, DefaultPersonaRepository);
364 var fechaInicio = DateTime.MinValue.ToUniversalTime(); 376 var fechaInicio = DateTime.MinValue.ToUniversalTime();
365 var fechaTermino = fechaInicio.AddHours(2); 377 var fechaTermino = fechaInicio.AddHours(2);
366 agenda.Agendar("Html 5", TestsHelper.GetOrCreatePonente("jjmontes"), fechaInicio, fechaTermino, 378 agenda.Agendar("Html 5", new[]{TestsHelper.GetOrCreatePonente("jjmontes")}, fechaInicio, fechaTermino,
367 urlInvitacion, TipoEvento.Van); 379 urlInvitacion, TipoEvento.Van);
368 380
369 var evento = DefaultEventoRepository.GetActivos().Single(e => e.Titulo == "Html 5"); 381 var evento = DefaultEventoRepository.GetActivos().Single(e => e.Titulo == "Html 5");
370 382
371 agenda.Confirmar(evento.Id); 383 agenda.Confirmar(evento.Id);
382 var publicador1 = new Mock<IPublicador>(); 394 var publicador1 = new Mock<IPublicador>();
383 395
384 var agenda = new Agenda(publicador1.Object, DefaultEventoRepository, DefaultPersonaRepository); 396 var agenda = new Agenda(publicador1.Object, DefaultEventoRepository, DefaultPersonaRepository);
385 var fechaInicio = DateTime.MinValue.ToUniversalTime(); 397 var fechaInicio = DateTime.MinValue.ToUniversalTime();
386 var fechaTermino = fechaInicio.AddHours(2); 398 var fechaTermino = fechaInicio.AddHours(2);
387 agenda.Agendar("Html 5", TestsHelper.GetOrCreatePonente("jjmontes"), fechaInicio, fechaTermino, urlInvitacion, 399 agenda.Agendar("Html 5", new[]{TestsHelper.GetOrCreatePonente("jjmontes")}, fechaInicio, fechaTermino, urlInvitacion,
388 TipoEvento.Van); 400 TipoEvento.Van);
389 401
390 var evento = DefaultEventoRepository.GetActivos().Single(e => e.Titulo == "Html 5"); 402 var evento = DefaultEventoRepository.GetActivos().Single(e => e.Titulo == "Html 5");
391 403
392 agenda.Confirmar(evento.Id); 404 agenda.Confirmar(evento.Id);
404 var publicador1 = new Mock<IPublicador>(); 416 var publicador1 = new Mock<IPublicador>();
405 417
406 var agenda = new Agenda(publicador1.Object, DefaultEventoRepository, DefaultPersonaRepository); 418 var agenda = new Agenda(publicador1.Object, DefaultEventoRepository, DefaultPersonaRepository);
407 var fechaInicio = DateTime.MinValue.ToUniversalTime(); 419 var fechaInicio = DateTime.MinValue.ToUniversalTime();
408 var fechaTermino = fechaInicio.AddHours(2); 420 var fechaTermino = fechaInicio.AddHours(2);
409 agenda.Agendar("Html 5", TestsHelper.GetOrCreatePonente("jjmontes"), fechaInicio, fechaTermino, urlInvitacion, 421 agenda.Agendar("Html 5", new[]{TestsHelper.GetOrCreatePonente("jjmontes")}, fechaInicio, fechaTermino, urlInvitacion,
410 TipoEvento.Van); 422 TipoEvento.Van);
411 423
412 var evento = DefaultEventoRepository.GetActivos().Single(e => e.Titulo == "Html 5"); 424 var evento = DefaultEventoRepository.GetActivos().Single(e => e.Titulo == "Html 5");
413 agenda.Confirmar(evento.Id); 425 agenda.Confirmar(evento.Id);
414 426
424 public void Al_confirmar_sin_agendar_debe_lanzarse_excepcion() 436 public void Al_confirmar_sin_agendar_debe_lanzarse_excepcion()
425 { 437 {
426 var publicador1 = new Mock<IPublicador>(); 438 var publicador1 = new Mock<IPublicador>();
427 439
428 var agenda = new Agenda(publicador1.Object, DefaultEventoRepository, DefaultPersonaRepository); 440 var agenda = new Agenda(publicador1.Object, DefaultEventoRepository, DefaultPersonaRepository);
429 agenda.Proponer("Html 5", TestsHelper.GetOrCreatePonente("jjmontes"), urlInvitacion, TipoEvento.Van); 441 agenda.Proponer("Html 5", new[]{TestsHelper.GetOrCreatePonente("jjmontes")}, urlInvitacion, TipoEvento.Van);
430 442
431 var evento = 443 var evento =
432 DefaultEventoRepository.GetByState(EventoPropuestoState.GetInstance()).Single(e => e.Titulo == "Html 5"); 444 DefaultEventoRepository.GetByState(EventoPropuestoState.GetInstance()).Single(e => e.Titulo == "Html 5");
433 445
434 Assert.IsFalse(evento.Estado.GetType() == typeof(EventoAgendadoState)); 446 Assert.IsFalse(evento.Estado.GetType() == typeof(EventoAgendadoState));
443 const string urlWiki = "http://www.altnethispano.org/wiki/van-2010-10-21-mono-cecil.ashx"; 455 const string urlWiki = "http://www.altnethispano.org/wiki/van-2010-10-21-mono-cecil.ashx";
444 var duracion = new TimeSpan(1, 34, 00); 456 var duracion = new TimeSpan(1, 34, 00);
445 var publicador1 = new Mock<IPublicador>(); 457 var publicador1 = new Mock<IPublicador>();
446 458
447 var agenda = new Agenda(publicador1.Object, DefaultEventoRepository, DefaultPersonaRepository); 459 var agenda = new Agenda(publicador1.Object, DefaultEventoRepository, DefaultPersonaRepository);
448 agenda.Proponer("Html 5", TestsHelper.GetOrCreatePonente("jjmontes"), urlInvitacion, TipoEvento.Van); 460 agenda.Proponer("Html 5", new[]{TestsHelper.GetOrCreatePonente("jjmontes")}, urlInvitacion, TipoEvento.Van);
449 461
450 var evento = 462 var evento =
451 DefaultEventoRepository.GetByState(EventoPropuestoState.GetInstance()).Single(e => e.Titulo == "Html 5"); 463 DefaultEventoRepository.GetByState(EventoPropuestoState.GetInstance()).Single(e => e.Titulo == "Html 5");
452 464
453 Assert.IsFalse(evento.Estado.GetType() == typeof(EventoConfirmadoState)); 465 Assert.IsFalse(evento.Estado.GetType() == typeof(EventoConfirmadoState));
461 var publicador1 = new Mock<IPublicador>(); 473 var publicador1 = new Mock<IPublicador>();
462 474
463 var agenda = new Agenda(publicador1.Object, DefaultEventoRepository, DefaultPersonaRepository); 475 var agenda = new Agenda(publicador1.Object, DefaultEventoRepository, DefaultPersonaRepository);
464 var fechaInicio = DateTime.MinValue.ToUniversalTime(); 476 var fechaInicio = DateTime.MinValue.ToUniversalTime();
465 var fechaTermino = fechaInicio.AddHours(2); 477 var fechaTermino = fechaInicio.AddHours(2);
466 agenda.Agendar("Html 5", TestsHelper.GetOrCreatePonente("jjmontes"), fechaInicio, fechaTermino, 478 agenda.Agendar("Html 5", new[]{TestsHelper.GetOrCreatePonente("jjmontes")}, fechaInicio, fechaTermino,
467 urlInvitacion, TipoEvento.Van); 479 urlInvitacion, TipoEvento.Van);
468 480
469 var evento = DefaultEventoRepository.GetActivos().Single(e => e.Titulo == "Html 5"); 481 var evento = DefaultEventoRepository.GetActivos().Single(e => e.Titulo == "Html 5");
470 agenda.Confirmar(evento.Id); 482 agenda.Confirmar(evento.Id);
471 483
482 var publicador1 = new Mock<IPublicador>(); 494 var publicador1 = new Mock<IPublicador>();
483 495
484 var agenda = new Agenda(publicador1.Object, DefaultEventoRepository, DefaultPersonaRepository); 496 var agenda = new Agenda(publicador1.Object, DefaultEventoRepository, DefaultPersonaRepository);
485 var fechaInicio = DateTime.MinValue.ToUniversalTime(); 497 var fechaInicio = DateTime.MinValue.ToUniversalTime();
486 var fechaTermino = fechaInicio.AddHours(2); 498 var fechaTermino = fechaInicio.AddHours(2);
487 agenda.Agendar("Html 5", TestsHelper.GetOrCreatePonente("jjmontes"), fechaInicio, fechaTermino, 499 agenda.Agendar("Html 5", new[]{TestsHelper.GetOrCreatePonente("jjmontes")}, fechaInicio, fechaTermino,
488 urlInvitacion, TipoEvento.Van); 500 urlInvitacion, TipoEvento.Van);
489 501
490 var evento = DefaultEventoRepository.GetActivos().Single(e => e.Titulo == "Html 5"); 502 var evento = DefaultEventoRepository.GetActivos().Single(e => e.Titulo == "Html 5");
491 agenda.Confirmar(evento.Id); 503 agenda.Confirmar(evento.Id);
492 504
501 var publicador1 = new Mock<IPublicador>(); 513 var publicador1 = new Mock<IPublicador>();
502 514
503 var agenda = new Agenda(publicador1.Object, DefaultEventoRepository, DefaultPersonaRepository); 515 var agenda = new Agenda(publicador1.Object, DefaultEventoRepository, DefaultPersonaRepository);
504 var fechaInicio = DateTime.MinValue.ToUniversalTime(); 516 var fechaInicio = DateTime.MinValue.ToUniversalTime();
505 var fechaTermino = fechaInicio.AddHours(2); 517 var fechaTermino = fechaInicio.AddHours(2);
506 agenda.Agendar("Html 5", TestsHelper.GetOrCreatePonente("jjmontes"), fechaInicio, fechaTermino, urlInvitacion, 518 agenda.Agendar("Html 5", new[]{TestsHelper.GetOrCreatePonente("jjmontes")}, fechaInicio, fechaTermino, urlInvitacion,
507 TipoEvento.Van); 519 TipoEvento.Van);
508 520
509 var evento = DefaultEventoRepository.GetActivos().Single(e => e.Titulo == "Html 5"); 521 var evento = DefaultEventoRepository.GetActivos().Single(e => e.Titulo == "Html 5");
510 agenda.Confirmar(evento.Id); 522 agenda.Confirmar(evento.Id);
511 523
519 var publicador1 = new Mock<IPublicador>(); 531 var publicador1 = new Mock<IPublicador>();
520 var agenda = new Agenda(publicador1.Object, DefaultEventoRepository, DefaultPersonaRepository); 532 var agenda = new Agenda(publicador1.Object, DefaultEventoRepository, DefaultPersonaRepository);
521 var fechaInicio = new DateTime(2011, 7, 1, 18, 00, 00); 533 var fechaInicio = new DateTime(2011, 7, 1, 18, 00, 00);
522 var fechaTermino = fechaInicio.AddHours(2); 534 var fechaTermino = fechaInicio.AddHours(2);
523 535
524 var r = agenda.Agendar("Conceptos de HTTP y Fiddler web debugger", TestsHelper.GetOrCreatePonente("jjmontes"), fechaInicio, 536 var r = agenda.Agendar("Conceptos de HTTP y Fiddler web debugger", new[]{TestsHelper.GetOrCreatePonente("jjmontes")}, fechaInicio,
525 fechaTermino, string.Empty, TipoEvento.Van); 537 fechaTermino, string.Empty, TipoEvento.Van);
526 Assert.IsTrue(r.Succeful); 538 Assert.IsTrue(r.Succeful);
527 539
528 fechaInicio = new DateTime(2011, 7, 1, 05, 00, 00); 540 fechaInicio = new DateTime(2011, 7, 1, 05, 00, 00);
529 fechaTermino = fechaInicio.AddHours(2); 541 fechaTermino = fechaInicio.AddHours(2);
530 r = agenda.Agendar("Una primer van que NO se superpone", 542 r = agenda.Agendar("Una primer van que NO se superpone",
531 TestsHelper.GetOrCreatePonente("jjmontes"), 543 new[]{TestsHelper.GetOrCreatePonente("jjmontes")},
532 fechaInicio, 544 fechaInicio,
533 fechaTermino, string.Empty, TipoEvento.Van); 545 fechaTermino, string.Empty, TipoEvento.Van);
534 Assert.IsTrue(r.Succeful); 546 Assert.IsTrue(r.Succeful);
535 547
536 r = agenda.Agendar("Otra van que se superpone", 548 r = agenda.Agendar("Otra van que se superpone",
537 TestsHelper.GetOrCreatePonente("jjmontes"), 549 new[]{TestsHelper.GetOrCreatePonente("jjmontes")},
538 fechaInicio, 550 fechaInicio,
539 fechaTermino, string.Empty, TipoEvento.Van); 551 fechaTermino, string.Empty, TipoEvento.Van);
540 Assert.IsFalse(r.Succeful); 552 Assert.IsFalse(r.Succeful);
541 553
542 fechaInicio = new DateTime(2011, 7, 1, 17, 00, 00); 554 fechaInicio = new DateTime(2011, 7, 1, 17, 00, 00);
543 fechaTermino = fechaInicio.AddHours(2); 555 fechaTermino = fechaInicio.AddHours(2);
544 r = agenda.Agendar("Otra van que se superpone", 556 r = agenda.Agendar("Otra van que se superpone",
545 TestsHelper.GetOrCreatePonente("jjmontes"), 557 new[]{TestsHelper.GetOrCreatePonente("jjmontes")},
546 fechaInicio, 558 fechaInicio,
547 fechaTermino, string.Empty, TipoEvento.Van); 559 fechaTermino, string.Empty, TipoEvento.Van);
548 Assert.IsFalse(r.Succeful); 560 Assert.IsFalse(r.Succeful);
549 561
550 fechaInicio = new DateTime(2011, 7, 1, 19, 00, 00); 562 fechaInicio = new DateTime(2011, 7, 1, 19, 00, 00);
551 fechaTermino = fechaInicio.AddHours(2); 563 fechaTermino = fechaInicio.AddHours(2);
552 r = agenda.Agendar("Otra van que se superpone", 564 r = agenda.Agendar("Otra van que se superpone",
553 TestsHelper.GetOrCreatePonente("jjmontes"), 565 new[]{TestsHelper.GetOrCreatePonente("jjmontes")},
554 fechaInicio, 566 fechaInicio,
555 fechaTermino, string.Empty, TipoEvento.Van); 567 fechaTermino, string.Empty, TipoEvento.Van);
556 Assert.IsFalse(r.Succeful); 568 Assert.IsFalse(r.Succeful);
557 569
558 fechaInicio = new DateTime(2011, 7, 1, 21, 00, 00); 570 fechaInicio = new DateTime(2011, 7, 1, 21, 00, 00);
559 fechaTermino = fechaInicio.AddHours(2); 571 fechaTermino = fechaInicio.AddHours(2);
560 r = agenda.Agendar("Una segunda van que NO se superpone", 572 r = agenda.Agendar("Una segunda van que NO se superpone",
561 TestsHelper.GetOrCreatePonente("jjmontes"), 573 new[]{TestsHelper.GetOrCreatePonente("jjmontes")},
562 fechaInicio, 574 fechaInicio,
563 fechaTermino, string.Empty, TipoEvento.Van); 575 fechaTermino, string.Empty, TipoEvento.Van);
564 Assert.IsTrue(r.Succeful); 576 Assert.IsTrue(r.Succeful);
565 } 577 }
566 578
570 var publicador1 = new Mock<IPublicador>(); 582 var publicador1 = new Mock<IPublicador>();
571 var agenda = new Agenda(publicador1.Object, DefaultEventoRepository, DefaultPersonaRepository); 583 var agenda = new Agenda(publicador1.Object, DefaultEventoRepository, DefaultPersonaRepository);
572 var fechaInicio = new DateTime(2011, 7, 1, 18, 00, 00); 584 var fechaInicio = new DateTime(2011, 7, 1, 18, 00, 00);
573 var fechaTermino = fechaInicio.AddHours(2); 585 var fechaTermino = fechaInicio.AddHours(2);
574 586
575 agenda.Agendar("Conceptos de HTTP y Fiddler web debugger", TestsHelper.GetOrCreatePonente("jjmontes"), fechaInicio, 587 agenda.Agendar("Conceptos de HTTP y Fiddler web debugger", new[]{TestsHelper.GetOrCreatePonente("jjmontes")}, fechaInicio,
576 fechaTermino, string.Empty, TipoEvento.Van); 588 fechaTermino, string.Empty, TipoEvento.Van);
577 589
578 agenda.Proponer("Otra van que se superpone", TestsHelper.GetOrCreatePonente("jjmontes"), string.Empty, TipoEvento.Van); 590 agenda.Proponer("Otra van que se superpone", new[]{TestsHelper.GetOrCreatePonente("jjmontes")}, string.Empty, TipoEvento.Van);
579 var eventoPropuesto = DefaultEventoRepository.GetPropuestaByTitulo("Otra van que se superpone"); 591 var eventoPropuesto = DefaultEventoRepository.GetPropuestaByTitulo("Otra van que se superpone");
580 Assert.IsNotNull(eventoPropuesto); 592 Assert.IsNotNull(eventoPropuesto);
581 Assert.IsNull(eventoPropuesto.FechaInicio); 593 Assert.IsNull(eventoPropuesto.FechaInicio);
582 Assert.IsNull(eventoPropuesto.FechaTermino); 594 Assert.IsNull(eventoPropuesto.FechaTermino);
583 var r = agenda.Agendar("Otra van que se superpone", 595 var r = agenda.Agendar("Otra van que se superpone",
584 TestsHelper.GetOrCreatePonente("jjmontes"), 596 new[]{TestsHelper.GetOrCreatePonente("jjmontes")},
585 fechaInicio, 597 fechaInicio,
586 fechaTermino, string.Empty, TipoEvento.Van); 598 fechaTermino, string.Empty, TipoEvento.Van);
587 Assert.IsFalse(r.Succeful); 599 Assert.IsFalse(r.Succeful);
588 600
589 Assert.IsNotNull(eventoPropuesto); 601 Assert.IsNotNull(eventoPropuesto);
597 var publicador1 = new Mock<IPublicador>(); 609 var publicador1 = new Mock<IPublicador>();
598 var agenda = new Agenda(publicador1.Object, DefaultEventoRepository, DefaultPersonaRepository); 610 var agenda = new Agenda(publicador1.Object, DefaultEventoRepository, DefaultPersonaRepository);
599 var fechaInicio = new DateTime(2011, 8, 20, 18, 00, 00); 611 var fechaInicio = new DateTime(2011, 8, 20, 18, 00, 00);
600 var fechaTermino = fechaInicio.AddHours(2); 612 var fechaTermino = fechaInicio.AddHours(2);
601 613
602 var r = agenda.Agendar("Conceptos de HTTP y Fiddler web debugger", TestsHelper.GetOrCreatePonente("jjmontes"), fechaInicio, 614 var r = agenda.Agendar("Conceptos de HTTP y Fiddler web debugger", new[]{TestsHelper.GetOrCreatePonente("jjmontes")}, fechaInicio,
603 fechaTermino, string.Empty, TipoEvento.Van); 615 fechaTermino, string.Empty, TipoEvento.Van);
604 Assert.IsTrue(r.Succeful); 616 Assert.IsTrue(r.Succeful);
605 617
606 fechaInicio = new DateTime(2011, 8, 27, 05, 00, 00); 618 fechaInicio = new DateTime(2011, 8, 27, 05, 00, 00);
607 fechaTermino = fechaInicio.AddHours(2); 619 fechaTermino = fechaInicio.AddHours(2);
608 r = agenda.Agendar("Conceptos de HTTP y Fiddler web debugger", 620 r = agenda.Agendar("Conceptos de HTTP y Fiddler web debugger",
609 TestsHelper.GetOrCreatePonente("alabra"), 621 new[]{TestsHelper.GetOrCreatePonente("alabra")},
610 fechaInicio, 622 fechaInicio,
611 fechaTermino, string.Empty, TipoEvento.Van); 623 fechaTermino, string.Empty, TipoEvento.Van);
612 624
613 Assert.IsFalse(r.Succeful); 625 Assert.IsFalse(r.Succeful);
614 } 626 }