diff Agendas/trunk/src/Agendas.Tests/AgendarTests.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 5c94b052d838
children 03cf6a377ee8
line wrap: on
line diff
--- a/Agendas/trunk/src/Agendas.Tests/AgendarTests.cs	Mon Aug 08 22:32:12 2011 -0300
+++ b/Agendas/trunk/src/Agendas.Tests/AgendarTests.cs	Tue Aug 09 01:04:27 2011 -0400
@@ -31,8 +31,12 @@
 
 			var agenda = new Agenda(publicador.Object, repository.Object, DefaultPersonaRepository, DefaultPatrocinadorRepository);
 
-			Assert.Throws<Exception>(
-                () => agenda.Agendar("Van para publicar", TestsHelper.GetOrCreatePonente("jjmontes"), DateTime.Now, urlInvitacion, TipoEvento.Van));
+		    var fechaInicio = DateTime.Now.ToUniversalTime();
+		    var fechaTermino = fechaInicio.AddHours(2);
+		    Assert.Throws<Exception>(
+		        () =>
+		        agenda.Agendar("Van para publicar", TestsHelper.GetOrCreatePonente("jjmontes"), fechaInicio, fechaTermino,
+		                       urlInvitacion, TipoEvento.Van));
 			Assert.AreEqual(0, agenda.GetEventosActivos().Count);
 
 			publicador.Verify(p => p.Publicar(It.IsAny<IEnumerable<Track>>()), Times.Exactly(1));
@@ -49,9 +53,12 @@
 
 			var agenda = new Agenda(publicador.Object, repository.Object, DefaultPersonaRepository, DefaultPatrocinadorRepository);
 
-			Assert.Throws<IdentityContextNotConfiguredException>(
-				() => agenda.Agendar("Van para publicar", TestsHelper.GetOrCreatePonente("jjmontes"), DateTime.Now,
-		  urlInvitacion, TipoEvento.Van));
+		    var fechaInicio = DateTime.Now.ToUniversalTime();
+		    var fechaTermino = fechaInicio.AddHours(2);
+		    Assert.Throws<IdentityContextNotConfiguredException>(
+		        () =>
+		        agenda.Agendar("Van para publicar", TestsHelper.GetOrCreatePonente("jjmontes"), fechaInicio, fechaTermino,
+		                       urlInvitacion, TipoEvento.Van));
 			repository.Verify(p => p.Save(It.IsAny<Evento>()), Times.Exactly(0));
 		}
 
@@ -65,8 +72,12 @@
 
 			var agenda = new Agenda(publicador.Object, repository.Object, DefaultPersonaRepository, DefaultPatrocinadorRepository);
 
-			Assert.Throws<UsuarioNoAutenticadoException>(() => agenda.Agendar("Van para publicar", TestsHelper.GetOrCreatePonente("jjmontes"), DateTime.Now,
-		urlInvitacion, TipoEvento.Van));
+		    var fechaInicio = DateTime.Now.ToUniversalTime();
+		    var fechaTermino = fechaInicio.AddHours(2);
+		    Assert.Throws<UsuarioNoAutenticadoException>(
+		        () =>
+		        agenda.Agendar("Van para publicar", TestsHelper.GetOrCreatePonente("jjmontes"), fechaInicio, fechaTermino,
+		                       urlInvitacion, TipoEvento.Van));
 
 			publicador.Verify(p => p.Publicar(It.IsAny<IEnumerable<Track>>()), Times.Exactly(0));
 			repository.Verify(p => p.Save(It.IsAny<Evento>()), Times.Exactly(0));
@@ -77,8 +88,9 @@
 		{
 			var agenda = new Agenda(null, DefaultEventoRepository, DefaultPersonaRepository, DefaultPatrocinadorRepository);
 
-			var r = agenda.Agendar("Van para publicar", Guid.Empty, DateTime.Now,
-		urlInvitacion, TipoEvento.Van);
+		    var fechaInicio = DateTime.Now.ToUniversalTime();
+		    var fechaTermino = fechaInicio.AddHours(2);
+		    var r = agenda.Agendar("Van para publicar", Guid.Empty, fechaInicio, fechaTermino, urlInvitacion, TipoEvento.Van);
 
 			Assert.IsFalse(r.Succeful);
 		}
@@ -94,8 +106,10 @@
 			var agenda = new Agenda(new CompositePublicador(new[] { publicador1.Object, publicador2.Object }),
 															repository.Object, DefaultPersonaRepository, DefaultPatrocinadorRepository);
 
