# HG changeset patch # User juanjose.montesdeocaarbos # Date 1319595730 10800 # Node ID dba5d41bc7bfe96f51595917b4c678eb1b39db4c # Parent 5ddc574deeea5c4f1b31290b13e56b2c49845e92 BUG: Guardar persona con twitter ya existente genera error. diff -r 5ddc574deeea -r dba5d41bc7bf Agendas/trunk/src/Agendas.Domain/Services/PersonaService.cs --- a/Agendas/trunk/src/Agendas.Domain/Services/PersonaService.cs Tue Oct 25 07:23:15 2011 -0300 +++ b/Agendas/trunk/src/Agendas.Domain/Services/PersonaService.cs Tue Oct 25 23:22:10 2011 -0300 @@ -124,7 +124,11 @@ if (twitter.StartsWith("@")) return new ResultadoAdd("No debe ingresar el arroba al escribir la cuenta de twitter."); - persona.Nombre = nombre; + persona = _personaRepository.GetByTwitter(twitter); + if (persona != null && !persona.Id.Equals(id)) + return new Resultado(false, string.Format("Ya existe una persona con el twitter {0}", twitter)); + + persona.Nombre = nombre; persona.Twitter = twitter; persona.Mail = mail; persona.Blog = blog; diff -r 5ddc574deeea -r dba5d41bc7bf Agendas/trunk/src/Agendas.Tests/PersonaServiceTests.cs --- a/Agendas/trunk/src/Agendas.Tests/PersonaServiceTests.cs Tue Oct 25 07:23:15 2011 -0300 +++ b/Agendas/trunk/src/Agendas.Tests/PersonaServiceTests.cs Tue Oct 25 23:22:10 2011 -0300 @@ -175,6 +175,29 @@ } [Test] + public void Modificar_persona_con_datos_existentes() + { + var personaRepository = DefaultPersonaRepository; + + var personaService = new PersonaService(personaRepository, DefaultEventoRepository); + var r = personaService.Add("Mariano Pauselli", "marianopauselli", string.Empty, string.Empty, null); + Assert.IsTrue(r.Succeful); + + r = personaService.Add("Juan José Montes de Oca Arbós", "jjmoa", string.Empty, string.Empty, null); + Assert.IsTrue(r.Succeful); + + var todas = personaService.GetAll(); + var personaNelo = todas.SingleOrDefault(p => p.Twitter == "marianopauselli"); + var personaJuan = todas.SingleOrDefault(p => p.Twitter == "jjmoa"); + Assert.IsNotNull(personaNelo); + Assert.IsNotNull(personaJuan); + + var resultUpdate = personaService.Update(personaJuan.Id, personaNelo.Nombre, personaNelo.Twitter, string.Empty, string.Empty, null); + Assert.IsFalse(resultUpdate.Succeful); + Assert.AreEqual("Ya existe una persona con el twitter marianopauselli", resultUpdate.Message); + } + + [Test] public void Eliminar_persona_no_asociado_van() { var personaRepository = DefaultPersonaRepository;