comparison Agendas/trunk/src/Agendas.Tests/AgendarTests.cs @ 169:5c94b052d838

Ticket 153: UI de Publicar. Faltaba la DuraciĆ³n del evento en la capa de negocios.
author juanjose.montesdeocaarbos
date Sat, 06 Aug 2011 12:41:46 -0300
parents c1062de96845
children 2d02adb79322
comparison
equal deleted inserted replaced
168:97e51ddeeb58 169:5c94b052d838
286 } 286 }
287 287
288 [Test] 288 [Test]
289 public void Al_publicar_un_evento_debe_quedar_con_estado_EventoPublicadoState_y_debe_generar_el_track_correspondiente() 289 public void Al_publicar_un_evento_debe_quedar_con_estado_EventoPublicadoState_y_debe_generar_el_track_correspondiente()
290 { 290 {
291 const string urlWiki = "http://www.altnethispano.org/wiki/van-2010-10-21-mono-cecil.ashx"; 291 const string urlWiki = "http://www.altnethispano.org/wiki/van-2010-10-21-mono-cecil.ashx";
292 var duracion = new TimeSpan(1, 34, 00);
292 var publicador1 = new Mock<IPublicador>(); 293 var publicador1 = new Mock<IPublicador>();
293 294
294 var agenda = new Agenda(publicador1.Object, DefaultEventoRepository, DefaultPersonaRepository, DefaultPatrocinadorRepository); 295 var agenda = new Agenda(publicador1.Object, DefaultEventoRepository, DefaultPersonaRepository, DefaultPatrocinadorRepository);
295 agenda.Agendar("Html 5", TestsHelper.GetOrCreatePonente("jjmontes"), DateTime.MinValue, urlInvitacion, TipoEvento.Van); 296 agenda.Agendar("Html 5", TestsHelper.GetOrCreatePonente("jjmontes"), DateTime.MinValue, urlInvitacion, TipoEvento.Van);
296 297
297 var evento = DefaultEventoRepository.GetActivos().Single(e => e.Titulo == "Html 5"); 298 var evento = DefaultEventoRepository.GetActivos().Single(e => e.Titulo == "Html 5");
298 299
299 agenda.Confirmar(evento.Id); 300 agenda.Confirmar(evento.Id);
300 agenda.Publicar(evento.Id, 1, urlWiki); 301 agenda.Publicar(evento.Id, 1, urlWiki, duracion);
301 302
302 Assert.IsInstanceOf(typeof(EventoPublicadoState), evento.Estado); 303 Assert.IsInstanceOf(typeof(EventoPublicadoState), evento.Estado);
303 Assert.That(evento.GetTrackNews().Count(t => t.Accion == Accion.Publicar) == 1); 304 Assert.That(evento.GetTrackNews().Count(t => t.Accion == Accion.Publicar) == 1);
304 } 305 }
305 306
306 [Test] 307 [Test]
307 public void Al_publicar_un_evento_debe_asignarse_el_nro_de_reunion_y_la_url_de_la_wiki() 308 public void Al_publicar_un_evento_debe_asignarse_el_nro_de_reunion_la_url_de_la_wiki_y_la_duracion()
308 { 309 {
310 const string urlWiki = "http://www.altnethispano.org/wiki/van-2010-10-21-mono-cecil.ashx";
311 var duracion = new TimeSpan(1, 34, 00);
309 var publicador1 = new Mock<IPublicador>(); 312 var publicador1 = new Mock<IPublicador>();
310 313
311 var agenda = new Agenda(publicador1.Object, DefaultEventoRepository, DefaultPersonaRepository, DefaultPatrocinadorRepository); 314 var agenda = new Agenda(publicador1.Object, DefaultEventoRepository, DefaultPersonaRepository, DefaultPatrocinadorRepository);
312 agenda.Agendar("Html 5", TestsHelper.GetOrCreatePonente("jjmontes"), DateTime.MinValue, urlInvitacion, TipoEvento.Van); 315 agenda.Agendar("Html 5", TestsHelper.GetOrCreatePonente("jjmontes"), DateTime.MinValue, urlInvitacion, TipoEvento.Van);
313 316
314 var evento = DefaultEventoRepository.GetActivos().Single(e => e.Titulo == "Html 5"); 317 var evento = DefaultEventoRepository.GetActivos().Single(e => e.Titulo == "Html 5");
315 agenda.Confirmar(evento.Id); 318 agenda.Confirmar(evento.Id);
316 319
317 const string urlWiki = "http://www.altnethispano.org/wiki/van-2010-10-21-mono-cecil.ashx"; 320 agenda.Publicar(evento.Id, 71, urlWiki, duracion);
318 agenda.Publicar(evento.Id, 71, urlWiki);
319 321
320 Assert.AreEqual(71, evento.NumeroOrden); 322 Assert.AreEqual(71, evento.NumeroOrden);
321 Assert.AreEqual(urlWiki, evento.UrlWiki); 323 Assert.AreEqual(urlWiki, evento.UrlWiki);
324 Assert.AreEqual(duracion, evento.Duracion);
322 } 325 }
323 326
324 [Test] 327 [Test]
325 [ExpectedException(typeof(AccionNoSoportadaException))] 328 [ExpectedException(typeof(AccionNoSoportadaException))]
326 public void Al_confirmar_sin_agendar_debe_lanzarse_excepcion() 329 public void Al_confirmar_sin_agendar_debe_lanzarse_excepcion()
340 343
341 [Test] 344 [Test]
342 [ExpectedException(typeof(AccionNoSoportadaException))] 345 [ExpectedException(typeof(AccionNoSoportadaException))]
343 public void Al_publicar_sin_confirmar_debe_lanzarse_excepcion() 346 public void Al_publicar_sin_confirmar_debe_lanzarse_excepcion()
344 { 347 {
348 const string urlWiki = "http://www.altnethispano.org/wiki/van-2010-10-21-mono-cecil.ashx";
349 var duracion = new TimeSpan(1, 34, 00);
345 var publicador1 = new Mock<IPublicador>(); 350 var publicador1 = new Mock<IPublicador>();
346 351
347 var agenda = new Agenda(publicador1.Object, DefaultEventoRepository, DefaultPersonaRepository, DefaultPatrocinadorRepository); 352 var agenda = new Agenda(publicador1.Object, DefaultEventoRepository, DefaultPersonaRepository, DefaultPatrocinadorRepository);
348 agenda.Proponer("Html 5", TestsHelper.GetOrCreatePonente("jjmontes"), urlInvitacion, TipoEvento.Van); 353 agenda.Proponer("Html 5", TestsHelper.GetOrCreatePonente("jjmontes"), urlInvitacion, TipoEvento.Van);
349 354
350 var evento = 355 var evento =
351 DefaultEventoRepository.GetByState(EventoPropuestoState.GetInstance()).Single(e => e.Titulo == "Html 5"); 356 DefaultEventoRepository.GetByState(EventoPropuestoState.GetInstance()).Single(e => e.Titulo == "Html 5");
352 357
353 Assert.IsFalse(evento.Estado.GetType() == typeof(EventoConfirmadoState)); 358 Assert.IsFalse(evento.Estado.GetType() == typeof(EventoConfirmadoState));
354 const string urlWiki = "http://www.altnethispano.org/wiki/van-2010-10-21-mono-cecil.ashx"; 359 agenda.Publicar(evento.Id, 1, urlWiki, duracion);
355 agenda.Publicar(evento.Id, 1, urlWiki);
356 } 360 }
357 361
358 [Test] 362 [Test]
359 public void Publicar_Evento_Con_NroOrden_Invalido_Genera_Excepcion() 363 public void Publicar_Evento_Con_NroOrden_Invalido_Genera_Excepcion()
360 { 364 {
365 var duracion = new TimeSpan(1, 34, 00);
361 var publicador1 = new Mock<IPublicador>(); 366 var publicador1 = new Mock<IPublicador>();
362 367
363 var agenda = new Agenda(publicador1.Object, DefaultEventoRepository, DefaultPersonaRepository, DefaultPatrocinadorRepository); 368 var agenda = new Agenda(publicador1.Object, DefaultEventoRepository, DefaultPersonaRepository, DefaultPatrocinadorRepository);
364 agenda.Agendar("Html 5", TestsHelper.GetOrCreatePonente("jjmontes"), DateTime.MinValue, urlInvitacion, TipoEvento.Van); 369 agenda.Agendar("Html 5", TestsHelper.GetOrCreatePonente("jjmontes"), DateTime.MinValue, urlInvitacion, TipoEvento.Van);
365 370
366 var evento = DefaultEventoRepository.GetActivos().Single(e => e.Titulo == "Html 5"); 371 var evento = DefaultEventoRepository.GetActivos().Single(e => e.Titulo == "Html 5");
367 agenda.Confirmar(evento.Id); 372 agenda.Confirmar(evento.Id);
368 373
369 const string urlWiki = "http://www.altnethispano.org/wiki/van-2010-10-21-mono-cecil.ashx"; 374 const string urlWiki = "http://www.altnethispano.org/wiki/van-2010-10-21-mono-cecil.ashx";
370 375
371 Assert.Throws<ArgumentOutOfRangeException>(() => agenda.Publicar(evento.Id, 0, urlWiki)); 376 Assert.Throws<ArgumentOutOfRangeException>(() => agenda.Publicar(evento.Id, 0, urlWiki, duracion));
372 Assert.Throws<ArgumentOutOfRangeException>(() => agenda.Publicar(evento.Id, -1, urlWiki)); 377 Assert.Throws<ArgumentOutOfRangeException>(() => agenda.Publicar(evento.Id, -1, urlWiki, duracion));
373 } 378 }
374 379
375 [Test] 380 [Test]
376 public void Publicar_Evento_Con_Url_Invalida_Genera_Excepcion() 381 public void Publicar_Evento_Con_Url_Invalida_Genera_Excepcion()
377 { 382 {
383 var duracion = new TimeSpan(1, 34, 00);
378 var publicador1 = new Mock<IPublicador>(); 384 var publicador1 = new Mock<IPublicador>();
379 385
380 var agenda = new Agenda(publicador1.Object, DefaultEventoRepository, DefaultPersonaRepository, DefaultPatrocinadorRepository); 386 var agenda = new Agenda(publicador1.Object, DefaultEventoRepository, DefaultPersonaRepository, DefaultPatrocinadorRepository);
381 agenda.Agendar("Html 5", TestsHelper.GetOrCreatePonente("jjmontes"), DateTime.MinValue, urlInvitacion, TipoEvento.Van); 387 agenda.Agendar("Html 5", TestsHelper.GetOrCreatePonente("jjmontes"), DateTime.MinValue, urlInvitacion, TipoEvento.Van);
382 388
383 var evento = DefaultEventoRepository.GetActivos().Single(e => e.Titulo == "Html 5"); 389 var evento = DefaultEventoRepository.GetActivos().Single(e => e.Titulo == "Html 5");
384 agenda.Confirmar(evento.Id); 390 agenda.Confirmar(evento.Id);
385 391
386 Assert.Throws<ArgumentException>(() => agenda.Publicar(evento.Id, 1, "")); 392 Assert.Throws<ArgumentException>(() => agenda.Publicar(evento.Id, 1, "", duracion));
387 Assert.Throws<ArgumentException>(() => agenda.Publicar(evento.Id, 1, " ")); 393 Assert.Throws<ArgumentException>(() => agenda.Publicar(evento.Id, 1, " ", duracion));
388 } 394 }
389 } 395
396 [Test]
397 public void Publicar_Evento_Con_Duracion_Invalida_Genera_Excepcion()
398 {
399 const string urlWiki = "http://www.altnethispano.org/wiki/van-2010-10-21-mono-cecil.ashx";
400 var publicador1 = new Mock<IPublicador>();
401
402 var agenda = new Agenda(publicador1.Object, DefaultEventoRepository, DefaultPersonaRepository, DefaultPatrocinadorRepository);
403 agenda.Agendar("Html 5", TestsHelper.GetOrCreatePonente("jjmontes"), DateTime.MinValue, urlInvitacion, TipoEvento.Van);
404
405 var evento = DefaultEventoRepository.GetActivos().Single(e => e.Titulo == "Html 5");
406 agenda.Confirmar(evento.Id);
407
408 Assert.Throws<ArgumentOutOfRangeException>(() => agenda.Publicar(evento.Id, 1, urlWiki, new TimeSpan(0, 0, 0)));
409 Assert.Throws<ArgumentOutOfRangeException>(() => agenda.Publicar(evento.Id, 1, urlWiki, new TimeSpan(0, 0, 59)));
410 }
411 }
390 } 412 }