-			agenda.Agendar("Van para publicar", TestsHelper.GetOrCreatePonente("jjmontes"), DateTime.Now,
-		urlInvitacion, TipoEvento.Van);
+		    var fechaInicio = DateTime.Now.ToUniversalTime();
+		    var fechaTermino = fechaInicio.AddHours(2);
+		    agenda.Agendar("Van para publicar", TestsHelper.GetOrCreatePonente("jjmontes"), fechaInicio, fechaTermino,
+		                   urlInvitacion, TipoEvento.Van);
 
 			publicador1.Verify(p => p.Publicar(It.IsAny<IEnumerable<Track>>()), Times.Exactly(1));
 			publicador2.Verify(p => p.Publicar(It.IsAny<IEnumerable<Track>>()), Times.Exactly(1));
@@ -109,8 +123,10 @@
 
 			var agenda = new Agenda(publicador.Object, DefaultEventoRepository, DefaultPersonaRepository, DefaultPatrocinadorRepository);
 
-			agenda.Agendar("Van para publicar", TestsHelper.GetOrCreatePonente("jjmontes"), DateTime.Now,
-		urlInvitacion, TipoEvento.Van);
+		    var fechaInicio = DateTime.Now.ToUniversalTime();
+		    var fechaTermino = fechaInicio.AddHours(2);
+		    agenda.Agendar("Van para publicar", TestsHelper.GetOrCreatePonente("jjmontes"), fechaInicio, fechaTermino,
+		                   urlInvitacion, TipoEvento.Van);
 
 			Assert.AreEqual(0, agenda.GetEventosActivos(EventoPropuestoState.GetInstance()).Count);
 
@@ -131,29 +147,36 @@
 			var publicador = new Mock<IPublicador>();
 
 			var agenda = new Agenda(publicador.Object, repository, DefaultPersonaRepository, DefaultPatrocinadorRepository);
+		    var fechaInicioVanPublicar = DateTime.Now.ToUniversalTime();
+		    var fechaTerminoVanPublicar = fechaInicioVanPublicar.AddHours(2);
 
-			agenda.Agendar("Van para publicar", TestsHelper.GetOrCreatePonente("jjmontes"), DateTime.Now,
-		urlInvitacion, TipoEvento.Van);
+		    agenda.Agendar("Van para publicar", TestsHelper.GetOrCreatePonente("jjmontes"), fechaInicioVanPublicar,
+		                   fechaTerminoVanPublicar,
+		                   urlInvitacion, TipoEvento.Van);
 
 			publicador.Verify(p => p.Publicar(It.IsAny<IEnumerable<Track>>()), Times.Exactly(1));
 
 			var evento = repository.GetActivos().First();
 			Assert.AreNotEqual(Guid.Empty, evento.Id);
-			Assert.IsNotNull(evento.Fecha);
+			Assert.IsNotNull(evento.FechaInicio);
 
-			DateTime fecha = evento.Fecha.Value.AddDays(7);
-			agenda.ModificarEvento(evento.Id, "otro titulo", TestsHelper.GetOrCreatePonente("otro ponente"), fecha, urlInvitacion);
+			var fechaInicio = evento.FechaInicio.Value.AddDays(7);
+		    var fechaTermino = fechaInicio.AddHours(2);
+		    agenda.ModificarEvento(evento.Id, "otro titulo", TestsHelper.GetOrCreatePonente("otro ponente"), fechaInicio,
+		                           fechaTermino, urlInvitacion);
 
 			publicador.Verify(p => p.Publicar(It.IsAny<IEnumerable<Track>>()), Times.Exactly(2));
 
 			evento = repository.GetActivos().First();
 			Assert.AreEqual("otro titulo", evento.Titulo);
 			Assert.AreEqual("otro ponente", evento.Ponente.Nombre);
-			Assert.AreEqual(fecha, evento.Fecha);
+			Assert.AreEqual(fechaInicio, evento.FechaInicio);
 
 			var idEventoNoExistente = new Guid("99999999999999999999999999999999");
-			Assert.Throws<EventoNotFoundException>(
-				() => agenda.ModificarEvento(idEventoNoExistente, "algún título", TestsHelper.GetOrCreatePonente("un ponente"), DateTime.Now, urlInvitacion));
+		    Assert.Throws<EventoNotFoundException>(
+		        () =>
+		        agenda.ModificarEvento(idEventoNoExistente, "algún título", TestsHelper.GetOrCreatePonente("un ponente"),
+		                               DateTime.Now, DateTime.Now.AddHours(2), urlInvitacion));
 		}
 
 		[Test, Ignore("Por ahora no existe el concepto de recordar")]
@@ -165,8 +188,10 @@
 			var agenda = new Agenda(new CompositePublicador(new[] { publicador1.Object, publicador2.Object }),
 															DefaultEventoRepository, DefaultPersonaRepository, DefaultPatrocinadorRepository);
 
