annotate Agendas/trunk/src/Agendas.Tests/Cruds/PersonaCrud.cs @ 219:b9850b647a4e

Agregando alta de ponente durante la carga del evento
author nelopauselli
date Thu, 08 Sep 2011 11:22:10 -0300
parents a36a76bd6ec3
children
rev   line source
178
33e57fd1a6c9 Roles: en dominio y autoregistración
nelopauselli
parents:
diff changeset
1 using System;
33e57fd1a6c9 Roles: en dominio y autoregistración
nelopauselli
parents:
diff changeset
2 using System.Linq;
33e57fd1a6c9 Roles: en dominio y autoregistración
nelopauselli
parents:
diff changeset
3 using AltNetHispano.Agendas.Domain;
33e57fd1a6c9 Roles: en dominio y autoregistración
nelopauselli
parents:
diff changeset
4 using AltNetHispano.Agendas.Domain.Repositories;
33e57fd1a6c9 Roles: en dominio y autoregistración
nelopauselli
parents:
diff changeset
5 using AltNetHispano.Agendas.Domain.Services;
33e57fd1a6c9 Roles: en dominio y autoregistración
nelopauselli
parents:
diff changeset
6 using NUnit.Framework;
33e57fd1a6c9 Roles: en dominio y autoregistración
nelopauselli
parents:
diff changeset
7
33e57fd1a6c9 Roles: en dominio y autoregistración
nelopauselli
parents:
diff changeset
8 namespace AltNetHispano.Agendas.Tests.Cruds
33e57fd1a6c9 Roles: en dominio y autoregistración
nelopauselli
parents:
diff changeset
9 {
33e57fd1a6c9 Roles: en dominio y autoregistración
nelopauselli
parents:
diff changeset
10 public class PersonaCrud
33e57fd1a6c9 Roles: en dominio y autoregistración
nelopauselli
parents:
diff changeset
11 {
33e57fd1a6c9 Roles: en dominio y autoregistración
nelopauselli
parents:
diff changeset
12 private readonly IPersonaRepository _personaRepository;
33e57fd1a6c9 Roles: en dominio y autoregistración
nelopauselli
parents:
diff changeset
13 private readonly Func<IDisposable> _requestEmulator;
33e57fd1a6c9 Roles: en dominio y autoregistración
nelopauselli
parents:
diff changeset
14 private readonly PersonaService _personaService;
209
a36a76bd6ec3 Se soluciona ticket 173. Se agrega eliminación de personas siempre y cuando no esté asociada a ninguna van.
alabra
parents: 180
diff changeset
15 private readonly IEventoRepository _eventoRepository;
178
33e57fd1a6c9 Roles: en dominio y autoregistración
nelopauselli
parents:
diff changeset
16
209
a36a76bd6ec3 Se soluciona ticket 173. Se agrega eliminación de personas siempre y cuando no esté asociada a ninguna van.
alabra
parents: 180
diff changeset
17 public PersonaCrud(Func<IPersonaRepository> createpersonaRepository, Func<IDisposable> requestEmulator, Func<IEventoRepository> createEventoRespository)
178
33e57fd1a6c9 Roles: en dominio y autoregistración
nelopauselli
parents:
diff changeset
18 {
33e57fd1a6c9 Roles: en dominio y autoregistración
nelopauselli
parents:
diff changeset
19 _personaRepository = createpersonaRepository.Invoke();
209
a36a76bd6ec3 Se soluciona ticket 173. Se agrega eliminación de personas siempre y cuando no esté asociada a ninguna van.
alabra
parents: 180
diff changeset
20 _eventoRepository = createEventoRespository.Invoke();
a36a76bd6ec3 Se soluciona ticket 173. Se agrega eliminación de personas siempre y cuando no esté asociada a ninguna van.
alabra
parents: 180
diff changeset
21 _personaService = new PersonaService(_personaRepository, _eventoRepository);
178
33e57fd1a6c9 Roles: en dominio y autoregistración
nelopauselli
parents:
diff changeset
22 _requestEmulator = requestEmulator;
33e57fd1a6c9 Roles: en dominio y autoregistración
nelopauselli
parents:
diff changeset
23 }
33e57fd1a6c9 Roles: en dominio y autoregistración
nelopauselli
parents:
diff changeset
24
33e57fd1a6c9 Roles: en dominio y autoregistración
nelopauselli
parents:
diff changeset
25 public Guid CreateAdministrador()
33e57fd1a6c9 Roles: en dominio y autoregistración
nelopauselli
parents:
diff changeset
26 {
219
b9850b647a4e Agregando alta de ponente durante la carga del evento
nelopauselli
parents: 209
diff changeset
27 Guid id;
178
33e57fd1a6c9 Roles: en dominio y autoregistración
nelopauselli
parents:
diff changeset
28 using (_requestEmulator.Invoke())
33e57fd1a6c9 Roles: en dominio y autoregistración
nelopauselli
parents:
diff changeset
29 {
219
b9850b647a4e Agregando alta de ponente durante la carga del evento
nelopauselli
parents: 209
diff changeset
30 var r = _personaService.Add("Nelo Pauselli", "nelopauselli", "nelopauselli@gmail.com", "http://nelopauselli.blogspot.com", null);
b9850b647a4e Agregando alta de ponente durante la carga del evento
nelopauselli
parents: 209
diff changeset
31 Assert.AreEqual("Nelo Pauselli", r.Nombre);
b9850b647a4e Agregando alta de ponente durante la carga del evento
nelopauselli
parents: 209
diff changeset
32 Assert.AreNotEqual(Guid.Empty, r.Id);
b9850b647a4e Agregando alta de ponente durante la carga del evento
nelopauselli
parents: 209
diff changeset
33
b9850b647a4e Agregando alta de ponente durante la carga del evento
nelopauselli
parents: 209
diff changeset
34 id = r.Id;
178
33e57fd1a6c9 Roles: en dominio y autoregistración
nelopauselli
parents:
diff changeset
35 }
33e57fd1a6c9 Roles: en dominio y autoregistración
nelopauselli
parents:
diff changeset
36
33e57fd1a6c9 Roles: en dominio y autoregistración
nelopauselli
parents:
diff changeset
37 using (_requestEmulator.Invoke())
33e57fd1a6c9 Roles: en dominio y autoregistración
nelopauselli
parents:
diff changeset
38 {
33e57fd1a6c9 Roles: en dominio y autoregistración
nelopauselli
parents:
diff changeset
39 var persona = _personaRepository.GetByNombre("Nelo Pauselli");
33e57fd1a6c9 Roles: en dominio y autoregistración
nelopauselli
parents:
diff changeset
40 Assert.IsNotNull(persona);
219
b9850b647a4e Agregando alta de ponente durante la carga del evento
nelopauselli
parents: 209
diff changeset
41 Assert.AreEqual(id, persona.Id);
178
33e57fd1a6c9 Roles: en dominio y autoregistración
nelopauselli
parents:
diff changeset
42 return persona.Id;
33e57fd1a6c9 Roles: en dominio y autoregistración
nelopauselli
parents:
diff changeset
43 }
33e57fd1a6c9 Roles: en dominio y autoregistración
nelopauselli
parents:
diff changeset
44 }
33e57fd1a6c9 Roles: en dominio y autoregistración
nelopauselli
parents:
diff changeset
45
33e57fd1a6c9 Roles: en dominio y autoregistración
nelopauselli
parents:
diff changeset
46 public void ReadAdministrador()
33e57fd1a6c9 Roles: en dominio y autoregistración
nelopauselli
parents:
diff changeset
47 {
33e57fd1a6c9 Roles: en dominio y autoregistración
nelopauselli
parents:
diff changeset
48 Guid personaId = CreateAdministrador();
33e57fd1a6c9 Roles: en dominio y autoregistración
nelopauselli
parents:
diff changeset
49
33e57fd1a6c9 Roles: en dominio y autoregistración
nelopauselli
parents:
diff changeset
50 using (_requestEmulator.Invoke())
33e57fd1a6c9 Roles: en dominio y autoregistración
nelopauselli
parents:
diff changeset
51 {
33e57fd1a6c9 Roles: en dominio y autoregistración
nelopauselli
parents:
diff changeset
52 var persona = _personaRepository.Get(personaId);
33e57fd1a6c9 Roles: en dominio y autoregistración
nelopauselli
parents:
diff changeset
53
33e57fd1a6c9 Roles: en dominio y autoregistración
nelopauselli
parents:
diff changeset
54 Assert.IsNotNull(persona);
33e57fd1a6c9 Roles: en dominio y autoregistración
nelopauselli
parents:
diff changeset
55 Assert.AreEqual("Nelo Pauselli", persona.Nombre);
33e57fd1a6c9 Roles: en dominio y autoregistración
nelopauselli
parents:
diff changeset
56 Assert.AreEqual("nelopauselli", persona.Twitter);
33e57fd1a6c9 Roles: en dominio y autoregistración
nelopauselli
parents:
diff changeset
57 Assert.AreEqual("nelopauselli@gmail.com", persona.Mail);
33e57fd1a6c9 Roles: en dominio y autoregistración
nelopauselli
parents:
diff changeset
58 Assert.AreEqual("http://nelopauselli.blogspot.com", persona.Blog);
33e57fd1a6c9 Roles: en dominio y autoregistración
nelopauselli
parents:
diff changeset
59
33e57fd1a6c9 Roles: en dominio y autoregistración
nelopauselli
parents:
diff changeset
60 Assert.IsTrue(persona.Cuentas.Any());
33e57fd1a6c9 Roles: en dominio y autoregistración
nelopauselli
parents:
diff changeset
61 Assert.AreEqual("nelopauselli", persona.Cuentas.First().LogonName);
33e57fd1a6c9 Roles: en dominio y autoregistración
nelopauselli
parents:
diff changeset
62 Assert.AreEqual(IdentityProviderEnum.Twitter, persona.Cuentas.First().IdentityProvider);
33e57fd1a6c9 Roles: en dominio y autoregistración
nelopauselli
parents:
diff changeset
63
33e57fd1a6c9 Roles: en dominio y autoregistración
nelopauselli
parents:
diff changeset
64 Assert.IsTrue(persona.Roles.Any());
33e57fd1a6c9 Roles: en dominio y autoregistración
nelopauselli
parents:
diff changeset
65 Assert.IsTrue(persona.Roles.Contains(Roles.Usuario));
33e57fd1a6c9 Roles: en dominio y autoregistración
nelopauselli
parents:
diff changeset
66 Assert.IsTrue(persona.Roles.Contains(Roles.Administrador));
33e57fd1a6c9 Roles: en dominio y autoregistración
nelopauselli
parents:
diff changeset
67 }
33e57fd1a6c9 Roles: en dominio y autoregistración
nelopauselli
parents:
diff changeset
68 }
33e57fd1a6c9 Roles: en dominio y autoregistración
nelopauselli
parents:
diff changeset
69
33e57fd1a6c9 Roles: en dominio y autoregistración
nelopauselli
parents:
diff changeset
70 public Guid CreateUsuario()
33e57fd1a6c9 Roles: en dominio y autoregistración
nelopauselli
parents:
diff changeset
71 {
33e57fd1a6c9 Roles: en dominio y autoregistración
nelopauselli
parents:
diff changeset
72 using (_requestEmulator.Invoke())
33e57fd1a6c9 Roles: en dominio y autoregistración
nelopauselli
parents:
diff changeset
73 {
180
222362c29416 UI para asignación de roles
nelopauselli
parents: 178
diff changeset
74 _personaService.Add("Pablo Morales", "pablomorales", "pablomorales@gmail.com", "http://pablomorales.blogspot.com", new[]{Roles.Usuario});
178
33e57fd1a6c9 Roles: en dominio y autoregistración
nelopauselli
parents:
diff changeset
75 }
33e57fd1a6c9 Roles: en dominio y autoregistración
nelopauselli
parents:
diff changeset
76
33e57fd1a6c9 Roles: en dominio y autoregistración
nelopauselli
parents:
diff changeset
77 using (_requestEmulator.Invoke())
33e57fd1a6c9 Roles: en dominio y autoregistración
nelopauselli
parents:
diff changeset
78 {
33e57fd1a6c9 Roles: en dominio y autoregistración
nelopauselli
parents:
diff changeset
79 var persona = _personaRepository.GetByNombre("Pablo Morales");
33e57fd1a6c9 Roles: en dominio y autoregistración
nelopauselli
parents:
diff changeset
80 Assert.IsNotNull(persona);
33e57fd1a6c9 Roles: en dominio y autoregistración
nelopauselli
parents:
diff changeset
81 return persona.Id;
33e57fd1a6c9 Roles: en dominio y autoregistración
nelopauselli
parents:
diff changeset
82 }
33e57fd1a6c9 Roles: en dominio y autoregistración
nelopauselli
parents:
diff changeset
83 }
33e57fd1a6c9 Roles: en dominio y autoregistración
nelopauselli
parents:
diff changeset
84
33e57fd1a6c9 Roles: en dominio y autoregistración
nelopauselli
parents:
diff changeset
85 public void ReadUsuario()
33e57fd1a6c9 Roles: en dominio y autoregistración
nelopauselli
parents:
diff changeset
86 {
33e57fd1a6c9 Roles: en dominio y autoregistración
nelopauselli
parents:
diff changeset
87 Guid personaId = CreateUsuario();
33e57fd1a6c9 Roles: en dominio y autoregistración
nelopauselli
parents:
diff changeset
88
33e57fd1a6c9 Roles: en dominio y autoregistración
nelopauselli
parents:
diff changeset
89 using (_requestEmulator.Invoke())
33e57fd1a6c9 Roles: en dominio y autoregistración
nelopauselli
parents:
diff changeset
90 {
33e57fd1a6c9 Roles: en dominio y autoregistración
nelopauselli
parents:
diff changeset
91 var persona = _personaRepository.Get(personaId);
33e57fd1a6c9 Roles: en dominio y autoregistración
nelopauselli
parents:
diff changeset
92
33e57fd1a6c9 Roles: en dominio y autoregistración
nelopauselli
parents:
diff changeset
93 Assert.IsNotNull(persona);
33e57fd1a6c9 Roles: en dominio y autoregistración
nelopauselli
parents:
diff changeset
94 Assert.AreEqual("Pablo Morales", persona.Nombre);
33e57fd1a6c9 Roles: en dominio y autoregistración
nelopauselli
parents:
diff changeset
95 Assert.AreEqual("pablomorales", persona.Twitter);
33e57fd1a6c9 Roles: en dominio y autoregistración
nelopauselli
parents:
diff changeset
96 Assert.AreEqual("pablomorales@gmail.com", persona.Mail);
33e57fd1a6c9 Roles: en dominio y autoregistración
nelopauselli
parents:
diff changeset
97 Assert.AreEqual("http://pablomorales.blogspot.com", persona.Blog);
33e57fd1a6c9 Roles: en dominio y autoregistración
nelopauselli
parents:
diff changeset
98
33e57fd1a6c9 Roles: en dominio y autoregistración
nelopauselli
parents:
diff changeset
99 Assert.IsTrue(persona.Cuentas.Any());
33e57fd1a6c9 Roles: en dominio y autoregistración
nelopauselli
parents:
diff changeset
100 Assert.AreEqual("pablomorales", persona.Cuentas.First().LogonName);
33e57fd1a6c9 Roles: en dominio y autoregistración
nelopauselli
parents:
diff changeset
101 Assert.AreEqual(IdentityProviderEnum.Twitter, persona.Cuentas.First().IdentityProvider);
33e57fd1a6c9 Roles: en dominio y autoregistración
nelopauselli
parents:
diff changeset
102
33e57fd1a6c9 Roles: en dominio y autoregistración
nelopauselli
parents:
diff changeset
103 Assert.IsTrue(persona.Roles.Any());
33e57fd1a6c9 Roles: en dominio y autoregistración
nelopauselli
parents:
diff changeset
104 Assert.IsTrue(persona.Roles.Contains(Roles.Usuario));
33e57fd1a6c9 Roles: en dominio y autoregistración
nelopauselli
parents:
diff changeset
105 Assert.IsFalse(persona.Roles.Contains(Roles.Administrador));
33e57fd1a6c9 Roles: en dominio y autoregistración
nelopauselli
parents:
diff changeset
106 }
33e57fd1a6c9 Roles: en dominio y autoregistración
nelopauselli
parents:
diff changeset
107 }
33e57fd1a6c9 Roles: en dominio y autoregistración
nelopauselli
parents:
diff changeset
108
33e57fd1a6c9 Roles: en dominio y autoregistración
nelopauselli
parents:
diff changeset
109 public void Update()
33e57fd1a6c9 Roles: en dominio y autoregistración
nelopauselli
parents:
diff changeset
110 {
33e57fd1a6c9 Roles: en dominio y autoregistración
nelopauselli
parents:
diff changeset
111 Guid personaId = CreateAdministrador();
33e57fd1a6c9 Roles: en dominio y autoregistración
nelopauselli
parents:
diff changeset
112
33e57fd1a6c9 Roles: en dominio y autoregistración
nelopauselli
parents:
diff changeset
113 using (_requestEmulator.Invoke())
33e57fd1a6c9 Roles: en dominio y autoregistración
nelopauselli
parents:
diff changeset
114 {
33e57fd1a6c9 Roles: en dominio y autoregistración
nelopauselli
parents:
diff changeset
115 var persona = _personaRepository.Get(personaId);
33e57fd1a6c9 Roles: en dominio y autoregistración
nelopauselli
parents:
diff changeset
116 Assert.IsNotNull(persona);
33e57fd1a6c9 Roles: en dominio y autoregistración
nelopauselli
parents:
diff changeset
117
33e57fd1a6c9 Roles: en dominio y autoregistración
nelopauselli
parents:
diff changeset
118 persona.Nombre = "Nelo Mariano Pauselli";
33e57fd1a6c9 Roles: en dominio y autoregistración
nelopauselli
parents:
diff changeset
119 }
33e57fd1a6c9 Roles: en dominio y autoregistración
nelopauselli
parents:
diff changeset
120
33e57fd1a6c9 Roles: en dominio y autoregistración
nelopauselli
parents:
diff changeset
121 using (_requestEmulator.Invoke())
33e57fd1a6c9 Roles: en dominio y autoregistración
nelopauselli
parents:
diff changeset
122 {
33e57fd1a6c9 Roles: en dominio y autoregistración
nelopauselli
parents:
diff changeset
123 var persona = _personaRepository.Get(personaId);
33e57fd1a6c9 Roles: en dominio y autoregistración
nelopauselli
parents:
diff changeset
124
33e57fd1a6c9 Roles: en dominio y autoregistración
nelopauselli
parents:
diff changeset
125 Assert.IsNotNull(persona);
33e57fd1a6c9 Roles: en dominio y autoregistración
nelopauselli
parents:
diff changeset
126 Assert.AreEqual("Nelo Mariano Pauselli", persona.Nombre);
33e57fd1a6c9 Roles: en dominio y autoregistración
nelopauselli
parents:
diff changeset
127 }
33e57fd1a6c9 Roles: en dominio y autoregistración
nelopauselli
parents:
diff changeset
128 }
209
a36a76bd6ec3 Se soluciona ticket 173. Se agrega eliminación de personas siempre y cuando no esté asociada a ninguna van.
alabra
parents: 180
diff changeset
129 public void Delete()
a36a76bd6ec3 Se soluciona ticket 173. Se agrega eliminación de personas siempre y cuando no esté asociada a ninguna van.
alabra
parents: 180
diff changeset
130 {
a36a76bd6ec3 Se soluciona ticket 173. Se agrega eliminación de personas siempre y cuando no esté asociada a ninguna van.
alabra
parents: 180
diff changeset
131 var personaId = CreateUsuario();
a36a76bd6ec3 Se soluciona ticket 173. Se agrega eliminación de personas siempre y cuando no esté asociada a ninguna van.
alabra
parents: 180
diff changeset
132 using (_requestEmulator.Invoke())
a36a76bd6ec3 Se soluciona ticket 173. Se agrega eliminación de personas siempre y cuando no esté asociada a ninguna van.
alabra
parents: 180
diff changeset
133 {
a36a76bd6ec3 Se soluciona ticket 173. Se agrega eliminación de personas siempre y cuando no esté asociada a ninguna van.
alabra
parents: 180
diff changeset
134 var persona = _personaRepository.Get(personaId);
a36a76bd6ec3 Se soluciona ticket 173. Se agrega eliminación de personas siempre y cuando no esté asociada a ninguna van.
alabra
parents: 180
diff changeset
135 Assert.IsNotNull(persona);
a36a76bd6ec3 Se soluciona ticket 173. Se agrega eliminación de personas siempre y cuando no esté asociada a ninguna van.
alabra
parents: 180
diff changeset
136 _personaService.Delete(personaId);
a36a76bd6ec3 Se soluciona ticket 173. Se agrega eliminación de personas siempre y cuando no esté asociada a ninguna van.
alabra
parents: 180
diff changeset
137 }
a36a76bd6ec3 Se soluciona ticket 173. Se agrega eliminación de personas siempre y cuando no esté asociada a ninguna van.
alabra
parents: 180
diff changeset
138 using (_requestEmulator.Invoke())
a36a76bd6ec3 Se soluciona ticket 173. Se agrega eliminación de personas siempre y cuando no esté asociada a ninguna van.
alabra
parents: 180
diff changeset
139 {
a36a76bd6ec3 Se soluciona ticket 173. Se agrega eliminación de personas siempre y cuando no esté asociada a ninguna van.
alabra
parents: 180
diff changeset
140 var persona = _personaRepository.Get(personaId);
a36a76bd6ec3 Se soluciona ticket 173. Se agrega eliminación de personas siempre y cuando no esté asociada a ninguna van.
alabra
parents: 180
diff changeset
141 Assert.IsNull(persona);
a36a76bd6ec3 Se soluciona ticket 173. Se agrega eliminación de personas siempre y cuando no esté asociada a ninguna van.
alabra
parents: 180
diff changeset
142 }
a36a76bd6ec3 Se soluciona ticket 173. Se agrega eliminación de personas siempre y cuando no esté asociada a ninguna van.
alabra
parents: 180
diff changeset
143 }
178
33e57fd1a6c9 Roles: en dominio y autoregistración
nelopauselli
parents:
diff changeset
144 }
33e57fd1a6c9 Roles: en dominio y autoregistración
nelopauselli
parents:
diff changeset
145 }