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;