-			agenda.Agendar("Van para publicar", TestsHelper.GetOrCreatePonente("jjmontes"), DateTime.Now,
-		urlInvitacion, TipoEvento.Van);
+		    var fechaInicio = DateTime.Now.ToUniversalTime();
+		    var fechaTermino = fechaInicio.AddHours(2);
+		    agenda.Agendar("Van para publicar", TestsHelper.GetOrCreatePonente("jjmontes"), fechaInicio, fechaTermino,
+		                   urlInvitacion, TipoEvento.Van);
 
 			var van = agenda.GetEventosActivos().Single(v => v.Titulo == "Van para publicar");
 			//agenda.Recordar(van.Id);
@@ -192,7 +217,10 @@
 			var publicado = agenda.GetEventosActivos(EventoPropuestoState.GetInstance()).First();
 			Assert.AreEqual(1, publicado.Tracks.Count());
 
-			agenda.ModificarEvento(publicado.Id, "Html 5", TestsHelper.GetOrCreatePonente("jjmontes"), DateTime.Today.AddDays(5), urlInvitacion);
+		    var fechaInicio = DateTime.Today.AddDays(5).ToUniversalTime();
+		    var fechaTermino = fechaInicio.AddHours(2);
+		    agenda.ModificarEvento(publicado.Id, "Html 5", TestsHelper.GetOrCreatePonente("jjmontes"), fechaInicio,
+		                           fechaTermino, urlInvitacion);
 			Assert.AreEqual(0, agenda.GetEventosActivos(EventoPropuestoState.GetInstance()).Count);
 			Assert.AreEqual(1, agenda.GetEventosActivos(EventoAgendadoState.GetInstance()).Count);
 			Assert.AreEqual(1, agenda.GetEventosActivos().Count);
@@ -226,7 +254,10 @@
 			var publicador1 = new Mock<IPublicador>();
 
 			var agenda = new Agenda(publicador1.Object, DefaultEventoRepository, DefaultPersonaRepository, DefaultPatrocinadorRepository);
-			agenda.Agendar("Html 5", TestsHelper.GetOrCreatePonente("jjmontes"), DateTime.MinValue, urlInvitacion, TipoEvento.Van);
+		    var fechaInicio = DateTime.MinValue.ToUniversalTime();
+		    var fechatermino = fechaInicio.AddHours(2);
+		    agenda.Agendar("Html 5", TestsHelper.GetOrCreatePonente("jjmontes"), fechaInicio, fechatermino, urlInvitacion,
+		                   TipoEvento.Van);
 
 			var evento = DefaultEventoRepository.GetActivos().Single(e => e.Titulo == "Html 5");
 
@@ -240,7 +271,10 @@
             var publicador1 = new Mock<IPublicador>();
 
 			var agenda = new Agenda(publicador1.Object, DefaultEventoRepository, DefaultPersonaRepository, DefaultPatrocinadorRepository);
-            agenda.Agendar("Html 5", TestsHelper.GetOrCreatePonente("jjmontes"), DateTime.MinValue, urlInvitacion, TipoEvento.Van);
+            var fechaInicio = DateTime.MinValue.ToUniversalTime();
+            var fechaTermino = fechaInicio.AddHours(2);
+            agenda.Agendar("Html 5", TestsHelper.GetOrCreatePonente("jjmontes"), fechaInicio, fechaTermino,
+                           urlInvitacion, TipoEvento.Van);
 
             var evento = DefaultEventoRepository.GetActivos().Single(e => e.Titulo == "Html 5");
 
@@ -257,7 +291,10 @@
             var publicador1 = new Mock<IPublicador>();
 
 			var agenda = new Agenda(publicador1.Object, DefaultEventoRepository, DefaultPersonaRepository, DefaultPatrocinadorRepository);
-            agenda.Agendar("Html 5", TestsHelper.GetOrCreatePonente("jjmontes"), DateTime.MinValue, urlInvitacion, TipoEvento.Van);
+            var fechaInicio = DateTime.MinValue.ToUniversalTime();
+            var fechaTermino = fechaInicio.AddHours(2);
+            agenda.Agendar("Html 5", TestsHelper.GetOrCreatePonente("jjmontes"), fechaInicio, fechaTermino,
+                           urlInvitacion, TipoEvento.Van);
 
             var evento = DefaultEventoRepository.GetActivos().Single(e => e.Titulo == "Html 5");
 
@@ -275,7 +312,10 @@
 			var publicador1 = new Mock<IPublicador>();
 
 			var agenda = new Agenda(publicador1.Object, DefaultEventoRepository, DefaultPersonaRepository, DefaultPatrocinadorRepository);
-			agenda.Agendar("Html 5", TestsHelper.GetOrCreatePonente("jjmontes"), DateTime.MinValue, urlInvitacion, TipoEvento.Van);
+            var fechaInicio = DateTime.MinValue.ToUniversalTime();
+            var fechaTermino = fechaInicio.AddHours(2);
+            agenda.Agendar("Html 5", TestsHelper.GetOrCreatePonente("jjmontes"), fechaInicio, fechaTermino,
+                           urlInvitacion, TipoEvento.Van);
 
 			var evento = DefaultEventoRepository.GetActivos().Single(e => e.Titulo == "Html 5");
 
