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