Mercurial > altnet-hispano
changeset 266:dba5d41bc7bf
BUG: Guardar persona con twitter ya existente genera error.
author | juanjose.montesdeocaarbos |
---|---|
date | Tue, 25 Oct 2011 23:22:10 -0300 |
parents | 5ddc574deeea |
children | 1ca7c39ad38b |
files | Agendas/trunk/src/Agendas.Domain/Services/PersonaService.cs Agendas/trunk/src/Agendas.Tests/PersonaServiceTests.cs |
diffstat | 2 files changed, 28 insertions(+), 1 deletions(-) [+] |
line wrap: on
line diff
--- 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;
--- 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;