Mercurial > altnet-hispano
annotate Agendas/trunk/src/Agendas.Tests/PersonaServiceTests.cs @ 197:bfd472758bc3
Agregando validaciones para subir el Coverage.
author | juanjose.montesdeocaarbos |
---|---|
date | Sat, 13 Aug 2011 02:40:00 -0300 |
parents | 222362c29416 |
children | a36a76bd6ec3 |
rev | line source |
---|---|
197
bfd472758bc3
Agregando validaciones para subir el Coverage.
juanjose.montesdeocaarbos
parents:
180
diff
changeset
|
1 using System; |
bfd472758bc3
Agregando validaciones para subir el Coverage.
juanjose.montesdeocaarbos
parents:
180
diff
changeset
|
2 using System.Linq; |
94
db4b1e2cae49
Cambio del nombre de la clase Ponente a Persona
Nelo@Kenia.neluz.int
parents:
diff
changeset
|
3 using AltNetHispano.Agendas.Domain; |
db4b1e2cae49
Cambio del nombre de la clase Ponente a Persona
Nelo@Kenia.neluz.int
parents:
diff
changeset
|
4 using AltNetHispano.Agendas.Domain.Repositories; |
db4b1e2cae49
Cambio del nombre de la clase Ponente a Persona
Nelo@Kenia.neluz.int
parents:
diff
changeset
|
5 using AltNetHispano.Agendas.Domain.Services; |
db4b1e2cae49
Cambio del nombre de la clase Ponente a Persona
Nelo@Kenia.neluz.int
parents:
diff
changeset
|
6 using Moq; |
db4b1e2cae49
Cambio del nombre de la clase Ponente a Persona
Nelo@Kenia.neluz.int
parents:
diff
changeset
|
7 using NUnit.Framework; |
db4b1e2cae49
Cambio del nombre de la clase Ponente a Persona
Nelo@Kenia.neluz.int
parents:
diff
changeset
|
8 |
db4b1e2cae49
Cambio del nombre de la clase Ponente a Persona
Nelo@Kenia.neluz.int
parents:
diff
changeset
|
9 namespace AltNetHispano.Agendas.Tests |
db4b1e2cae49
Cambio del nombre de la clase Ponente a Persona
Nelo@Kenia.neluz.int
parents:
diff
changeset
|
10 { |
db4b1e2cae49
Cambio del nombre de la clase Ponente a Persona
Nelo@Kenia.neluz.int
parents:
diff
changeset
|
11 [TestFixture] |
db4b1e2cae49
Cambio del nombre de la clase Ponente a Persona
Nelo@Kenia.neluz.int
parents:
diff
changeset
|
12 public class PersonaServiceTests : TestBase |
db4b1e2cae49
Cambio del nombre de la clase Ponente a Persona
Nelo@Kenia.neluz.int
parents:
diff
changeset
|
13 { |
db4b1e2cae49
Cambio del nombre de la clase Ponente a Persona
Nelo@Kenia.neluz.int
parents:
diff
changeset
|
14 [Test] |
db4b1e2cae49
Cambio del nombre de la clase Ponente a Persona
Nelo@Kenia.neluz.int
parents:
diff
changeset
|
15 public void Crear_nueva_persona() |
db4b1e2cae49
Cambio del nombre de la clase Ponente a Persona
Nelo@Kenia.neluz.int
parents:
diff
changeset
|
16 { |
db4b1e2cae49
Cambio del nombre de la clase Ponente a Persona
Nelo@Kenia.neluz.int
parents:
diff
changeset
|
17 var personaRepository = new Mock<IPersonaRepository>(); |
db4b1e2cae49
Cambio del nombre de la clase Ponente a Persona
Nelo@Kenia.neluz.int
parents:
diff
changeset
|
18 Persona persona=null; |
db4b1e2cae49
Cambio del nombre de la clase Ponente a Persona
Nelo@Kenia.neluz.int
parents:
diff
changeset
|
19 personaRepository.Setup(r => r.Save(It.IsAny<Persona>())).Callback<Persona>(p => persona = p); |
db4b1e2cae49
Cambio del nombre de la clase Ponente a Persona
Nelo@Kenia.neluz.int
parents:
diff
changeset
|
20 |
db4b1e2cae49
Cambio del nombre de la clase Ponente a Persona
Nelo@Kenia.neluz.int
parents:
diff
changeset
|
21 var personaService = new PersonaService(personaRepository.Object); |
db4b1e2cae49
Cambio del nombre de la clase Ponente a Persona
Nelo@Kenia.neluz.int
parents:
diff
changeset
|
22 |
115 | 23 Assert.IsTrue(personaService.CreateIfNotExist(IdentityProviderEnum.Twitter, "nelopauselli", "Nelo Pauselli")); |
94
db4b1e2cae49
Cambio del nombre de la clase Ponente a Persona
Nelo@Kenia.neluz.int
parents:
diff
changeset
|
24 personaRepository.Verify(r=>r.Save(It.IsAny<Persona>()), Times.Once()); |
db4b1e2cae49
Cambio del nombre de la clase Ponente a Persona
Nelo@Kenia.neluz.int
parents:
diff
changeset
|
25 Assert.IsNotNull(persona); |
db4b1e2cae49
Cambio del nombre de la clase Ponente a Persona
Nelo@Kenia.neluz.int
parents:
diff
changeset
|
26 Assert.AreEqual(1, persona.Cuentas.Count()); |
db4b1e2cae49
Cambio del nombre de la clase Ponente a Persona
Nelo@Kenia.neluz.int
parents:
diff
changeset
|
27 Assert.AreEqual("nelopauselli", persona.Twitter); |
db4b1e2cae49
Cambio del nombre de la clase Ponente a Persona
Nelo@Kenia.neluz.int
parents:
diff
changeset
|
28 |
db4b1e2cae49
Cambio del nombre de la clase Ponente a Persona
Nelo@Kenia.neluz.int
parents:
diff
changeset
|
29 Cuenta cuenta = persona.Cuentas.First(); |
db4b1e2cae49
Cambio del nombre de la clase Ponente a Persona
Nelo@Kenia.neluz.int
parents:
diff
changeset
|
30 Assert.AreEqual(IdentityProviderEnum.Twitter, cuenta.IdentityProvider); |
db4b1e2cae49
Cambio del nombre de la clase Ponente a Persona
Nelo@Kenia.neluz.int
parents:
diff
changeset
|
31 Assert.AreEqual("nelopauselli", cuenta.LogonName); |
db4b1e2cae49
Cambio del nombre de la clase Ponente a Persona
Nelo@Kenia.neluz.int
parents:
diff
changeset
|
32 |
db4b1e2cae49
Cambio del nombre de la clase Ponente a Persona
Nelo@Kenia.neluz.int
parents:
diff
changeset
|
33 personaRepository.Setup(r => r.GetCuenta(IdentityProviderEnum.Twitter, "nelopauselli")).Returns(cuenta); |
db4b1e2cae49
Cambio del nombre de la clase Ponente a Persona
Nelo@Kenia.neluz.int
parents:
diff
changeset
|
34 |
db4b1e2cae49
Cambio del nombre de la clase Ponente a Persona
Nelo@Kenia.neluz.int
parents:
diff
changeset
|
35 Assert.AreEqual(1, persona.Cuentas.Count()); |
115 | 36 Assert.IsTrue(personaService.CreateIfNotExist(IdentityProviderEnum.Twitter, "nelopauselli", "Nelo Pauselli")); |
94
db4b1e2cae49
Cambio del nombre de la clase Ponente a Persona
Nelo@Kenia.neluz.int
parents:
diff
changeset
|
37 Assert.AreEqual(1, persona.Cuentas.Count()); |
db4b1e2cae49
Cambio del nombre de la clase Ponente a Persona
Nelo@Kenia.neluz.int
parents:
diff
changeset
|
38 } |
96
1eb5a0e531bf
Funcionamiento con cuenta interna y con cuenta de twitter, falta unificar usuarios
Nelo@Kenia.neluz.int
parents:
94
diff
changeset
|
39 |
143 | 40 [Test] |
41 public void Asociar_persona_existente_por_twitter() | |
42 { | |
43 var personaRepository = DefaultPersonaRepository; | |
44 | |
45 personaRepository.Save(new Persona("Mariano Pauselli", "marianopauselli@gmail.com", "marianopauselli", "http://marianopauselli.blogspot.com")); | |
46 var personaService = new PersonaService(personaRepository); | |
47 | |
48 Assert.IsTrue(personaService.CreateIfNotExist(IdentityProviderEnum.Twitter, "marianopauselli", "Mariano Pauselli")); | |
49 | |
50 var persona = personaRepository.GetByNombre("Mariano Pauselli"); | |
51 Assert.IsNotNull(persona); | |
52 Assert.AreEqual(1, persona.Cuentas.Count()); | |
53 Assert.AreEqual("marianopauselli", persona.Twitter); | |
54 | |
55 Cuenta cuenta = persona.Cuentas.First(); | |
56 Assert.AreEqual(IdentityProviderEnum.Twitter, cuenta.IdentityProvider); | |
57 Assert.AreEqual("marianopauselli", cuenta.LogonName); | |
58 | |
59 Assert.AreEqual(1, persona.Cuentas.Count()); | |
60 Assert.IsTrue(personaService.CreateIfNotExist(IdentityProviderEnum.Twitter, "marianopauselli", "Mariano Pauselli")); | |
61 Assert.AreEqual(1, persona.Cuentas.Count()); | |
62 } | |
63 | |
147 | 64 [Test] |
65 public void Agregar_y_modificar_persona() | |
66 { | |
67 var personaRepository = DefaultPersonaRepository; | |
68 | |
69 var personaService = new PersonaService(personaRepository); | |
180 | 70 var r = personaService.Add("Mariano Pauselli", "marianopauselli", string.Empty, string.Empty, null); |
147 | 71 Assert.IsTrue(r.Succeful); |
72 | |
73 var todas = personaService.GetAll(); | |
74 Assert.AreEqual(2, todas.Count()); | |
75 | |
76 var p1 = todas.SingleOrDefault(p => p.Nombre == "Mariano Pauselli"); | |
77 Assert.IsNotNull(p1); | |
78 | |
79 var personaId = p1.Id; | |
80 var p2 = personaService.GetById(personaId); | |
81 | |
82 Assert.AreEqual(p1, p2); | |
83 Assert.AreSame(p1, p2); | |
84 | |
180 | 85 personaService.Update(personaId, p1.Nombre, p1.Twitter, "marianopauselli@gmail.com", string.Empty,null); |
147 | 86 |
87 var p3 = personaService.GetById(personaId); | |
88 Assert.IsNotNull(p3); | |
89 Assert.AreEqual("marianopauselli@gmail.com",p3.Mail); | |
90 } | |
91 | |
92 [Test] | |
93 public void Agregar_y_modificar_cuenta() | |
94 { | |
95 var personaRepository = DefaultPersonaRepository; | |
96 | |
97 var p1 = personaRepository.GetByTwitter("nelopauselli"); | |
98 Assert.IsNotNull(p1); | |
99 Assert.AreEqual(1, p1.Cuentas.Count()); | |
100 | |
101 var personaService = new PersonaService(personaRepository); | |
102 | |
103 personaService.AddCuenta(IdentityProviderEnum.Google, "nelopauselli"); | |
104 | |
105 var p2 = personaRepository.GetByTwitter("nelopauselli"); | |
106 Assert.IsNotNull(p2); | |
107 Assert.AreEqual(2, p2.Cuentas.Count()); | |
108 | |
109 var personaId = p2.Id; | |
110 | |
111 personaService.RemoveCuenta(IdentityProviderEnum.Google, "nelopauselli"); | |
112 Assert.AreEqual(1, personaRepository.Get(personaId).Cuentas.Count()); | |
113 | |
114 personaService.RemoveCuenta(IdentityProviderEnum.Twitter, "nelopauselli"); | |
115 Assert.AreEqual(0, personaRepository.Get(personaId).Cuentas.Count()); | |
116 | |
117 } | |
118 | |
96
1eb5a0e531bf
Funcionamiento con cuenta interna y con cuenta de twitter, falta unificar usuarios
Nelo@Kenia.neluz.int
parents:
94
diff
changeset
|
119 [Test] |
142 | 120 public void IdentificacionGoogle() |
96
1eb5a0e531bf
Funcionamiento con cuenta interna y con cuenta de twitter, falta unificar usuarios
Nelo@Kenia.neluz.int
parents:
94
diff
changeset
|
121 { |
142 | 122 var builtIn = new Identification(Identification.Map[(int)IdentityProviderEnum.Google] + "nelo"); |
123 Assert.AreEqual(IdentityProviderEnum.Google, builtIn.IdentityProvider); | |
96
1eb5a0e531bf
Funcionamiento con cuenta interna y con cuenta de twitter, falta unificar usuarios
Nelo@Kenia.neluz.int
parents:
94
diff
changeset
|
124 Assert.AreEqual("nelo", builtIn.LogonName); |
1eb5a0e531bf
Funcionamiento con cuenta interna y con cuenta de twitter, falta unificar usuarios
Nelo@Kenia.neluz.int
parents:
94
diff
changeset
|
125 } |
1eb5a0e531bf
Funcionamiento con cuenta interna y con cuenta de twitter, falta unificar usuarios
Nelo@Kenia.neluz.int
parents:
94
diff
changeset
|
126 |
1eb5a0e531bf
Funcionamiento con cuenta interna y con cuenta de twitter, falta unificar usuarios
Nelo@Kenia.neluz.int
parents:
94
diff
changeset
|
127 [Test] |
1eb5a0e531bf
Funcionamiento con cuenta interna y con cuenta de twitter, falta unificar usuarios
Nelo@Kenia.neluz.int
parents:
94
diff
changeset
|
128 public void IdentificacionTwitter() |
1eb5a0e531bf
Funcionamiento con cuenta interna y con cuenta de twitter, falta unificar usuarios
Nelo@Kenia.neluz.int
parents:
94
diff
changeset
|
129 { |
1eb5a0e531bf
Funcionamiento con cuenta interna y con cuenta de twitter, falta unificar usuarios
Nelo@Kenia.neluz.int
parents:
94
diff
changeset
|
130 var builtIn = new Identification(Identification.Map[(int)IdentityProviderEnum.Twitter] + "nelo"); |
1eb5a0e531bf
Funcionamiento con cuenta interna y con cuenta de twitter, falta unificar usuarios
Nelo@Kenia.neluz.int
parents:
94
diff
changeset
|
131 Assert.AreEqual(IdentityProviderEnum.Twitter, builtIn.IdentityProvider); |
1eb5a0e531bf
Funcionamiento con cuenta interna y con cuenta de twitter, falta unificar usuarios
Nelo@Kenia.neluz.int
parents:
94
diff
changeset
|
132 Assert.AreEqual("nelo", builtIn.LogonName); |
1eb5a0e531bf
Funcionamiento con cuenta interna y con cuenta de twitter, falta unificar usuarios
Nelo@Kenia.neluz.int
parents:
94
diff
changeset
|
133 } |
197
bfd472758bc3
Agregando validaciones para subir el Coverage.
juanjose.montesdeocaarbos
parents:
180
diff
changeset
|
134 |
bfd472758bc3
Agregando validaciones para subir el Coverage.
juanjose.montesdeocaarbos
parents:
180
diff
changeset
|
135 [Test] |
bfd472758bc3
Agregando validaciones para subir el Coverage.
juanjose.montesdeocaarbos
parents:
180
diff
changeset
|
136 public void Modificar_persona_inexistente() |
bfd472758bc3
Agregando validaciones para subir el Coverage.
juanjose.montesdeocaarbos
parents:
180
diff
changeset
|
137 { |
bfd472758bc3
Agregando validaciones para subir el Coverage.
juanjose.montesdeocaarbos
parents:
180
diff
changeset
|
138 var personaRepository = DefaultPersonaRepository; |
bfd472758bc3
Agregando validaciones para subir el Coverage.
juanjose.montesdeocaarbos
parents:
180
diff
changeset
|
139 var personaService = new PersonaService(personaRepository); |
bfd472758bc3
Agregando validaciones para subir el Coverage.
juanjose.montesdeocaarbos
parents:
180
diff
changeset
|
140 var r = personaService.Update(new Guid(), "Mariano Pauselli", "marianopauselli", "marianopauselli@gmail.com", string.Empty, null); |
bfd472758bc3
Agregando validaciones para subir el Coverage.
juanjose.montesdeocaarbos
parents:
180
diff
changeset
|
141 |
bfd472758bc3
Agregando validaciones para subir el Coverage.
juanjose.montesdeocaarbos
parents:
180
diff
changeset
|
142 Assert.IsFalse(r.Succeful); |
bfd472758bc3
Agregando validaciones para subir el Coverage.
juanjose.montesdeocaarbos
parents:
180
diff
changeset
|
143 } |
94
db4b1e2cae49
Cambio del nombre de la clase Ponente a Persona
Nelo@Kenia.neluz.int
parents:
diff
changeset
|
144 } |
db4b1e2cae49
Cambio del nombre de la clase Ponente a Persona
Nelo@Kenia.neluz.int
parents:
diff
changeset
|
145 } |