# HG changeset patch # User juanjose.montesdeocaarbos # Date 1312592083 10800 # Node ID c1062de9684593489d3a1fe7edd00ddd56a23ea2 # Parent 4241a930cab2ae8e77ccaef51e31fac079c4b384 Al publicar una agenda el nroOrden debe ser mayor a cero y urlWiki no vacio. diff -r 4241a930cab2 -r c1062de96845 Agendas/trunk/src/Agendas.Domain/Agenda.cs --- a/Agendas/trunk/src/Agendas.Domain/Agenda.cs Fri Aug 05 21:39:37 2011 -0300 +++ b/Agendas/trunk/src/Agendas.Domain/Agenda.cs Fri Aug 05 21:54:43 2011 -0300 @@ -125,6 +125,12 @@ public Resultado Publicar(Guid eventoId, short numeroOrden, string urlWiki) { + if (numeroOrden <= 0) + throw new ArgumentOutOfRangeException("numeroOrden"); + + if (string.IsNullOrWhiteSpace(urlWiki)) + throw new ArgumentException("urlWiki"); + Evento evento = GetEvento(eventoId); evento.Publicar(numeroOrden, urlWiki); diff -r 4241a930cab2 -r c1062de96845 Agendas/trunk/src/Agendas.Tests/AgendarTests.cs --- a/Agendas/trunk/src/Agendas.Tests/AgendarTests.cs Fri Aug 05 21:39:37 2011 -0300 +++ b/Agendas/trunk/src/Agendas.Tests/AgendarTests.cs Fri Aug 05 21:54:43 2011 -0300 @@ -288,6 +288,7 @@ [Test] public void Al_publicar_un_evento_debe_quedar_con_estado_EventoPublicadoState_y_debe_generar_el_track_correspondiente() { + const string urlWiki = "http://www.altnethispano.org/wiki/van-2010-10-21-mono-cecil.ashx"; var publicador1 = new Mock(); var agenda = new Agenda(publicador1.Object, DefaultEventoRepository, DefaultPersonaRepository, DefaultPatrocinadorRepository); @@ -296,7 +297,7 @@ var evento = DefaultEventoRepository.GetActivos().Single(e => e.Titulo == "Html 5"); agenda.Confirmar(evento.Id); - agenda.Publicar(evento.Id, 0, string.Empty); + agenda.Publicar(evento.Id, 1, urlWiki); Assert.IsInstanceOf(typeof(EventoPublicadoState), evento.Estado); Assert.That(evento.GetTrackNews().Count(t => t.Accion == Accion.Publicar) == 1); @@ -350,8 +351,40 @@ DefaultEventoRepository.GetByState(EventoPropuestoState.GetInstance()).Single(e => e.Titulo == "Html 5"); Assert.IsFalse(evento.Estado.GetType() == typeof(EventoConfirmadoState)); - - agenda.Publicar(evento.Id, 0, string.Empty); + const string urlWiki = "http://www.altnethispano.org/wiki/van-2010-10-21-mono-cecil.ashx"; + agenda.Publicar(evento.Id, 1, urlWiki); } - } + + [Test] + public void Publicar_Evento_Con_NroOrden_Invalido_Genera_Excepcion() + { + var publicador1 = new Mock(); + + var agenda = new Agenda(publicador1.Object, DefaultEventoRepository, DefaultPersonaRepository, DefaultPatrocinadorRepository); + agenda.Agendar("Html 5", TestsHelper.GetOrCreatePonente("jjmontes"), DateTime.MinValue, urlInvitacion, TipoEvento.Van); + + var evento = DefaultEventoRepository.GetActivos().Single(e => e.Titulo == "Html 5"); + agenda.Confirmar(evento.Id); + + const string urlWiki = "http://www.altnethispano.org/wiki/van-2010-10-21-mono-cecil.ashx"; + + Assert.Throws(() => agenda.Publicar(evento.Id, 0, urlWiki)); + Assert.Throws(() => agenda.Publicar(evento.Id, -1, urlWiki)); + } + + [Test] + public void Publicar_Evento_Con_Url_Invalida_Genera_Excepcion() + { + var publicador1 = new Mock(); + + var agenda = new Agenda(publicador1.Object, DefaultEventoRepository, DefaultPersonaRepository, DefaultPatrocinadorRepository); + agenda.Agendar("Html 5", TestsHelper.GetOrCreatePonente("jjmontes"), DateTime.MinValue, urlInvitacion, TipoEvento.Van); + + var evento = DefaultEventoRepository.GetActivos().Single(e => e.Titulo == "Html 5"); + agenda.Confirmar(evento.Id); + + Assert.Throws(() => agenda.Publicar(evento.Id, 1, "")); + Assert.Throws(() => agenda.Publicar(evento.Id, 1, " ")); + } + } } \ No newline at end of file diff -r 4241a930cab2 -r c1062de96845 Agendas/trunk/src/Agendas.Tests/Workflows/Workflow.cs --- a/Agendas/trunk/src/Agendas.Tests/Workflows/Workflow.cs Fri Aug 05 21:39:37 2011 -0300 +++ b/Agendas/trunk/src/Agendas.Tests/Workflows/Workflow.cs Fri Aug 05 21:54:43 2011 -0300 @@ -36,7 +36,7 @@ public void Publicar(Guid eventoId) { - var resultado = _agenda.Publicar(eventoId, 0, string.Empty); + var resultado = _agenda.Publicar(eventoId, 1, "http://www.altnethispano.org/"); Assert.IsTrue(resultado.Succeful); } diff -r 4241a930cab2 -r c1062de96845 Agendas/trunk/src/Agendas.Tests/Workflows/WorkflowTests.cs --- a/Agendas/trunk/src/Agendas.Tests/Workflows/WorkflowTests.cs Fri Aug 05 21:39:37 2011 -0300 +++ b/Agendas/trunk/src/Agendas.Tests/Workflows/WorkflowTests.cs Fri Aug 05 21:54:43 2011 -0300 @@ -170,6 +170,8 @@ [Test] public void Proponer_agendar_confirmar_publicar() { + const string urlWiki = "http://www.altnethispano.org/wiki/van-2010-10-21-mono-cecil.ashx"; + _workflow.Proponer(); _workflow.Agendar(); diff -r 4241a930cab2 -r c1062de96845 Agendas/trunk/src/Agendas.Web/Controllers/HistoricoController.cs --- a/Agendas/trunk/src/Agendas.Web/Controllers/HistoricoController.cs Fri Aug 05 21:39:37 2011 -0300 +++ b/Agendas/trunk/src/Agendas.Web/Controllers/HistoricoController.cs Fri Aug 05 21:54:43 2011 -0300 @@ -24,7 +24,7 @@ Ponente = e.Ponente.Nombre, Numero = e.NumeroOrden.ToString(), Tipo = e.Tipo.ToString(), - Duracion = "0:00" + Duracion = "0:00" //TODO: e.GetEvento() } }; return View(model);