comparison Agendas/trunk/src/Agendas.Tests/AgendarTests.cs @ 195:4d0b2552edb2

Ticket 170: Cuando se agenda o confirma un evento, verificar que no existan otros dentro del rango horario en que se desarrollarĂ¡ el evento actual.
author juanjose.montesdeocaarbos
date Sat, 13 Aug 2011 01:01:54 -0300
parents 03cf6a377ee8
children bb7a60c28d8d
comparison
equal deleted inserted replaced
194:21ad1c337c94 195:4d0b2552edb2
26 { 26 {
27 var publicador = new Mock<IPublicador>(); 27 var publicador = new Mock<IPublicador>();
28 var repository = new Mock<IEventoRepository>(); 28 var repository = new Mock<IEventoRepository>();
29 29
30 publicador.Setup(p => p.Publicar(It.IsAny<IEnumerable<Track>>())).Throws(new Exception("Error intencional")); 30 publicador.Setup(p => p.Publicar(It.IsAny<IEnumerable<Track>>())).Throws(new Exception("Error intencional"));
31 31 repository.Setup(r => r.GetActivos()).Returns(new List<Evento>());
32 var agenda = new Agenda(publicador.Object, repository.Object, DefaultPersonaRepository, DefaultPatrocinadorRepository); 32 var agenda = new Agenda(publicador.Object, repository.Object, DefaultPersonaRepository, DefaultPatrocinadorRepository);
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>(
100 { 100 {
101 var publicador1 = new Mock<IPublicador>(); 101 var publicador1 = new Mock<IPublicador>();
102 var publicador2 = new Mock<IPublicador>(); 102 var publicador2 = new Mock<IPublicador>();
103 103
104 var repository = new Mock<IEventoRepository>(); 104 var repository = new Mock<IEventoRepository>();
105 105 repository.Setup(r => r.GetActivos()).Returns(new List<Evento>());
106 var agenda = new Agenda(new CompositePublicador(new[] { publicador1.Object, publicador2.Object }), 106 var agenda = new Agenda(new CompositePublicador(new[] { publicador1.Object, publicador2.Object }),
107 repository.Object, DefaultPersonaRepository, DefaultPatrocinadorRepository); 107 repository.Object, DefaultPersonaRepository, DefaultPatrocinadorRepository);
108 108
109 var fechaInicio = DateTime.Now.ToUniversalTime(); 109 var fechaInicio = DateTime.Now.ToUniversalTime();
110 var fechaTermino = fechaInicio.AddHours(2); 110 var fechaTermino = fechaInicio.AddHours(2);
461 agenda.Confirmar(evento.Id); 461 agenda.Confirmar(evento.Id);
462 462
463 Assert.Throws<ArgumentOutOfRangeException>(() => agenda.Publicar(evento.Id, 1, urlWiki, new TimeSpan(0, 0, 0))); 463 Assert.Throws<ArgumentOutOfRangeException>(() => agenda.Publicar(evento.Id, 1, urlWiki, new TimeSpan(0, 0, 0)));
464 Assert.Throws<ArgumentOutOfRangeException>(() => agenda.Publicar(evento.Id, 1, urlWiki, new TimeSpan(0, 0, 59))); 464 Assert.Throws<ArgumentOutOfRangeException>(() => agenda.Publicar(evento.Id, 1, urlWiki, new TimeSpan(0, 0, 59)));
465 } 465 }
466
467 [Test]
468 public void Verificar_que_no_se_puedan_agendar_dos_eventos_para_el_mismo_intervalo()
469 {
470 var publicador1 = new Mock<IPublicador>();
471 var agenda = new Agenda(publicador1.Object, DefaultEventoRepository, DefaultPersonaRepository,
472 DefaultPatrocinadorRepository);
473 var fechaInicio = new DateTime(2011, 7, 1, 18, 00, 00);
474 var fechaTermino = fechaInicio.AddHours(2);
475
476 var r = agenda.Agendar("Conceptos de HTTP y Fiddler web debugger", TestsHelper.GetOrCreatePonente("jjmontes"), fechaInicio,
477 fechaTermino, string.Empty, TipoEvento.Van);
478 Assert.IsTrue(r.Succeful);
479
480 fechaInicio = new DateTime(2011, 7, 1, 05, 00, 00);
481 fechaTermino = fechaInicio.AddHours(2);
482 r = agenda.Agendar("Una primer van que NO se superpone",
483 TestsHelper.GetOrCreatePonente("jjmontes"),
484 fechaInicio,
485 fechaTermino, string.Empty, TipoEvento.Van);
486 Assert.IsTrue(r.Succeful);
487
488 r = agenda.Agendar("Otra van que se superpone",
489 TestsHelper.GetOrCreatePonente("jjmontes"),
490 fechaInicio,
491 fechaTermino, string.Empty, TipoEvento.Van);
492 Assert.IsFalse(r.Succeful);
493
494 fechaInicio = new DateTime(2011, 7, 1, 17, 00, 00);
495 fechaTermino = fechaInicio.AddHours(2);
496 r = agenda.Agendar("Otra van que se superpone",
497 TestsHelper.GetOrCreatePonente("jjmontes"),
498 fechaInicio,
499 fechaTermino, string.Empty, TipoEvento.Van);
500 Assert.IsFalse(r.Succeful);
501
502 fechaInicio = new DateTime(2011, 7, 1, 19, 00, 00);
503 fechaTermino = fechaInicio.AddHours(2);
504 r = agenda.Agendar("Otra van que se superpone",
505 TestsHelper.GetOrCreatePonente("jjmontes"),
506 fechaInicio,
507 fechaTermino, string.Empty, TipoEvento.Van);
508 Assert.IsFalse(r.Succeful);
509
510 fechaInicio = new DateTime(2011, 7, 1, 21, 00, 00);
511 fechaTermino = fechaInicio.AddHours(2);
512 r = agenda.Agendar("Una segunda van que NO se superpone",
513 TestsHelper.GetOrCreatePonente("jjmontes"),
514 fechaInicio,
515 fechaTermino, string.Empty, TipoEvento.Van);
516 Assert.IsTrue(r.Succeful);
517 }
466 } 518 }
467 } 519 }