Mercurial > altnet-hispano
annotate Agendas/trunk/src/Agendas.Tests/AgendaTests.cs @ 15:08b9e96132a5
Persistimos los eventos de la agenda
author | nelo@MTEySS.neluz.int |
---|---|
date | Mon, 14 Mar 2011 00:14:09 -0300 |
parents | 05996fa19e04 |
children | 9a07d3091a40 |
rev | line source |
---|---|
2 | 1 using System; |
4 | 2 using System.Collections.Generic; |
2 | 3 using System.Linq; |
4 using Agendas.Repositories.Memory; | |
5 using AltNetHispano.Agendas.Domain; | |
4 | 6 using AltNetHispano.Agendas.Domain.Exceptions; |
0
3f7dbb633b71
Test sobre la publicación de Eventos al registrarlos en la Agenda
nelopauselli
parents:
diff
changeset
|
7 using AltNetHispano.Agendas.Domain.Repositories; |
3f7dbb633b71
Test sobre la publicación de Eventos al registrarlos en la Agenda
nelopauselli
parents:
diff
changeset
|
8 using Moq; |
3f7dbb633b71
Test sobre la publicación de Eventos al registrarlos en la Agenda
nelopauselli
parents:
diff
changeset
|
9 using NUnit.Framework; |
3f7dbb633b71
Test sobre la publicación de Eventos al registrarlos en la Agenda
nelopauselli
parents:
diff
changeset
|
10 |
3f7dbb633b71
Test sobre la publicación de Eventos al registrarlos en la Agenda
nelopauselli
parents:
diff
changeset
|
11 namespace AltNetHispano.Agendas.Tests |
3f7dbb633b71
Test sobre la publicación de Eventos al registrarlos en la Agenda
nelopauselli
parents:
diff
changeset
|
12 { |
3f7dbb633b71
Test sobre la publicación de Eventos al registrarlos en la Agenda
nelopauselli
parents:
diff
changeset
|
13 [TestFixture] |
3f7dbb633b71
Test sobre la publicación de Eventos al registrarlos en la Agenda
nelopauselli
parents:
diff
changeset
|
14 public class AgendaTests |
3f7dbb633b71
Test sobre la publicación de Eventos al registrarlos en la Agenda
nelopauselli
parents:
diff
changeset
|
15 { |
11
9d6b28a696d1
corrección en método que verifica la autenticación del usuario
nelo@MTEySS.neluz.int
parents:
9
diff
changeset
|
16 private static ISeguridad SeguridadServiceDefault |
9d6b28a696d1
corrección en método que verifica la autenticación del usuario
nelo@MTEySS.neluz.int
parents:
9
diff
changeset
|
17 { |
9d6b28a696d1
corrección en método que verifica la autenticación del usuario
nelo@MTEySS.neluz.int
parents:
9
diff
changeset
|
18 get |
9d6b28a696d1
corrección en método que verifica la autenticación del usuario
nelo@MTEySS.neluz.int
parents:
9
diff
changeset
|
19 { |
9d6b28a696d1
corrección en método que verifica la autenticación del usuario
nelo@MTEySS.neluz.int
parents:
9
diff
changeset
|
20 var seguridad = new Mock<ISeguridad>(); |
9d6b28a696d1
corrección en método que verifica la autenticación del usuario
nelo@MTEySS.neluz.int
parents:
9
diff
changeset
|
21 seguridad.Setup(s => s.GetPrincipal()).Returns(SeguridadObjectMother.GetGenericPrincipalAutenticadoSinRoles()); |
9d6b28a696d1
corrección en método que verifica la autenticación del usuario
nelo@MTEySS.neluz.int
parents:
9
diff
changeset
|
22 return seguridad.Object; |
9d6b28a696d1
corrección en método que verifica la autenticación del usuario
nelo@MTEySS.neluz.int
parents:
9
diff
changeset
|
23 } |
9d6b28a696d1
corrección en método que verifica la autenticación del usuario
nelo@MTEySS.neluz.int
parents:
9
diff
changeset
|
24 } |
9d6b28a696d1
corrección en método que verifica la autenticación del usuario
nelo@MTEySS.neluz.int
parents:
9
diff
changeset
|
25 |
15 | 26 [SetUp] |
27 public void LimpiarEventos() | |
28 { | |
29 var repository = new EventoRepository(); | |
30 foreach (var evento in repository.GetEventosConFecha()) | |
31 repository.Delete(evento); | |
32 foreach (var evento in repository.GetEventosSinFecha()) | |
33 repository.Delete(evento); | |
34 } | |
35 | |
0
3f7dbb633b71
Test sobre la publicación de Eventos al registrarlos en la Agenda
nelopauselli
parents:
diff
changeset
|
36 [Test] |
9
c90492faf268
Se implementa seguridad a través del constructor y no como parámetro
juanjose.montesdeocaarbos
parents:
8
diff
changeset
|
37 public void Publicar_van_con_usuario_autenticado() |
0
3f7dbb633b71
Test sobre la publicación de Eventos al registrarlos en la Agenda
nelopauselli
parents:
diff
changeset
|
38 { |
3f7dbb633b71
Test sobre la publicación de Eventos al registrarlos en la Agenda
nelopauselli
parents:
diff
changeset
|
39 var publicador = new Mock<IPublicador>(); |
15 | 40 var repository = new EventoRepository(); |
0
3f7dbb633b71
Test sobre la publicación de Eventos al registrarlos en la Agenda
nelopauselli
parents:
diff
changeset
|
41 |
15 | 42 var agenda = new Agenda(publicador.Object, null, SeguridadServiceDefault, repository); |
0
3f7dbb633b71
Test sobre la publicación de Eventos al registrarlos en la Agenda
nelopauselli
parents:
diff
changeset
|
43 |
4 | 44 var van = EventoObjectMother.GetVanValidaParaPublicar(); |
45 | |
12 | 46 agenda.Publicar(van.Titulo, van.Ponente, van.Fecha); |
7
deee2ca97f5b
Se modificó Agenda para exponer los eventos a través de métodos y no a través de propiedades. (Servicio de Negocios vs Objeto Persistente).
juanjose.montesdeocaarbos
parents:
6
diff
changeset
|
47 Assert.AreEqual(1, agenda.GetEventosPublicados().Count); |
0
3f7dbb633b71
Test sobre la publicación de Eventos al registrarlos en la Agenda
nelopauselli
parents:
diff
changeset
|
48 |
3f7dbb633b71
Test sobre la publicación de Eventos al registrarlos en la Agenda
nelopauselli
parents:
diff
changeset
|
49 publicador.Verify(p => p.Publicar(It.IsAny<Evento>()), Times.Exactly(1)); |
3f7dbb633b71
Test sobre la publicación de Eventos al registrarlos en la Agenda
nelopauselli
parents:
diff
changeset
|
50 } |
3f7dbb633b71
Test sobre la publicación de Eventos al registrarlos en la Agenda
nelopauselli
parents:
diff
changeset
|
51 |
9
c90492faf268
Se implementa seguridad a través del constructor y no como parámetro
juanjose.montesdeocaarbos
parents:
8
diff
changeset
|
52 [Test] |
c90492faf268
Se implementa seguridad a través del constructor y no como parámetro
juanjose.montesdeocaarbos
parents:
8
diff
changeset
|
53 public void Publicar_van_sin_usuario_autenticado() { |
c90492faf268
Se implementa seguridad a través del constructor y no como parámetro
juanjose.montesdeocaarbos
parents:
8
diff
changeset
|
54 var seguridad = new Mock<ISeguridad>(); |
15 | 55 seguridad.Setup(s => s.GetPrincipal()).Returns(SeguridadObjectMother.GetGenericPrincipalSinAutenticar()); |
9
c90492faf268
Se implementa seguridad a través del constructor y no como parámetro
juanjose.montesdeocaarbos
parents:
8
diff
changeset
|
56 |
15 | 57 var publicador = new Mock<IPublicador>(); |
58 var repository = new Mock<IEventoRepository>(); | |
59 | |
60 var agenda = new Agenda(publicador.Object, null, seguridad.Object, repository.Object); | |
9
c90492faf268
Se implementa seguridad a través del constructor y no como parámetro
juanjose.montesdeocaarbos
parents:
8
diff
changeset
|
61 |
c90492faf268
Se implementa seguridad a través del constructor y no como parámetro
juanjose.montesdeocaarbos
parents:
8
diff
changeset
|
62 var van = EventoObjectMother.GetVanValidaParaPublicar(); |
c90492faf268
Se implementa seguridad a través del constructor y no como parámetro
juanjose.montesdeocaarbos
parents:
8
diff
changeset
|
63 |
15 | 64 Assert.Throws<UsuarioNoAutenticadoException>(() => agenda.Publicar(van.Titulo, van.Ponente, van.Fecha)); |
9
c90492faf268
Se implementa seguridad a través del constructor y no como parámetro
juanjose.montesdeocaarbos
parents:
8
diff
changeset
|
65 |
15 | 66 publicador.Verify(p => p.Publicar(It.IsAny<Evento>()), Times.Exactly(0)); |
67 repository.Verify(p => p.Save(It.IsAny<Evento>()), Times.Exactly(0)); | |
68 } | |
11
9d6b28a696d1
corrección en método que verifica la autenticación del usuario
nelo@MTEySS.neluz.int
parents:
9
diff
changeset
|
69 |
9d6b28a696d1
corrección en método que verifica la autenticación del usuario
nelo@MTEySS.neluz.int
parents:
9
diff
changeset
|
70 [Test] |
9d6b28a696d1
corrección en método que verifica la autenticación del usuario
nelo@MTEySS.neluz.int
parents:
9
diff
changeset
|
71 public void Publicar_van_sin_servicio_de_seguridad() |
9d6b28a696d1
corrección en método que verifica la autenticación del usuario
nelo@MTEySS.neluz.int
parents:
9
diff
changeset
|
72 { |
9d6b28a696d1
corrección en método que verifica la autenticación del usuario
nelo@MTEySS.neluz.int
parents:
9
diff
changeset
|
73 var publicador = new Mock<IPublicador>(); |
15 | 74 var repository = new Mock<IEventoRepository>(); |
11
9d6b28a696d1
corrección en método que verifica la autenticación del usuario
nelo@MTEySS.neluz.int
parents:
9
diff
changeset
|
75 |
15 | 76 var agenda = new Agenda(publicador.Object, null, null, repository.Object); |
11
9d6b28a696d1
corrección en método que verifica la autenticación del usuario
nelo@MTEySS.neluz.int
parents:
9
diff
changeset
|
77 |
9d6b28a696d1
corrección en método que verifica la autenticación del usuario
nelo@MTEySS.neluz.int
parents:
9
diff
changeset
|
78 var van = EventoObjectMother.GetVanValidaParaPublicar(); |
9d6b28a696d1
corrección en método que verifica la autenticación del usuario
nelo@MTEySS.neluz.int
parents:
9
diff
changeset
|
79 |
12 | 80 Assert.Throws<UsuarioNoAutenticadoException>(() => agenda.Publicar(van.Titulo, van.Ponente, van.Fecha)); |
15 | 81 repository.Verify(p => p.Save(It.IsAny<Evento>()), Times.Exactly(0)); |
82 } | |
9
c90492faf268
Se implementa seguridad a través del constructor y no como parámetro
juanjose.montesdeocaarbos
parents:
8
diff
changeset
|
83 |
0
3f7dbb633b71
Test sobre la publicación de Eventos al registrarlos en la Agenda
nelopauselli
parents:
diff
changeset
|
84 [Test] |
4 | 85 public void Error_al_publicar_van() |
86 { | |
87 var publicador = new Mock<IPublicador>(); | |
15 | 88 var repository = new Mock<IEventoRepository>(); |
89 | |
4 | 90 publicador.Setup(p => p.Publicar(It.IsAny<Evento>())).Throws(new Exception("Error intencional")); |
91 | |
15 | 92 var agenda = new Agenda(publicador.Object, null, SeguridadServiceDefault, repository.Object); |
4 | 93 |
94 var van = EventoObjectMother.GetVanValidaParaPublicar(); | |
12 | 95 Assert.Throws<Exception>(() => agenda.Publicar(van.Titulo, van.Ponente, van.Fecha)); |
7
deee2ca97f5b
Se modificó Agenda para exponer los eventos a través de métodos y no a través de propiedades. (Servicio de Negocios vs Objeto Persistente).
juanjose.montesdeocaarbos
parents:
6
diff
changeset
|
96 Assert.AreEqual(0, agenda.GetEventosPublicados().Count); |
4 | 97 |
98 publicador.Verify(p => p.Publicar(It.IsAny<Evento>()), Times.Exactly(1)); | |
15 | 99 repository.Verify(p => p.Save(It.IsAny<Evento>()), Times.Exactly(0)); |
4 | 100 } |
101 | |
102 [Test] | |
1 | 103 public void Publicar_van_multiples_publicadores() |
0
3f7dbb633b71
Test sobre la publicación de Eventos al registrarlos en la Agenda
nelopauselli
parents:
diff
changeset
|
104 { |
3f7dbb633b71
Test sobre la publicación de Eventos al registrarlos en la Agenda
nelopauselli
parents:
diff
changeset
|
105 var publicador1 = new Mock<IPublicador>(); |
3f7dbb633b71
Test sobre la publicación de Eventos al registrarlos en la Agenda
nelopauselli
parents:
diff
changeset
|
106 var publicador2 = new Mock<IPublicador>(); |
3f7dbb633b71
Test sobre la publicación de Eventos al registrarlos en la Agenda
nelopauselli
parents:
diff
changeset
|
107 |
15 | 108 var repository = new Mock<IEventoRepository>(); |
109 | |
110 var agenda = new Agenda(new CompositePublicador(new[] { publicador1.Object, publicador2.Object }), null, SeguridadServiceDefault, repository.Object); | |
0
3f7dbb633b71
Test sobre la publicación de Eventos al registrarlos en la Agenda
nelopauselli
parents:
diff
changeset
|
111 |
4 | 112 var van = EventoObjectMother.GetVanValidaParaPublicar(); |
12 | 113 agenda.Publicar(van.Titulo, van.Ponente, van.Fecha); |
0
3f7dbb633b71
Test sobre la publicación de Eventos al registrarlos en la Agenda
nelopauselli
parents:
diff
changeset
|
114 |
3f7dbb633b71
Test sobre la publicación de Eventos al registrarlos en la Agenda
nelopauselli
parents:
diff
changeset
|
115 publicador1.Verify(p => p.Publicar(It.IsAny<Evento>()), Times.Exactly(1)); |
3f7dbb633b71
Test sobre la publicación de Eventos al registrarlos en la Agenda
nelopauselli
parents:
diff
changeset
|
116 publicador2.Verify(p => p.Publicar(It.IsAny<Evento>()), Times.Exactly(1)); |
15 | 117 repository.Verify(p => p.Save(It.IsAny<Evento>()), Times.Exactly(1)); |
0
3f7dbb633b71
Test sobre la publicación de Eventos al registrarlos en la Agenda
nelopauselli
parents:
diff
changeset
|
118 } |
1 | 119 |
120 [Test] | |
121 public void Publicar_y_recordar_van() | |
122 { | |
15 | 123 var repository = new Mock<IEventoRepository>(); |
124 | |
1 | 125 var publicador1 = new Mock<IPublicador>(); |
126 var publicador2 = new Mock<IPublicador>(); | |
127 var recordador1 = new Mock<IRecordador>(); | |
128 | |
15 | 129 var agenda = new Agenda(new CompositePublicador(new[] { publicador1.Object, publicador2.Object }), recordador1.Object, SeguridadServiceDefault, repository.Object); |
1 | 130 |
4 | 131 var van = EventoObjectMother.GetVanValidaParaPublicar(); |
12 | 132 agenda.Publicar(van.Titulo, van.Ponente, van.Fecha); |
1 | 133 |
134 agenda.Recordar(van); | |
135 | |
136 publicador1.Verify(p => p.Publicar(It.IsAny<Evento>()), Times.Exactly(1)); | |
137 publicador2.Verify(p => p.Publicar(It.IsAny<Evento>()), Times.Exactly(1)); | |
138 recordador1.Verify(r => r.Recordar(It.IsAny<Evento>()), Times.Exactly(1)); | |
139 | |
15 | 140 repository.Verify(p => p.Save(It.IsAny<Evento>()), Times.Exactly(1)); |
2 | 141 } |
142 | |
143 [Test] | |
8
cae27d7eb697
Se agregó ISeguridad para validar autenticaciones de usuarios.
juanjose.montesdeocaarbos
parents:
7
diff
changeset
|
144 public void Propuesta_de_van_con_usuario_autenticado() |
4 | 145 { |
15 | 146 var repository = new EventoRepository(); |
147 | |
148 var van = new Evento { Titulo = "Van propuesta" }; | |
4 | 149 |
8
cae27d7eb697
Se agregó ISeguridad para validar autenticaciones de usuarios.
juanjose.montesdeocaarbos
parents:
7
diff
changeset
|
150 var seguridad = new Mock<ISeguridad>(); |
15 | 151 var agenda = new Agenda(null, null, seguridad.Object, repository); |
8
cae27d7eb697
Se agregó ISeguridad para validar autenticaciones de usuarios.
juanjose.montesdeocaarbos
parents:
7
diff
changeset
|
152 |
cae27d7eb697
Se agregó ISeguridad para validar autenticaciones de usuarios.
juanjose.montesdeocaarbos
parents:
7
diff
changeset
|
153 seguridad.Setup(s => s.GetPrincipal()).Returns(SeguridadObjectMother.GetGenericPrincipalAutenticadoSinRoles()); |
4 | 154 agenda.Proponer(van); |
155 | |
156 IList<Evento> eventosPropuestos = agenda.GetEventosPropuestos(); | |
157 Assert.IsNotNull(eventosPropuestos); | |
158 Assert.AreEqual(1, eventosPropuestos.Count); | |
159 Assert.AreEqual("Van propuesta", eventosPropuestos[0].Titulo); | |
160 } | |
161 | |
6
2912c1dd0e6b
Se verificó mediante un test que las propuestas y las publicaciones se estaban mezclando. Se corrigió el bug.
juanjose.montesdeocaarbos
parents:
4
diff
changeset
|
162 [Test] |
2912c1dd0e6b
Se verificó mediante un test que las propuestas y las publicaciones se estaban mezclando. Se corrigió el bug.
juanjose.montesdeocaarbos
parents:
4
diff
changeset
|
163 public void Verificar_propuesta_separada_de_publicacion() |
2912c1dd0e6b
Se verificó mediante un test que las propuestas y las publicaciones se estaban mezclando. Se corrigió el bug.
juanjose.montesdeocaarbos
parents:
4
diff
changeset
|
164 { |
15 | 165 var seguridad = new Mock<ISeguridad>(); |
166 var agenda = new Agenda(null, null, seguridad.Object, new EventoRepository()); | |
6
2912c1dd0e6b
Se verificó mediante un test que las propuestas y las publicaciones se estaban mezclando. Se corrigió el bug.
juanjose.montesdeocaarbos
parents:
4
diff
changeset
|
167 |
12 | 168 var vanPropuesta = new Evento { Titulo = "Van propuesta" }; |
6
2912c1dd0e6b
Se verificó mediante un test que las propuestas y las publicaciones se estaban mezclando. Se corrigió el bug.
juanjose.montesdeocaarbos
parents:
4
diff
changeset
|
169 var vanPublicada = EventoObjectMother.GetVanValidaParaPublicar(); |
8
cae27d7eb697
Se agregó ISeguridad para validar autenticaciones de usuarios.
juanjose.montesdeocaarbos
parents:
7
diff
changeset
|
170 seguridad.Setup(s => s.GetPrincipal()).Returns(SeguridadObjectMother.GetGenericPrincipalAutenticadoSinRoles()); |
6
2912c1dd0e6b
Se verificó mediante un test que las propuestas y las publicaciones se estaban mezclando. Se corrigió el bug.
juanjose.montesdeocaarbos
parents:
4
diff
changeset
|
171 |
2912c1dd0e6b
Se verificó mediante un test que las propuestas y las publicaciones se estaban mezclando. Se corrigió el bug.
juanjose.montesdeocaarbos
parents:
4
diff
changeset
|
172 agenda.Proponer(vanPropuesta); |
12 | 173 agenda.Publicar(vanPublicada.Titulo, vanPublicada.Ponente, vanPublicada.Fecha); |
6
2912c1dd0e6b
Se verificó mediante un test que las propuestas y las publicaciones se estaban mezclando. Se corrigió el bug.
juanjose.montesdeocaarbos
parents:
4
diff
changeset
|
174 |
2912c1dd0e6b
Se verificó mediante un test que las propuestas y las publicaciones se estaban mezclando. Se corrigió el bug.
juanjose.montesdeocaarbos
parents:
4
diff
changeset
|
175 IList<Evento> eventosPropuestos = agenda.GetEventosPropuestos(); |
2912c1dd0e6b
Se verificó mediante un test que las propuestas y las publicaciones se estaban mezclando. Se corrigió el bug.
juanjose.montesdeocaarbos
parents:
4
diff
changeset
|
176 IList<Evento> eventosPublicados = agenda.GetEventosPublicados(); |
2912c1dd0e6b
Se verificó mediante un test que las propuestas y las publicaciones se estaban mezclando. Se corrigió el bug.
juanjose.montesdeocaarbos
parents:
4
diff
changeset
|
177 |
2912c1dd0e6b
Se verificó mediante un test que las propuestas y las publicaciones se estaban mezclando. Se corrigió el bug.
juanjose.montesdeocaarbos
parents:
4
diff
changeset
|
178 Assert.AreEqual(1, eventosPropuestos.Count); |
2912c1dd0e6b
Se verificó mediante un test que las propuestas y las publicaciones se estaban mezclando. Se corrigió el bug.
juanjose.montesdeocaarbos
parents:
4
diff
changeset
|
179 Assert.AreEqual(1, eventosPublicados.Count); |
15 | 180 } |
6
2912c1dd0e6b
Se verificó mediante un test que las propuestas y las publicaciones se estaban mezclando. Se corrigió el bug.
juanjose.montesdeocaarbos
parents:
4
diff
changeset
|
181 |
4 | 182 [Test] |
183 public void Propuesta_de_van_sin_titulo() | |
184 { | |
15 | 185 var repository = new Mock<IEventoRepository>(); |
12 | 186 var van = new Evento(); |
4 | 187 |
8
cae27d7eb697
Se agregó ISeguridad para validar autenticaciones de usuarios.
juanjose.montesdeocaarbos
parents:
7
diff
changeset
|
188 var seguridad = new Mock<ISeguridad>(); |
15 | 189 var agenda = new Agenda(null, null, seguridad.Object, repository.Object); |
8
cae27d7eb697
Se agregó ISeguridad para validar autenticaciones de usuarios.
juanjose.montesdeocaarbos
parents:
7
diff
changeset
|
190 |
cae27d7eb697
Se agregó ISeguridad para validar autenticaciones de usuarios.
juanjose.montesdeocaarbos
parents:
7
diff
changeset
|
191 Assert.Throws<ValidationException>(() => agenda.Proponer(van)); |
4 | 192 Assert.AreEqual(Guid.Empty, van.Id); |
15 | 193 |
194 repository.Verify(p => p.Save(It.IsAny<Evento>()), Times.Exactly(0)); | |
4 | 195 } |
196 | |
197 [Test] | |
198 public void Agendar_van_propuesta_sin_fecha() | |
199 { | |
15 | 200 var repository = new EventoRepository(); |
201 | |
202 var seguridad = new Mock<ISeguridad>(); | |
203 var agenda = new Agenda(null, null, seguridad.Object, repository); | |
8
cae27d7eb697
Se agregó ISeguridad para validar autenticaciones de usuarios.
juanjose.montesdeocaarbos
parents:
7
diff
changeset
|
204 |
cae27d7eb697
Se agregó ISeguridad para validar autenticaciones de usuarios.
juanjose.montesdeocaarbos
parents:
7
diff
changeset
|
205 seguridad.Setup(s => s.GetPrincipal()).Returns(SeguridadObjectMother.GetGenericPrincipalAutenticadoSinRoles()); |
4 | 206 |
207 { | |
12 | 208 var van = new Evento {Titulo = "Van propuesta"}; |
8
cae27d7eb697
Se agregó ISeguridad para validar autenticaciones de usuarios.
juanjose.montesdeocaarbos
parents:
7
diff
changeset
|
209 agenda.Proponer(van); |
4 | 210 } |
211 | |
212 { | |
213 var van = agenda.GetEventosPropuestos().FirstOrDefault(); | |
214 Assert.IsNotNull(van); | |
12 | 215 Assert.Throws<ValidationException>(() => agenda.Publicar(van.Titulo, van.Ponente, van.Fecha)); |
4 | 216 } |
217 } | |
218 | |
219 [Test] | |
220 public void Agendar_van_propuesta_sin_ponente() | |
221 { | |
15 | 222 var repository = new EventoRepository(); |
223 | |
224 var seguridad = new Mock<ISeguridad>(); | |
225 var agenda = new Agenda(null, null, seguridad.Object, repository); | |
8
cae27d7eb697
Se agregó ISeguridad para validar autenticaciones de usuarios.
juanjose.montesdeocaarbos
parents:
7
diff
changeset
|
226 |
cae27d7eb697
Se agregó ISeguridad para validar autenticaciones de usuarios.
juanjose.montesdeocaarbos
parents:
7
diff
changeset
|
227 seguridad.Setup(s => s.GetPrincipal()).Returns(SeguridadObjectMother.GetGenericPrincipalAutenticadoSinRoles()); |
4 | 228 |
229 { | |
12 | 230 var van = new Evento { Titulo = "Van propuesta" }; |
8
cae27d7eb697
Se agregó ISeguridad para validar autenticaciones de usuarios.
juanjose.montesdeocaarbos
parents:
7
diff
changeset
|
231 agenda.Proponer(van); |
4 | 232 } |
233 | |
234 { | |
12 | 235 var van = agenda.GetEventosPropuestos().FirstOrDefault(); |
4 | 236 Assert.IsNotNull(van); |
237 | |
238 van.Fecha = DateTime.Today.AddDays(5); | |
12 | 239 Assert.Throws<ValidationException>(() => agenda.Publicar(van.Titulo, van.Ponente, van.Fecha)); |
4 | 240 } |
241 } | |
242 | |
243 [Test] | |
2 | 244 public void Van_crud() |
245 { | |
15 | 246 var van = EventoObjectMother.GetVanValidaParaPublicar(); |
12 | 247 |
248 Guid vanId; | |
2 | 249 { |
15 | 250 var agenda = new Agenda(null, null, SeguridadServiceDefault, new EventoRepository()); |
12 | 251 agenda.Publicar(van.Titulo, van.Ponente, van.Fecha); |
2 | 252 |
253 IAgendaRepository agendaRepository = new AgendaRepository(); | |
254 | |
255 agendaRepository.Save(agenda); | |
256 vanId = agenda.Id; | |
257 } | |
258 | |
259 { | |
260 IAgendaRepository agendaRepository = new AgendaRepository(); | |
261 | |
3 | 262 Agenda agenda = agendaRepository.Get(vanId); |
2 | 263 |
264 Assert.IsNotNull(agenda); | |
7
deee2ca97f5b
Se modificó Agenda para exponer los eventos a través de métodos y no a través de propiedades. (Servicio de Negocios vs Objeto Persistente).
juanjose.montesdeocaarbos
parents:
6
diff
changeset
|
265 Assert.AreEqual(1, agenda.GetEventosPublicados().Count); |
12 | 266 agenda.Publicar(van.Titulo, van.Ponente, van.Fecha); |
2 | 267 |
268 agendaRepository.Update(agenda); | |
269 } | |
270 | |
271 { | |
272 IAgendaRepository agendaRepository = new AgendaRepository(); | |
273 | |
3 | 274 Agenda agenda = agendaRepository.Get(vanId); |
2 | 275 |
276 Assert.IsNotNull(agenda); | |
7
deee2ca97f5b
Se modificó Agenda para exponer los eventos a través de métodos y no a través de propiedades. (Servicio de Negocios vs Objeto Persistente).
juanjose.montesdeocaarbos
parents:
6
diff
changeset
|
277 Assert.AreEqual(2, agenda.GetEventosPublicados().Count); |
2 | 278 |
279 agendaRepository.Delete(agenda); | |
280 } | |
281 | |
282 { | |
283 IAgendaRepository agendaRepository = new AgendaRepository(); | |
284 | |
3 | 285 Agenda agenda = agendaRepository.Get(vanId); |
2 | 286 |
287 Assert.IsNull(agenda); | |
288 } | |
1 | 289 } |
0
3f7dbb633b71
Test sobre la publicación de Eventos al registrarlos en la Agenda
nelopauselli
parents:
diff
changeset
|
290 } |
3 | 291 } |