# HG changeset patch # User juanjose.montesdeocaarbos # Date 1317902977 10800 # Node ID 31fb96912d37f2cd8a67012a670d7902e6e44cbf # Parent 59f8fa2f835ea4d9c0ba60485d3d86550b93f842 Ticket 162: Publicaciones con Nro Orden repetido. diff -r 59f8fa2f835e -r 31fb96912d37 Agendas/trunk/src/Agendas.Domain/Agenda.cs --- a/Agendas/trunk/src/Agendas.Domain/Agenda.cs Thu Oct 06 08:13:05 2011 -0300 +++ b/Agendas/trunk/src/Agendas.Domain/Agenda.cs Thu Oct 06 09:09:37 2011 -0300 @@ -180,7 +180,12 @@ return new EventoResultado(false, "Url Wiki incorrecto", null); if (duracion.Hours.Equals(0) && duracion.Minutes.Equals(0)) - return new EventoResultado(false, "Duración fuera de rango", null); + return new EventoResultado(false, "Duración fuera de rango", null); + + if (_eventosRepository.GetByState(EventoPublicadoState.GetInstance()).Any(e => e.NumeroOrden.Equals(numeroOrden))) + { + return new EventoResultado(false, "El número de evento ya se encuentra en uso", null); + } Evento evento = GetEvento(eventoId); diff -r 59f8fa2f835e -r 31fb96912d37 Agendas/trunk/src/Agendas.Tests/PropuestasTests.cs --- a/Agendas/trunk/src/Agendas.Tests/PropuestasTests.cs Thu Oct 06 08:13:05 2011 -0300 +++ b/Agendas/trunk/src/Agendas.Tests/PropuestasTests.cs Thu Oct 06 09:09:37 2011 -0300 @@ -161,5 +161,48 @@ Assert.AreEqual(1, eventosPropuestos.Count); Assert.AreEqual(1, eventosAgendados.Count); } + + [Test] + public void Publicar_con_Nro_Duplicado() + { + var agenda = new Agenda(null, DefaultEventoRepository, DefaultPersonaRepository); + { + var fechaInicio = DateTime.Now.ToUniversalTime(); + var fechaTermino = fechaInicio.AddHours(2); + + agenda.Agendar("Van", new[] { TestsHelper.GetOrCreatePonente("jjmontes") }, fechaInicio, fechaTermino, + urlInvitacion, TipoEvento.Van); + { + IList eventosAgendado = agenda.GetEventosActivos(EventoAgendadoState.GetInstance()); + + var evento = eventosAgendado.FirstOrDefault(); + + agenda.Confirmar(evento.Id); + + var r = agenda.Publicar(evento.Id, 1, "http://www.url.com", new TimeSpan(1, 58, 0)); + + Assert.IsTrue(r.Succeful); + } + } + + { + var fechaInicio = DateTime.Now.AddDays(1).ToUniversalTime(); + var fechaTermino = fechaInicio.AddHours(2); + agenda.Agendar("Van 2", new[] { TestsHelper.GetOrCreatePonente("jjmontes") }, fechaInicio, fechaTermino, + urlInvitacion, TipoEvento.Van); + { + IList eventosAgendado = agenda.GetEventosActivos(EventoAgendadoState.GetInstance()); + + var evento = eventosAgendado.LastOrDefault(); + + agenda.Confirmar(evento.Id); + + var r = agenda.Publicar(evento.Id, 1, "http://www.url.com", new TimeSpan(1, 58, 0)); + + Assert.IsFalse(r.Succeful); + Assert.AreEqual("El número de evento ya se encuentra en uso", r.Message); + } + } + } } } \ No newline at end of file