Mercurial > altnet-hispano
comparison Agendas/trunk/src/Agendas.Tests/AgendaTests.cs @ 12:05996fa19e04
Unificamos Van y Cafe en Evento
Agenda.Publicar con los valores como parĂ¡metros independientes
author | nelo@MTEySS.neluz.int |
---|---|
date | Sun, 13 Mar 2011 19:50:17 -0300 |
parents | 9d6b28a696d1 |
children | 08b9e96132a5 |
comparison
equal
deleted
inserted
replaced
11:9d6b28a696d1 | 12:05996fa19e04 |
---|---|
22 return seguridad.Object; | 22 return seguridad.Object; |
23 } | 23 } |
24 } | 24 } |
25 | 25 |
26 [Test] | 26 [Test] |
27 public void Publicar_cafe() | 27 public void Publicar_van_con_usuario_autenticado() |
28 { | 28 { |
29 var publicador = new Mock<IPublicador>(); | 29 var publicador = new Mock<IPublicador>(); |
30 | |
30 var agenda = new Agenda(publicador.Object, null, SeguridadServiceDefault); | 31 var agenda = new Agenda(publicador.Object, null, SeguridadServiceDefault); |
31 | 32 |
32 var cafe = EventoObjectMother.GetCafeValidoParaPublicar(); | 33 var van = EventoObjectMother.GetVanValidaParaPublicar(); |
33 agenda.Publicar(cafe); | 34 |
34 | 35 agenda.Publicar(van.Titulo, van.Ponente, van.Fecha); |
35 publicador.Verify(p => p.Publicar(It.IsAny<Evento>()), Times.Exactly(1)); | |
36 } | |
37 | |
38 [Test] | |
39 public void Publicar_van_con_usuario_autenticado() | |
40 { | |
41 var publicador = new Mock<IPublicador>(); | |
42 | |
43 var agenda = new Agenda(publicador.Object, null, SeguridadServiceDefault); | |
44 | |
45 var van = EventoObjectMother.GetVanValidaParaPublicar(); | |
46 | |
47 agenda.Publicar(van); | |
48 Assert.AreEqual(1, agenda.GetEventosPublicados().Count); | 36 Assert.AreEqual(1, agenda.GetEventosPublicados().Count); |
49 | 37 |
50 publicador.Verify(p => p.Publicar(It.IsAny<Evento>()), Times.Exactly(1)); | 38 publicador.Verify(p => p.Publicar(It.IsAny<Evento>()), Times.Exactly(1)); |
51 } | 39 } |
52 | 40 |
59 | 47 |
60 var van = EventoObjectMother.GetVanValidaParaPublicar(); | 48 var van = EventoObjectMother.GetVanValidaParaPublicar(); |
61 | 49 |
62 seguridad.Setup(s => s.GetPrincipal()).Returns(SeguridadObjectMother.GetGenericPrincipalSinAutenticar()); | 50 seguridad.Setup(s => s.GetPrincipal()).Returns(SeguridadObjectMother.GetGenericPrincipalSinAutenticar()); |
63 | 51 |
64 Assert.Throws<UsuarioNoAutenticadoException>(() => agenda.Publicar(van)); | 52 Assert.Throws<UsuarioNoAutenticadoException>(() => agenda.Publicar(van.Titulo, van.Ponente, van.Fecha)); |
65 } | 53 } |
66 | 54 |
67 [Test] | 55 [Test] |
68 public void Publicar_van_sin_servicio_de_seguridad() | 56 public void Publicar_van_sin_servicio_de_seguridad() |
69 { | 57 { |
71 | 59 |
72 var agenda = new Agenda(publicador.Object, null, null); | 60 var agenda = new Agenda(publicador.Object, null, null); |
73 | 61 |
74 var van = EventoObjectMother.GetVanValidaParaPublicar(); | 62 var van = EventoObjectMother.GetVanValidaParaPublicar(); |
75 | 63 |
76 Assert.Throws<UsuarioNoAutenticadoException>(() => agenda.Publicar(van)); | 64 Assert.Throws<UsuarioNoAutenticadoException>(() => agenda.Publicar(van.Titulo, van.Ponente, van.Fecha)); |
77 } | 65 } |
78 | 66 |
79 [Test] | 67 [Test] |
80 public void Error_al_publicar_van() | 68 public void Error_al_publicar_van() |
81 { | 69 { |
83 publicador.Setup(p => p.Publicar(It.IsAny<Evento>())).Throws(new Exception("Error intencional")); | 71 publicador.Setup(p => p.Publicar(It.IsAny<Evento>())).Throws(new Exception("Error intencional")); |
84 | 72 |
85 var agenda = new Agenda(publicador.Object, null, null); | 73 var agenda = new Agenda(publicador.Object, null, null); |
86 | 74 |
87 var van = EventoObjectMother.GetVanValidaParaPublicar(); | 75 var van = EventoObjectMother.GetVanValidaParaPublicar(); |
88 Assert.Throws<Exception>(() => agenda.Publicar(van)); | 76 Assert.Throws<Exception>(() => agenda.Publicar(van.Titulo, van.Ponente, van.Fecha)); |
89 Assert.AreEqual(0, agenda.GetEventosPublicados().Count); | 77 Assert.AreEqual(0, agenda.GetEventosPublicados().Count); |
90 | 78 |
91 publicador.Verify(p => p.Publicar(It.IsAny<Evento>()), Times.Exactly(1)); | 79 publicador.Verify(p => p.Publicar(It.IsAny<Evento>()), Times.Exactly(1)); |
92 } | 80 } |
93 | 81 |
98 var publicador2 = new Mock<IPublicador>(); | 86 var publicador2 = new Mock<IPublicador>(); |
99 | 87 |
100 var agenda = new Agenda(new CompositePublicador(new[] { publicador1.Object, publicador2.Object }), null, SeguridadServiceDefault); | 88 var agenda = new Agenda(new CompositePublicador(new[] { publicador1.Object, publicador2.Object }), null, SeguridadServiceDefault); |
101 | 89 |
102 var van = EventoObjectMother.GetVanValidaParaPublicar(); | 90 var van = EventoObjectMother.GetVanValidaParaPublicar(); |
103 agenda.Publicar(van); | 91 agenda.Publicar(van.Titulo, van.Ponente, van.Fecha); |
104 | 92 |
105 publicador1.Verify(p => p.Publicar(It.IsAny<Evento>()), Times.Exactly(1)); | 93 publicador1.Verify(p => p.Publicar(It.IsAny<Evento>()), Times.Exactly(1)); |
106 publicador2.Verify(p => p.Publicar(It.IsAny<Evento>()), Times.Exactly(1)); | 94 publicador2.Verify(p => p.Publicar(It.IsAny<Evento>()), Times.Exactly(1)); |
107 } | 95 } |
108 | 96 |
114 var recordador1 = new Mock<IRecordador>(); | 102 var recordador1 = new Mock<IRecordador>(); |
115 | 103 |
116 var agenda = new Agenda(new CompositePublicador(new[] { publicador1.Object, publicador2.Object }), recordador1.Object, SeguridadServiceDefault); | 104 var agenda = new Agenda(new CompositePublicador(new[] { publicador1.Object, publicador2.Object }), recordador1.Object, SeguridadServiceDefault); |
117 | 105 |
118 var van = EventoObjectMother.GetVanValidaParaPublicar(); | 106 var van = EventoObjectMother.GetVanValidaParaPublicar(); |
119 agenda.Publicar(van); | 107 agenda.Publicar(van.Titulo, van.Ponente, van.Fecha); |
120 | 108 |
121 agenda.Recordar(van); | 109 agenda.Recordar(van); |
122 | 110 |
123 publicador1.Verify(p => p.Publicar(It.IsAny<Evento>()), Times.Exactly(1)); | 111 publicador1.Verify(p => p.Publicar(It.IsAny<Evento>()), Times.Exactly(1)); |
124 publicador2.Verify(p => p.Publicar(It.IsAny<Evento>()), Times.Exactly(1)); | 112 publicador2.Verify(p => p.Publicar(It.IsAny<Evento>()), Times.Exactly(1)); |
128 } | 116 } |
129 | 117 |
130 [Test] | 118 [Test] |
131 public void Propuesta_de_van_con_usuario_autenticado() | 119 public void Propuesta_de_van_con_usuario_autenticado() |
132 { | 120 { |
133 var van = new Van{Titulo = "Van propuesta"}; | 121 var van = new Evento{Titulo = "Van propuesta"}; |
134 | 122 |
135 var seguridad = new Mock<ISeguridad>(); | 123 var seguridad = new Mock<ISeguridad>(); |
136 var agenda = new Agenda(null, null, seguridad.Object); | 124 var agenda = new Agenda(null, null, seguridad.Object); |
137 | 125 |
138 seguridad.Setup(s => s.GetPrincipal()).Returns(SeguridadObjectMother.GetGenericPrincipalAutenticadoSinRoles()); | 126 seguridad.Setup(s => s.GetPrincipal()).Returns(SeguridadObjectMother.GetGenericPrincipalAutenticadoSinRoles()); |
148 public void Verificar_propuesta_separada_de_publicacion() | 136 public void Verificar_propuesta_separada_de_publicacion() |
149 { | 137 { |
150 var seguridad = new Mock<ISeguridad>(); | 138 var seguridad = new Mock<ISeguridad>(); |
151 var agenda = new Agenda(null, null, seguridad.Object); | 139 var agenda = new Agenda(null, null, seguridad.Object); |
152 | 140 |
153 var vanPropuesta = new Van { Titulo = "Van propuesta" }; | 141 var vanPropuesta = new Evento { Titulo = "Van propuesta" }; |
154 var vanPublicada = EventoObjectMother.GetVanValidaParaPublicar(); | 142 var vanPublicada = EventoObjectMother.GetVanValidaParaPublicar(); |
155 seguridad.Setup(s => s.GetPrincipal()).Returns(SeguridadObjectMother.GetGenericPrincipalAutenticadoSinRoles()); | 143 seguridad.Setup(s => s.GetPrincipal()).Returns(SeguridadObjectMother.GetGenericPrincipalAutenticadoSinRoles()); |
156 | 144 |
157 agenda.Proponer(vanPropuesta); | 145 agenda.Proponer(vanPropuesta); |
158 agenda.Publicar(vanPublicada); | 146 agenda.Publicar(vanPublicada.Titulo, vanPublicada.Ponente, vanPublicada.Fecha); |
159 | 147 |
160 IList<Evento> eventosPropuestos = agenda.GetEventosPropuestos(); | 148 IList<Evento> eventosPropuestos = agenda.GetEventosPropuestos(); |
161 IList<Evento> eventosPublicados = agenda.GetEventosPublicados(); | 149 IList<Evento> eventosPublicados = agenda.GetEventosPublicados(); |
162 | 150 |
163 Assert.AreEqual(1, eventosPropuestos.Count); | 151 Assert.AreEqual(1, eventosPropuestos.Count); |
165 } | 153 } |
166 | 154 |
167 [Test] | 155 [Test] |
168 public void Propuesta_de_van_sin_titulo() | 156 public void Propuesta_de_van_sin_titulo() |
169 { | 157 { |
170 var van = new Van(); | 158 var van = new Evento(); |
171 | 159 |
172 var seguridad = new Mock<ISeguridad>(); | 160 var seguridad = new Mock<ISeguridad>(); |
173 var agenda = new Agenda(null, null, seguridad.Object); | 161 var agenda = new Agenda(null, null, seguridad.Object); |
174 | 162 |
175 Assert.Throws<ValidationException>(() => agenda.Proponer(van)); | 163 Assert.Throws<ValidationException>(() => agenda.Proponer(van)); |
183 var agenda = new Agenda(null, null, seguridad.Object); | 171 var agenda = new Agenda(null, null, seguridad.Object); |
184 | 172 |
185 seguridad.Setup(s => s.GetPrincipal()).Returns(SeguridadObjectMother.GetGenericPrincipalAutenticadoSinRoles()); | 173 seguridad.Setup(s => s.GetPrincipal()).Returns(SeguridadObjectMother.GetGenericPrincipalAutenticadoSinRoles()); |
186 | 174 |
187 { | 175 { |
188 var van = new Van {Titulo = "Van propuesta"}; | 176 var van = new Evento {Titulo = "Van propuesta"}; |
189 agenda.Proponer(van); | 177 agenda.Proponer(van); |
190 } | 178 } |
191 | 179 |
192 { | 180 { |
193 var van = agenda.GetEventosPropuestos().FirstOrDefault(); | 181 var van = agenda.GetEventosPropuestos().FirstOrDefault(); |
194 Assert.IsNotNull(van); | 182 Assert.IsNotNull(van); |
195 Assert.Throws<ValidationException>(()=>agenda.Publicar(van)); | 183 Assert.Throws<ValidationException>(() => agenda.Publicar(van.Titulo, van.Ponente, van.Fecha)); |
196 } | 184 } |
197 } | 185 } |
198 | 186 |
199 [Test] | 187 [Test] |
200 public void Agendar_van_propuesta_sin_ponente() | 188 public void Agendar_van_propuesta_sin_ponente() |
203 var agenda = new Agenda(null, null, seguridad.Object); | 191 var agenda = new Agenda(null, null, seguridad.Object); |
204 | 192 |
205 seguridad.Setup(s => s.GetPrincipal()).Returns(SeguridadObjectMother.GetGenericPrincipalAutenticadoSinRoles()); | 193 seguridad.Setup(s => s.GetPrincipal()).Returns(SeguridadObjectMother.GetGenericPrincipalAutenticadoSinRoles()); |
206 | 194 |
207 { | 195 { |
208 var van = new Van { Titulo = "Van propuesta" }; | 196 var van = new Evento { Titulo = "Van propuesta" }; |
209 agenda.Proponer(van); | 197 agenda.Proponer(van); |
210 } | 198 } |
211 | 199 |
212 { | 200 { |
213 var van = agenda.GetEventosPropuestos().FirstOrDefault() as Van; | 201 var van = agenda.GetEventosPropuestos().FirstOrDefault(); |
214 Assert.IsNotNull(van); | 202 Assert.IsNotNull(van); |
215 | 203 |
216 van.Fecha = DateTime.Today.AddDays(5); | 204 van.Fecha = DateTime.Today.AddDays(5); |
217 Assert.Throws<ValidationException>(() => agenda.Publicar(van)); | 205 Assert.Throws<ValidationException>(() => agenda.Publicar(van.Titulo, van.Ponente, van.Fecha)); |
218 } | 206 } |
219 } | 207 } |
220 | 208 |
221 [Test] | 209 [Test] |
222 public void Van_crud() | 210 public void Van_crud() |
223 { | 211 { |
224 Guid vanId; | 212 var van = EventoObjectMother.GetVanValidaParaPublicar(); |
213 | |
214 Guid vanId; | |
225 { | 215 { |
226 var agenda = new Agenda(null, null, SeguridadServiceDefault); | 216 var agenda = new Agenda(null, null, SeguridadServiceDefault); |
227 agenda.Publicar(EventoObjectMother.GetVanValidaParaPublicar()); | 217 agenda.Publicar(van.Titulo, van.Ponente, van.Fecha); |
228 | 218 |
229 IAgendaRepository agendaRepository = new AgendaRepository(); | 219 IAgendaRepository agendaRepository = new AgendaRepository(); |
230 | 220 |
231 agendaRepository.Save(agenda); | 221 agendaRepository.Save(agenda); |
232 vanId = agenda.Id; | 222 vanId = agenda.Id; |
237 | 227 |
238 Agenda agenda = agendaRepository.Get(vanId); | 228 Agenda agenda = agendaRepository.Get(vanId); |
239 | 229 |
240 Assert.IsNotNull(agenda); | 230 Assert.IsNotNull(agenda); |
241 Assert.AreEqual(1, agenda.GetEventosPublicados().Count); | 231 Assert.AreEqual(1, agenda.GetEventosPublicados().Count); |
242 agenda.Publicar(EventoObjectMother.GetCafeValidoParaPublicar()); | 232 agenda.Publicar(van.Titulo, van.Ponente, van.Fecha); |
243 | 233 |
244 agendaRepository.Update(agenda); | 234 agendaRepository.Update(agenda); |
245 } | 235 } |
246 | 236 |
247 { | 237 { |