@@ -293,7 +333,10 @@
 			var publicador1 = new Mock<IPublicador>();
 
 			var agenda = new Agenda(publicador1.Object, DefaultEventoRepository, DefaultPersonaRepository, DefaultPatrocinadorRepository);
-			agenda.Agendar("Html 5", TestsHelper.GetOrCreatePonente("jjmontes"), DateTime.MinValue, urlInvitacion, TipoEvento.Van);
+		    var fechaInicio = DateTime.MinValue.ToUniversalTime();
+		    var fechaTermino = fechaInicio.AddHours(2);
+		    agenda.Agendar("Html 5", TestsHelper.GetOrCreatePonente("jjmontes"), fechaInicio, fechaTermino, urlInvitacion,
+		                   TipoEvento.Van);
 
 			var evento = DefaultEventoRepository.GetActivos().Single(e => e.Titulo == "Html 5");
 
@@ -312,7 +355,10 @@
 			var publicador1 = new Mock<IPublicador>();
 
 			var agenda = new Agenda(publicador1.Object, DefaultEventoRepository, DefaultPersonaRepository, DefaultPatrocinadorRepository);
-			agenda.Agendar("Html 5", TestsHelper.GetOrCreatePonente("jjmontes"), DateTime.MinValue, urlInvitacion, TipoEvento.Van);
+		    var fechaInicio = DateTime.MinValue.ToUniversalTime();
+		    var fechaTermino = fechaInicio.AddHours(2);
+		    agenda.Agendar("Html 5", TestsHelper.GetOrCreatePonente("jjmontes"), fechaInicio, fechaTermino, urlInvitacion,
+		                   TipoEvento.Van);
 
 			var evento = DefaultEventoRepository.GetActivos().Single(e => e.Titulo == "Html 5");
 			agenda.Confirmar(evento.Id);
@@ -366,7 +412,10 @@
             var publicador1 = new Mock<IPublicador>();
 
             var agenda = new Agenda(publicador1.Object, DefaultEventoRepository, DefaultPersonaRepository, DefaultPatrocinadorRepository);
-            agenda.Agendar("Html 5", TestsHelper.GetOrCreatePonente("jjmontes"), DateTime.MinValue, urlInvitacion, TipoEvento.Van);
+            var fechaInicio = DateTime.MinValue.ToUniversalTime();
+            var fechaTermino = fechaInicio.AddHours(2);
+            agenda.Agendar("Html 5", TestsHelper.GetOrCreatePonente("jjmontes"), fechaInicio, fechaTermino,
+                           urlInvitacion, TipoEvento.Van);
 
             var evento = DefaultEventoRepository.GetActivos().Single(e => e.Titulo == "Html 5");
             agenda.Confirmar(evento.Id);
@@ -384,7 +433,10 @@
             var publicador1 = new Mock<IPublicador>();
 
             var agenda = new Agenda(publicador1.Object, DefaultEventoRepository, DefaultPersonaRepository, DefaultPatrocinadorRepository);
-            agenda.Agendar("Html 5", TestsHelper.GetOrCreatePonente("jjmontes"), DateTime.MinValue, urlInvitacion, TipoEvento.Van);
+            var fechaInicio = DateTime.MinValue.ToUniversalTime();
+            var fechaTermino = fechaInicio.AddHours(2);
+            agenda.Agendar("Html 5", TestsHelper.GetOrCreatePonente("jjmontes"), fechaInicio, fechaTermino,
+                           urlInvitacion, TipoEvento.Van);
 
             var evento = DefaultEventoRepository.GetActivos().Single(e => e.Titulo == "Html 5");
             agenda.Confirmar(evento.Id);
@@ -400,7 +452,10 @@
 			var publicador1 = new Mock<IPublicador>();
 
 			var agenda = new Agenda(publicador1.Object, DefaultEventoRepository, DefaultPersonaRepository, DefaultPatrocinadorRepository);
-			agenda.Agendar("Html 5", TestsHelper.GetOrCreatePonente("jjmontes"), DateTime.MinValue, urlInvitacion, TipoEvento.Van);
+		    var fechaInicio = DateTime.MinValue.ToUniversalTime();
+		    var fechaTermino = fechaInicio.AddHours(2);
+		    agenda.Agendar("Html 5", TestsHelper.GetOrCreatePonente("jjmontes"), fechaInicio, fechaTermino, urlInvitacion,
+		                   TipoEvento.Van);
 
 			var evento = DefaultEventoRepository.GetActivos().Single(e => e.Titulo == "Html 5");
 			agenda.Confirmar(evento.Id);