Mercurial > altnet-hispano
comparison Agendas/trunk/src/Agendas.Tests/AgendarTests.cs @ 138:62791999ad01
Agregando relaciĆ³n entre Evento y Patrocinador
author | nelopauselli |
---|---|
date | Thu, 28 Jul 2011 10:13:28 -0300 |
parents | 6f1041301797 |
children | 3639803112c6 |
comparison
equal
deleted
inserted
replaced
137:2d1adbaf0373 | 138:62791999ad01 |
---|---|
27 var publicador = new Mock<IPublicador>(); | 27 var publicador = new Mock<IPublicador>(); |
28 var repository = new Mock<IEventoRepository>(); | 28 var repository = new Mock<IEventoRepository>(); |
29 | 29 |
30 publicador.Setup(p => p.Publicar(It.IsAny<IEnumerable<Track>>())).Throws(new Exception("Error intencional")); | 30 publicador.Setup(p => p.Publicar(It.IsAny<IEnumerable<Track>>())).Throws(new Exception("Error intencional")); |
31 | 31 |
32 var agenda = new Agenda(publicador.Object, repository.Object, DefaultPersonaRepository); | 32 var agenda = new Agenda(publicador.Object, repository.Object, DefaultPersonaRepository, DefaultPatrocinadorRepository); |
33 | 33 |
34 Assert.Throws<Exception>( | 34 Assert.Throws<Exception>( |
35 () => agenda.Agendar("Van para publicar", "jjmontes", DateTime.Now, urlInvitacion, TipoEvento.Van)); | 35 () => agenda.Agendar("Van para publicar", "jjmontes", DateTime.Now, urlInvitacion, TipoEvento.Van)); |
36 Assert.AreEqual(0, agenda.GetEventosActivos().Count); | 36 Assert.AreEqual(0, agenda.GetEventosActivos().Count); |
37 | 37 |
45 IdentityContext.Init(null, new PersonaRepository()); | 45 IdentityContext.Init(null, new PersonaRepository()); |
46 | 46 |
47 var publicador = new Mock<IPublicador>(); | 47 var publicador = new Mock<IPublicador>(); |
48 var repository = new Mock<IEventoRepository>(); | 48 var repository = new Mock<IEventoRepository>(); |
49 | 49 |
50 var agenda = new Agenda(publicador.Object, repository.Object, DefaultPersonaRepository); | 50 var agenda = new Agenda(publicador.Object, repository.Object, DefaultPersonaRepository, DefaultPatrocinadorRepository); |
51 | 51 |
52 Assert.Throws<IdentityContextNotConfiguredException>( | 52 Assert.Throws<IdentityContextNotConfiguredException>( |
53 () => agenda.Agendar("Van para publicar", "jjmontes", DateTime.Now, | 53 () => agenda.Agendar("Van para publicar", "jjmontes", DateTime.Now, |
54 urlInvitacion, TipoEvento.Van)); | 54 urlInvitacion, TipoEvento.Van)); |
55 repository.Verify(p => p.Save(It.IsAny<Evento>()), Times.Exactly(0)); | 55 repository.Verify(p => p.Save(It.IsAny<Evento>()), Times.Exactly(0)); |
61 SetCurrentUser(null, null); | 61 SetCurrentUser(null, null); |
62 | 62 |
63 var publicador = new Mock<IPublicador>(); | 63 var publicador = new Mock<IPublicador>(); |
64 var repository = new Mock<IEventoRepository>(); | 64 var repository = new Mock<IEventoRepository>(); |
65 | 65 |
66 var agenda = new Agenda(publicador.Object, repository.Object, DefaultPersonaRepository); | 66 var agenda = new Agenda(publicador.Object, repository.Object, DefaultPersonaRepository, DefaultPatrocinadorRepository); |
67 | 67 |
68 Assert.Throws<UsuarioNoAutenticadoException>(() => agenda.Agendar("Van para publicar", "jjmontes", DateTime.Now, | 68 Assert.Throws<UsuarioNoAutenticadoException>(() => agenda.Agendar("Van para publicar", "jjmontes", DateTime.Now, |
69 urlInvitacion, TipoEvento.Van)); | 69 urlInvitacion, TipoEvento.Van)); |
70 | 70 |
71 publicador.Verify(p => p.Publicar(It.IsAny<IEnumerable<Track>>()), Times.Exactly(0)); | 71 publicador.Verify(p => p.Publicar(It.IsAny<IEnumerable<Track>>()), Times.Exactly(0)); |
73 } | 73 } |
74 | 74 |
75 [Test] | 75 [Test] |
76 public void Intentar_agendar_evento_sin_ponente() | 76 public void Intentar_agendar_evento_sin_ponente() |
77 { | 77 { |
78 var agenda = new Agenda(null, DefaultEventoRepository, DefaultPersonaRepository); | 78 var agenda = new Agenda(null, DefaultEventoRepository, DefaultPersonaRepository, DefaultPatrocinadorRepository); |
79 | 79 |
80 var r = agenda.Agendar("Van para publicar", string.Empty, DateTime.Now, | 80 var r = agenda.Agendar("Van para publicar", string.Empty, DateTime.Now, |
81 urlInvitacion, TipoEvento.Van); | 81 urlInvitacion, TipoEvento.Van); |
82 | 82 |
83 Assert.IsFalse(r.Succeful); | 83 Assert.IsFalse(r.Succeful); |
90 var publicador2 = new Mock<IPublicador>(); | 90 var publicador2 = new Mock<IPublicador>(); |
91 | 91 |
92 var repository = new Mock<IEventoRepository>(); | 92 var repository = new Mock<IEventoRepository>(); |
93 | 93 |
94 var agenda = new Agenda(new CompositePublicador(new[] { publicador1.Object, publicador2.Object }), | 94 var agenda = new Agenda(new CompositePublicador(new[] { publicador1.Object, publicador2.Object }), |
95 repository.Object, DefaultPersonaRepository); | 95 repository.Object, DefaultPersonaRepository, DefaultPatrocinadorRepository); |
96 | 96 |
97 agenda.Agendar("Van para publicar", "jjmontes", DateTime.Now, | 97 agenda.Agendar("Van para publicar", "jjmontes", DateTime.Now, |
98 urlInvitacion, TipoEvento.Van); | 98 urlInvitacion, TipoEvento.Van); |
99 | 99 |
100 publicador1.Verify(p => p.Publicar(It.IsAny<IEnumerable<Track>>()), Times.Exactly(1)); | 100 publicador1.Verify(p => p.Publicar(It.IsAny<IEnumerable<Track>>()), Times.Exactly(1)); |
105 [Test] | 105 [Test] |
106 public void Agendar_evento_correctamente() | 106 public void Agendar_evento_correctamente() |
107 { | 107 { |
108 var publicador = new Mock<IPublicador>(); | 108 var publicador = new Mock<IPublicador>(); |
109 | 109 |
110 var agenda = new Agenda(publicador.Object, DefaultEventoRepository, DefaultPersonaRepository); | 110 var agenda = new Agenda(publicador.Object, DefaultEventoRepository, DefaultPersonaRepository, DefaultPatrocinadorRepository); |
111 | 111 |
112 agenda.Agendar("Van para publicar", "jjmontes", DateTime.Now, | 112 agenda.Agendar("Van para publicar", "jjmontes", DateTime.Now, |
113 urlInvitacion, TipoEvento.Van); | 113 urlInvitacion, TipoEvento.Van); |
114 | 114 |
115 Assert.AreEqual(0, agenda.GetEventosActivos(EventoPropuestoState.GetInstance()).Count); | 115 Assert.AreEqual(0, agenda.GetEventosActivos(EventoPropuestoState.GetInstance()).Count); |
128 public void Agendar_y_modificar_evento() | 128 public void Agendar_y_modificar_evento() |
129 { | 129 { |
130 var repository = DefaultEventoRepository; | 130 var repository = DefaultEventoRepository; |
131 var publicador = new Mock<IPublicador>(); | 131 var publicador = new Mock<IPublicador>(); |
132 | 132 |
133 var agenda = new Agenda(publicador.Object, repository, DefaultPersonaRepository); | 133 var agenda = new Agenda(publicador.Object, repository, DefaultPersonaRepository, DefaultPatrocinadorRepository); |
134 | 134 |
135 agenda.Agendar("Van para publicar", "jjmontes", DateTime.Now, | 135 agenda.Agendar("Van para publicar", "jjmontes", DateTime.Now, |
136 urlInvitacion, TipoEvento.Van); | 136 urlInvitacion, TipoEvento.Van); |
137 | 137 |
138 publicador.Verify(p => p.Publicar(It.IsAny<IEnumerable<Track>>()), Times.Exactly(1)); | 138 publicador.Verify(p => p.Publicar(It.IsAny<IEnumerable<Track>>()), Times.Exactly(1)); |
161 { | 161 { |
162 var publicador1 = new Mock<IPublicador>(); | 162 var publicador1 = new Mock<IPublicador>(); |
163 var publicador2 = new Mock<IPublicador>(); | 163 var publicador2 = new Mock<IPublicador>(); |
164 | 164 |
165 var agenda = new Agenda(new CompositePublicador(new[] { publicador1.Object, publicador2.Object }), | 165 var agenda = new Agenda(new CompositePublicador(new[] { publicador1.Object, publicador2.Object }), |
166 DefaultEventoRepository, DefaultPersonaRepository); | 166 DefaultEventoRepository, DefaultPersonaRepository, DefaultPatrocinadorRepository); |
167 | 167 |
168 agenda.Agendar("Van para publicar", "jjmontes", DateTime.Now, | 168 agenda.Agendar("Van para publicar", "jjmontes", DateTime.Now, |
169 urlInvitacion, TipoEvento.Van); | 169 urlInvitacion, TipoEvento.Van); |
170 | 170 |
171 var van = agenda.GetEventosActivos().Single(v => v.Titulo == "Van para publicar"); | 171 var van = agenda.GetEventosActivos().Single(v => v.Titulo == "Van para publicar"); |
181 { | 181 { |
182 var publicador1 = new Mock<IPublicador>(); | 182 var publicador1 = new Mock<IPublicador>(); |
183 var publicador2 = new Mock<IPublicador>(); | 183 var publicador2 = new Mock<IPublicador>(); |
184 | 184 |
185 var agenda = new Agenda(new CompositePublicador(new[] { publicador1.Object, publicador2.Object }), | 185 var agenda = new Agenda(new CompositePublicador(new[] { publicador1.Object, publicador2.Object }), |
186 DefaultEventoRepository, DefaultPersonaRepository); | 186 DefaultEventoRepository, DefaultPersonaRepository, DefaultPatrocinadorRepository); |
187 | 187 |
188 agenda.Proponer("Html 5", "jjmontes", urlInvitacion, TipoEvento.Van); | 188 agenda.Proponer("Html 5", "jjmontes", urlInvitacion, TipoEvento.Van); |
189 Assert.AreEqual(1, agenda.GetEventosActivos(EventoPropuestoState.GetInstance()).Count); | 189 Assert.AreEqual(1, agenda.GetEventosActivos(EventoPropuestoState.GetInstance()).Count); |
190 Assert.AreEqual(1, agenda.GetEventosActivos().Count); | 190 Assert.AreEqual(1, agenda.GetEventosActivos().Count); |
191 | 191 |
208 [Test] | 208 [Test] |
209 public void Al_proponer_un_evento_debe_quedar_con_estado_EventoPropuestoState_y_debe_generar_el_track_correspondiente() | 209 public void Al_proponer_un_evento_debe_quedar_con_estado_EventoPropuestoState_y_debe_generar_el_track_correspondiente() |
210 { | 210 { |
211 var publicador1 = new Mock<IPublicador>(); | 211 var publicador1 = new Mock<IPublicador>(); |
212 | 212 |
213 var agenda = new Agenda(publicador1.Object, DefaultEventoRepository, DefaultPersonaRepository); | 213 var agenda = new Agenda(publicador1.Object, DefaultEventoRepository, DefaultPersonaRepository, DefaultPatrocinadorRepository); |
214 agenda.Proponer("Html 5", "jjmontes", urlInvitacion, TipoEvento.Van); | 214 agenda.Proponer("Html 5", "jjmontes", urlInvitacion, TipoEvento.Van); |
215 | 215 |
216 var evento = | 216 var evento = |
217 DefaultEventoRepository.GetByState(EventoPropuestoState.GetInstance()).Single(e => e.Titulo == "Html 5"); | 217 DefaultEventoRepository.GetByState(EventoPropuestoState.GetInstance()).Single(e => e.Titulo == "Html 5"); |
218 | 218 |
223 [Test] | 223 [Test] |
224 public void Al_agendar_un_evento_debe_quedar_con_estado_EventoAgendadoState_y_debe_generar_el_track_correspondiente() | 224 public void Al_agendar_un_evento_debe_quedar_con_estado_EventoAgendadoState_y_debe_generar_el_track_correspondiente() |
225 { | 225 { |
226 var publicador1 = new Mock<IPublicador>(); | 226 var publicador1 = new Mock<IPublicador>(); |
227 | 227 |
228 var agenda = new Agenda(publicador1.Object, DefaultEventoRepository, DefaultPersonaRepository); | 228 var agenda = new Agenda(publicador1.Object, DefaultEventoRepository, DefaultPersonaRepository, DefaultPatrocinadorRepository); |
229 agenda.Agendar("Html 5", "jjmontes", DateTime.MinValue, urlInvitacion, TipoEvento.Van); | 229 agenda.Agendar("Html 5", "jjmontes", DateTime.MinValue, urlInvitacion, TipoEvento.Van); |
230 | 230 |
231 var evento = DefaultEventoRepository.GetActivos().Single(e => e.Titulo == "Html 5"); | 231 var evento = DefaultEventoRepository.GetActivos().Single(e => e.Titulo == "Html 5"); |
232 | 232 |
233 Assert.IsInstanceOf(typeof(EventoAgendadoState), evento.GetEstado()); | 233 Assert.IsInstanceOf(typeof(EventoAgendadoState), evento.GetEstado()); |
237 [Test] | 237 [Test] |
238 public void Al_cancelar_un_evento_debe_quedar_con_estado_EventoCanceladoState_y_debe_generar_el_track_correspondiente() | 238 public void Al_cancelar_un_evento_debe_quedar_con_estado_EventoCanceladoState_y_debe_generar_el_track_correspondiente() |
239 { | 239 { |
240 var publicador1 = new Mock<IPublicador>(); | 240 var publicador1 = new Mock<IPublicador>(); |
241 | 241 |
242 var agenda = new Agenda(publicador1.Object, DefaultEventoRepository, DefaultPersonaRepository); | 242 var agenda = new Agenda(publicador1.Object, DefaultEventoRepository, DefaultPersonaRepository, DefaultPatrocinadorRepository); |
243 agenda.Agendar("Html 5", "jjmontes", DateTime.MinValue, urlInvitacion, TipoEvento.Van); | 243 agenda.Agendar("Html 5", "jjmontes", DateTime.MinValue, urlInvitacion, TipoEvento.Van); |
244 | 244 |
245 var evento = DefaultEventoRepository.GetActivos().Single(e => e.Titulo == "Html 5"); | 245 var evento = DefaultEventoRepository.GetActivos().Single(e => e.Titulo == "Html 5"); |
246 | 246 |
247 agenda.Cancelar(evento.Id); | 247 agenda.Cancelar(evento.Id); |
254 [Test] | 254 [Test] |
255 public void Al_descartar_un_evento_debe_quedar_con_estado_EventoDescartadoState_y_debe_generar_el_track_correspondiente() | 255 public void Al_descartar_un_evento_debe_quedar_con_estado_EventoDescartadoState_y_debe_generar_el_track_correspondiente() |
256 { | 256 { |
257 var publicador1 = new Mock<IPublicador>(); | 257 var publicador1 = new Mock<IPublicador>(); |
258 | 258 |
259 var agenda = new Agenda(publicador1.Object, DefaultEventoRepository, DefaultPersonaRepository); | 259 var agenda = new Agenda(publicador1.Object, DefaultEventoRepository, DefaultPersonaRepository, DefaultPatrocinadorRepository); |
260 agenda.Agendar("Html 5", "jjmontes", DateTime.MinValue, urlInvitacion, TipoEvento.Van); | 260 agenda.Agendar("Html 5", "jjmontes", DateTime.MinValue, urlInvitacion, TipoEvento.Van); |
261 | 261 |
262 var evento = DefaultEventoRepository.GetActivos().Single(e => e.Titulo == "Html 5"); | 262 var evento = DefaultEventoRepository.GetActivos().Single(e => e.Titulo == "Html 5"); |
263 | 263 |
264 agenda.Cancelar(evento.Id); | 264 agenda.Cancelar(evento.Id); |
272 [Test] | 272 [Test] |
273 public void Al_confirmar_un_evento_debe_quedar_con_estado_EventoConfirmadoState_y_debe_generar_el_track_correspondiente() | 273 public void Al_confirmar_un_evento_debe_quedar_con_estado_EventoConfirmadoState_y_debe_generar_el_track_correspondiente() |
274 { | 274 { |
275 var publicador1 = new Mock<IPublicador>(); | 275 var publicador1 = new Mock<IPublicador>(); |
276 | 276 |
277 var agenda = new Agenda(publicador1.Object, DefaultEventoRepository, DefaultPersonaRepository); | 277 var agenda = new Agenda(publicador1.Object, DefaultEventoRepository, DefaultPersonaRepository, DefaultPatrocinadorRepository); |
278 agenda.Agendar("Html 5", "jjmontes", DateTime.MinValue, urlInvitacion, TipoEvento.Van); | 278 agenda.Agendar("Html 5", "jjmontes", DateTime.MinValue, urlInvitacion, TipoEvento.Van); |
279 | 279 |
280 var evento = DefaultEventoRepository.GetActivos().Single(e => e.Titulo == "Html 5"); | 280 var evento = DefaultEventoRepository.GetActivos().Single(e => e.Titulo == "Html 5"); |
281 | 281 |
282 agenda.Confirmar(evento.Id); | 282 agenda.Confirmar(evento.Id); |
288 [Test] | 288 [Test] |
289 public void Al_publicar_un_evento_debe_quedar_con_estado_EventoPublicadoState_y_debe_generar_el_track_correspondiente() | 289 public void Al_publicar_un_evento_debe_quedar_con_estado_EventoPublicadoState_y_debe_generar_el_track_correspondiente() |
290 { | 290 { |
291 var publicador1 = new Mock<IPublicador>(); | 291 var publicador1 = new Mock<IPublicador>(); |
292 | 292 |
293 var agenda = new Agenda(publicador1.Object, DefaultEventoRepository, DefaultPersonaRepository); | 293 var agenda = new Agenda(publicador1.Object, DefaultEventoRepository, DefaultPersonaRepository, DefaultPatrocinadorRepository); |
294 agenda.Agendar("Html 5", "jjmontes", DateTime.MinValue, urlInvitacion, TipoEvento.Van); | 294 agenda.Agendar("Html 5", "jjmontes", DateTime.MinValue, urlInvitacion, TipoEvento.Van); |
295 | 295 |
296 var evento = DefaultEventoRepository.GetActivos().Single(e => e.Titulo == "Html 5"); | 296 var evento = DefaultEventoRepository.GetActivos().Single(e => e.Titulo == "Html 5"); |
297 | 297 |
298 agenda.Confirmar(evento.Id); | 298 agenda.Confirmar(evento.Id); |
305 [Test] | 305 [Test] |
306 public void Al_publicar_un_evento_debe_asignarse_el_nro_de_reunion_y_la_url_de_la_wiki() | 306 public void Al_publicar_un_evento_debe_asignarse_el_nro_de_reunion_y_la_url_de_la_wiki() |
307 { | 307 { |
308 var publicador1 = new Mock<IPublicador>(); | 308 var publicador1 = new Mock<IPublicador>(); |
309 | 309 |
310 var agenda = new Agenda(publicador1.Object, DefaultEventoRepository, DefaultPersonaRepository); | 310 var agenda = new Agenda(publicador1.Object, DefaultEventoRepository, DefaultPersonaRepository, DefaultPatrocinadorRepository); |
311 agenda.Agendar("Html 5", "jjmontes", DateTime.MinValue, urlInvitacion, TipoEvento.Van); | 311 agenda.Agendar("Html 5", "jjmontes", DateTime.MinValue, urlInvitacion, TipoEvento.Van); |
312 | 312 |
313 var evento = DefaultEventoRepository.GetActivos().Single(e => e.Titulo == "Html 5"); | 313 var evento = DefaultEventoRepository.GetActivos().Single(e => e.Titulo == "Html 5"); |
314 agenda.Confirmar(evento.Id); | 314 agenda.Confirmar(evento.Id); |
315 | 315 |
324 [ExpectedException(typeof(AccionNoSoportadaException))] | 324 [ExpectedException(typeof(AccionNoSoportadaException))] |
325 public void Al_confirmar_sin_agendar_debe_lanzarse_excepcion() | 325 public void Al_confirmar_sin_agendar_debe_lanzarse_excepcion() |
326 { | 326 { |
327 var publicador1 = new Mock<IPublicador>(); | 327 var publicador1 = new Mock<IPublicador>(); |
328 | 328 |
329 var agenda = new Agenda(publicador1.Object, DefaultEventoRepository, DefaultPersonaRepository); | 329 var agenda = new Agenda(publicador1.Object, DefaultEventoRepository, DefaultPersonaRepository, DefaultPatrocinadorRepository); |
330 agenda.Proponer("Html 5", "jjmontes", urlInvitacion, TipoEvento.Van); | 330 agenda.Proponer("Html 5", "jjmontes", urlInvitacion, TipoEvento.Van); |
331 | 331 |
332 var evento = | 332 var evento = |
333 DefaultEventoRepository.GetByState(EventoPropuestoState.GetInstance()).Single(e => e.Titulo == "Html 5"); | 333 DefaultEventoRepository.GetByState(EventoPropuestoState.GetInstance()).Single(e => e.Titulo == "Html 5"); |
334 | 334 |
341 [ExpectedException(typeof(AccionNoSoportadaException))] | 341 [ExpectedException(typeof(AccionNoSoportadaException))] |
342 public void Al_publicar_sin_confirmar_debe_lanzarse_excepcion() | 342 public void Al_publicar_sin_confirmar_debe_lanzarse_excepcion() |
343 { | 343 { |
344 var publicador1 = new Mock<IPublicador>(); | 344 var publicador1 = new Mock<IPublicador>(); |
345 | 345 |
346 var agenda = new Agenda(publicador1.Object, DefaultEventoRepository, DefaultPersonaRepository); | 346 var agenda = new Agenda(publicador1.Object, DefaultEventoRepository, DefaultPersonaRepository, DefaultPatrocinadorRepository); |
347 agenda.Proponer("Html 5", "jjmontes", urlInvitacion, TipoEvento.Van); | 347 agenda.Proponer("Html 5", "jjmontes", urlInvitacion, TipoEvento.Van); |
348 | 348 |
349 var evento = | 349 var evento = |
350 DefaultEventoRepository.GetByState(EventoPropuestoState.GetInstance()).Single(e => e.Titulo == "Html 5"); | 350 DefaultEventoRepository.GetByState(EventoPropuestoState.GetInstance()).Single(e => e.Titulo == "Html 5"); |
351 | 351 |