annotate Agendas/trunk/src/Agendas.Tests/Cruds/PersonaCrud.cs @ 180:222362c29416

UI para asignación de roles
author nelopauselli
date Mon, 08 Aug 2011 16:42:52 -0300
parents 33e57fd1a6c9
children a36a76bd6ec3
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;
33e57fd1a6c9 Roles: en dominio y autoregistración
nelopauselli
parents:
diff changeset
15
33e57fd1a6c9 Roles: en dominio y autoregistración
nelopauselli
parents:
diff changeset
16 public PersonaCrud(Func<IPersonaRepository> createpersonaRepository, Func<IDisposable> requestEmulator)
33e57fd1a6c9 Roles: en dominio y autoregistración
nelopauselli
parents:
diff changeset
17 {
33e57fd1a6c9 Roles: en dominio y autoregistración
nelopauselli
parents:
diff changeset
18 _personaRepository = createpersonaRepository.Invoke();
33e57fd1a6c9 Roles: en dominio y autoregistración
nelopauselli
parents:
diff changeset
19 _personaService = new PersonaService(_personaRepository);
33e57fd1a6c9 Roles: en dominio y autoregistración
nelopauselli
parents:
diff changeset
20 _requestEmulator = requestEmulator;
33e57fd1a6c9 Roles: en dominio y autoregistración
nelopauselli
parents:
diff changeset
21 }
33e57fd1a6c9 Roles: en dominio y autoregistración
nelopauselli
parents:
diff changeset
22
33e57fd1a6c9 Roles: en dominio y autoregistración
nelopauselli
parents:
diff changeset
23 public Guid CreateAdministrador()
33e57fd1a6c9 Roles: en dominio y autoregistración
nelopauselli
parents:
diff changeset
24 {
33e57fd1a6c9 Roles: en dominio y autoregistración
nelopauselli
parents:
diff changeset
25 using (_requestEmulator.Invoke())
33e57fd1a6c9 Roles: en dominio y autoregistración
nelopauselli
parents:
diff changeset
26 {
180
222362c29416 UI para asignación de roles
nelopauselli
parents: 178
diff changeset
27 _personaService.Add("Nelo Pauselli", "nelopauselli", "nelopauselli@gmail.com", "http://nelopauselli.blogspot.com", null);
178
33e57fd1a6c9 Roles: en dominio y autoregistración
nelopauselli
parents:
diff changeset
28 }
33e57fd1a6c9 Roles: en dominio y autoregistración
nelopauselli
parents:
diff changeset
29
33e57fd1a6c9 Roles: en dominio y autoregistración
nelopauselli
parents:
diff changeset
30 using (_requestEmulator.Invoke())
33e57fd1a6c9 Roles: en dominio y autoregistración
nelopauselli
parents:
diff changeset
31 {
33e57fd1a6c9 Roles: en dominio y autoregistración
nelopauselli
parents:
diff changeset
32 var persona = _personaRepository.GetByNombre("Nelo Pauselli");
33e57fd1a6c9 Roles: en dominio y autoregistración
nelopauselli
parents:
diff changeset
33 Assert.IsNotNull(persona);
33e57fd1a6c9 Roles: en dominio y autoregistración
nelopauselli
parents:
diff changeset
34 return persona.Id;
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
33e57fd1a6c9 Roles: en dominio y autoregistración
nelopauselli
parents:
diff changeset
38 public void ReadAdministrador()
33e57fd1a6c9 Roles: en dominio y autoregistración
nelopauselli
parents:
diff changeset
39 {
33e57fd1a6c9 Roles: en dominio y autoregistración
nelopauselli
parents:
diff changeset
40 Guid personaId = CreateAdministrador();
33e57fd1a6c9 Roles: en dominio y autoregistración
nelopauselli
parents:
diff changeset
41
33e57fd1a6c9 Roles: en dominio y autoregistración
nelopauselli
parents:
diff changeset
42 using (_requestEmulator.Invoke())
33e57fd1a6c9 Roles: en dominio y autoregistración
nelopauselli
parents:
diff changeset
43 {
33e57fd1a6c9 Roles: en dominio y autoregistración
nelopauselli
parents:
diff changeset
44 var persona = _personaRepository.Get(personaId);
33e57fd1a6c9 Roles: en dominio y autoregistración
nelopauselli
parents:
diff changeset
45
33e57fd1a6c9 Roles: en dominio y autoregistración
nelopauselli
parents:
diff changeset
46 Assert.IsNotNull(persona);
33e57fd1a6c9 Roles: en dominio y autoregistración
nelopauselli
parents:
diff changeset
47 Assert.AreEqual("Nelo Pauselli", persona.Nombre);
33e57fd1a6c9 Roles: en dominio y autoregistración
nelopauselli
parents:
diff changeset
48 Assert.AreEqual("nelopauselli", persona.Twitter);
33e57fd1a6c9 Roles: en dominio y autoregistración
nelopauselli
parents:
diff changeset
49 Assert.AreEqual("nelopauselli@gmail.com", persona.Mail);
33e57fd1a6c9 Roles: en dominio y autoregistración
nelopauselli
parents:
diff changeset
50 Assert.AreEqual("http://nelopauselli.blogspot.com", persona.Blog);
33e57fd1a6c9 Roles: en dominio y autoregistración
nelopauselli
parents:
diff changeset
51
33e57fd1a6c9 Roles: en dominio y autoregistración
nelopauselli
parents:
diff changeset
52 Assert.IsTrue(persona.Cuentas.Any());
33e57fd1a6c9 Roles: en dominio y autoregistración
nelopauselli
parents:
diff changeset
53 Assert.AreEqual("nelopauselli", persona.Cuentas.First().LogonName);
33e57fd1a6c9 Roles: en dominio y autoregistración
nelopauselli
parents:
diff changeset
54 Assert.AreEqual(IdentityProviderEnum.Twitter, persona.Cuentas.First().IdentityProvider);
33e57fd1a6c9 Roles: en dominio y autoregistración
nelopauselli
parents:
diff changeset
55
33e57fd1a6c9 Roles: en dominio y autoregistración
nelopauselli
parents:
diff changeset
56 Assert.IsTrue(persona.Roles.Any());
33e57fd1a6c9 Roles: en dominio y autoregistración
nelopauselli
parents:
diff changeset
57 Assert.IsTrue(persona.Roles.Contains(Roles.Usuario));
33e57fd1a6c9 Roles: en dominio y autoregistración
nelopauselli
parents:
diff changeset
58 Assert.IsTrue(persona.Roles.Contains(Roles.Administrador));
33e57fd1a6c9 Roles: en dominio y autoregistración
nelopauselli
parents:
diff changeset
59 }
33e57fd1a6c9 Roles: en dominio y autoregistración
nelopauselli
parents:
diff changeset
60 }
33e57fd1a6c9 Roles: en dominio y autoregistración
nelopauselli
parents:
diff changeset
61
33e57fd1a6c9 Roles: en dominio y autoregistración
nelopauselli
parents:
diff changeset
62 public Guid CreateUsuario()
33e57fd1a6c9 Roles: en dominio y autoregistración
nelopauselli
parents:
diff changeset
63 {
33e57fd1a6c9 Roles: en dominio y autoregistración
nelopauselli
parents:
diff changeset
64 using (_requestEmulator.Invoke())
33e57fd1a6c9 Roles: en dominio y autoregistración
nelopauselli
parents:
diff changeset
65 {
180
222362c29416 UI para asignación de roles
nelopauselli
parents: 178
diff changeset
66 _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
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 using (_requestEmulator.Invoke())
33e57fd1a6c9 Roles: en dominio y autoregistración
nelopauselli
parents:
diff changeset
70 {
33e57fd1a6c9 Roles: en dominio y autoregistración
nelopauselli
parents:
diff changeset
71 var persona = _personaRepository.GetByNombre("Pablo Morales");
33e57fd1a6c9 Roles: en dominio y autoregistración
nelopauselli
parents:
diff changeset
72 Assert.IsNotNull(persona);
33e57fd1a6c9 Roles: en dominio y autoregistración
nelopauselli
parents:
diff changeset
73 return persona.Id;
33e57fd1a6c9 Roles: en dominio y autoregistración
nelopauselli
parents:
diff changeset
74 }
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 public void ReadUsuario()
33e57fd1a6c9 Roles: en dominio y autoregistración
nelopauselli
parents:
diff changeset
78 {
33e57fd1a6c9 Roles: en dominio y autoregistración
nelopauselli
parents:
diff changeset
79 Guid personaId = CreateUsuario();
33e57fd1a6c9 Roles: en dominio y autoregistración
nelopauselli
parents:
diff changeset
80
33e57fd1a6c9 Roles: en dominio y autoregistración
nelopauselli
parents:
diff changeset
81 using (_requestEmulator.Invoke())
33e57fd1a6c9 Roles: en dominio y autoregistración
nelopauselli
parents:
diff changeset
82 {
33e57fd1a6c9 Roles: en dominio y autoregistración
nelopauselli
parents:
diff changeset
83 var persona = _personaRepository.Get(personaId);
33e57fd1a6c9 Roles: en dominio y autoregistración
nelopauselli
parents:
diff changeset
84
33e57fd1a6c9 Roles: en dominio y autoregistración
nelopauselli
parents:
diff changeset
85 Assert.IsNotNull(persona);
33e57fd1a6c9 Roles: en dominio y autoregistración
nelopauselli
parents:
diff changeset
86 Assert.AreEqual("Pablo Morales", persona.Nombre);
33e57fd1a6c9 Roles: en dominio y autoregistración
nelopauselli
parents:
diff changeset
87 Assert.AreEqual("pablomorales", persona.Twitter);
33e57fd1a6c9 Roles: en dominio y autoregistración
nelopauselli
parents:
diff changeset
88 Assert.AreEqual("pablomorales@gmail.com", persona.Mail);
33e57fd1a6c9 Roles: en dominio y autoregistración
nelopauselli
parents:
diff changeset
89 Assert.AreEqual("http://pablomorales.blogspot.com", persona.Blog);
33e57fd1a6c9 Roles: en dominio y autoregistración
nelopauselli
parents:
diff changeset
90
33e57fd1a6c9 Roles: en dominio y autoregistración
nelopauselli
parents:
diff changeset
91 Assert.IsTrue(persona.Cuentas.Any());
33e57fd1a6c9 Roles: en dominio y autoregistración
nelopauselli
parents:
diff changeset
92 Assert.AreEqual("pablomorales", persona.Cuentas.First().LogonName);
33e57fd1a6c9 Roles: en dominio y autoregistración
nelopauselli
parents:
diff changeset
93 Assert.AreEqual(IdentityProviderEnum.Twitter, persona.Cuentas.First().IdentityProvider);
33e57fd1a6c9 Roles: en dominio y autoregistración
nelopauselli
parents:
diff changeset
94
33e57fd1a6c9 Roles: en dominio y autoregistración
nelopauselli
parents:
diff changeset
95 Assert.IsTrue(persona.Roles.Any());
33e57fd1a6c9 Roles: en dominio y autoregistración
nelopauselli
parents:
diff changeset
96 Assert.IsTrue(persona.Roles.Contains(Roles.Usuario));
33e57fd1a6c9 Roles: en dominio y autoregistración
nelopauselli
parents:
diff changeset
97 Assert.IsFalse(persona.Roles.Contains(Roles.Administrador));
33e57fd1a6c9 Roles: en dominio y autoregistración
nelopauselli
parents:
diff changeset
98 }
33e57fd1a6c9 Roles: en dominio y autoregistración
nelopauselli
parents:
diff changeset
99 }
33e57fd1a6c9 Roles: en dominio y autoregistración
nelopauselli
parents:
diff changeset
100
33e57fd1a6c9 Roles: en dominio y autoregistración
nelopauselli
parents:
diff changeset
101 public void Update()
33e57fd1a6c9 Roles: en dominio y autoregistración
nelopauselli
parents:
diff changeset
102 {
33e57fd1a6c9 Roles: en dominio y autoregistración
nelopauselli
parents:
diff changeset
103 Guid personaId = CreateAdministrador();
33e57fd1a6c9 Roles: en dominio y autoregistración
nelopauselli
parents:
diff changeset
104
33e57fd1a6c9 Roles: en dominio y autoregistración
nelopauselli
parents:
diff changeset
105 using (_requestEmulator.Invoke())
33e57fd1a6c9 Roles: en dominio y autoregistración
nelopauselli
parents:
diff changeset
106 {
33e57fd1a6c9 Roles: en dominio y autoregistración
nelopauselli
parents:
diff changeset
107 var persona = _personaRepository.Get(personaId);
33e57fd1a6c9 Roles: en dominio y autoregistración
nelopauselli
parents:
diff changeset
108 Assert.IsNotNull(persona);
33e57fd1a6c9 Roles: en dominio y autoregistración
nelopauselli
parents:
diff changeset
109
33e57fd1a6c9 Roles: en dominio y autoregistración
nelopauselli
parents:
diff changeset
110 persona.Nombre = "Nelo Mariano Pauselli";
33e57fd1a6c9 Roles: en dominio y autoregistración
nelopauselli
parents:
diff changeset
111 }
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
33e57fd1a6c9 Roles: en dominio y autoregistración
nelopauselli
parents:
diff changeset
117 Assert.IsNotNull(persona);
33e57fd1a6c9 Roles: en dominio y autoregistración
nelopauselli
parents:
diff changeset
118 Assert.AreEqual("Nelo Mariano Pauselli", persona.Nombre);
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 }
33e57fd1a6c9 Roles: en dominio y autoregistración
nelopauselli
parents:
diff changeset
122 }