comparison Agendas/trunk/src/Agendas.Tests/AgendarTests.cs @ 106:80c22175c9b5

agregado de tipo de evento (van, cafe, grupoestudio) agregado de tipo de evento en el alta de evento y en el alta de propuestas desde la app web algunas correcciones en el publicador del blog agregado de textos para publicar en el blog eventos de tipo alt.net cafe
author jorge.rowies
date Mon, 06 Jun 2011 14:07:12 -0300
parents 1d820f17fc75
children b74734a1a755
comparison
equal deleted inserted replaced
105:1d820f17fc75 106:80c22175c9b5
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);
33 33
34 Assert.Throws<Exception>(() => agenda.Agendar("Van para publicar", "jjmontes", DateTime.Now, urlInvitacion)); 34 Assert.Throws<Exception>(() => agenda.Agendar("Van para publicar", "jjmontes", DateTime.Now, urlInvitacion, TipoEvento.Van));
35 Assert.AreEqual(0, agenda.GetEventosAgendados().Count); 35 Assert.AreEqual(0, agenda.GetEventosAgendados().Count);
36 36
37 publicador.Verify(p => p.Publicar(It.IsAny<IEnumerable<Track>>()), Times.Exactly(1)); 37 publicador.Verify(p => p.Publicar(It.IsAny<IEnumerable<Track>>()), Times.Exactly(1));
38 repository.Verify(p => p.Save(It.IsAny<Evento>()), Times.Exactly(0)); 38 repository.Verify(p => p.Save(It.IsAny<Evento>()), Times.Exactly(0));
39 } 39 }
48 48
49 var agenda = new Agenda(publicador.Object, repository.Object, DefaultPersonaRepository); 49 var agenda = new Agenda(publicador.Object, repository.Object, DefaultPersonaRepository);
50 50
51 Assert.Throws<IdentityContextNotConfiguredException>( 51 Assert.Throws<IdentityContextNotConfiguredException>(
52 () => agenda.Agendar("Van para publicar", "jjmontes", DateTime.Now, 52 () => agenda.Agendar("Van para publicar", "jjmontes", DateTime.Now,
53 urlInvitacion)); 53 urlInvitacion, TipoEvento.Van));
54 repository.Verify(p => p.Save(It.IsAny<Evento>()), Times.Exactly(0)); 54 repository.Verify(p => p.Save(It.IsAny<Evento>()), Times.Exactly(0));
55 } 55 }
56 56
57 [Test] 57 [Test]
58 public void Intentar_agendar_evento_sin_usuario_autenticado() 58 public void Intentar_agendar_evento_sin_usuario_autenticado()
63 var repository = new Mock<IEventoRepository>(); 63 var repository = new Mock<IEventoRepository>();
64 64
65 var agenda = new Agenda(publicador.Object, repository.Object, DefaultPersonaRepository); 65 var agenda = new Agenda(publicador.Object, repository.Object, DefaultPersonaRepository);
66 66
67 Assert.Throws<UsuarioNoAutenticadoException>(() => agenda.Agendar("Van para publicar", "jjmontes", DateTime.Now, 67 Assert.Throws<UsuarioNoAutenticadoException>(() => agenda.Agendar("Van para publicar", "jjmontes", DateTime.Now,
68 urlInvitacion)); 68 urlInvitacion, TipoEvento.Van));
69 69
70 publicador.Verify(p => p.Publicar(It.IsAny<IEnumerable<Track>>()), Times.Exactly(0)); 70 publicador.Verify(p => p.Publicar(It.IsAny<IEnumerable<Track>>()), Times.Exactly(0));
71 repository.Verify(p => p.Save(It.IsAny<Evento>()), Times.Exactly(0)); 71 repository.Verify(p => p.Save(It.IsAny<Evento>()), Times.Exactly(0));
72 } 72 }
73 73
75 public void Intentar_agendar_evento_sin_ponente() 75 public void Intentar_agendar_evento_sin_ponente()
76 { 76 {
77 var agenda = new Agenda(null, DefaultEventoRepository, DefaultPersonaRepository); 77 var agenda = new Agenda(null, DefaultEventoRepository, DefaultPersonaRepository);
78 78
79 var r = agenda.Agendar("Van para publicar", string.Empty, DateTime.Now, 79 var r = agenda.Agendar("Van para publicar", string.Empty, DateTime.Now,
80 urlInvitacion); 80 urlInvitacion, TipoEvento.Van);
81 81
82 Assert.IsFalse(r.Succeful); 82 Assert.IsFalse(r.Succeful);
83 } 83 }
84 84
85 [Test] 85 [Test]
92 92
93 var agenda = new Agenda(new CompositePublicador(new[] {publicador1.Object, publicador2.Object}), 93 var agenda = new Agenda(new CompositePublicador(new[] {publicador1.Object, publicador2.Object}),
94 repository.Object, DefaultPersonaRepository); 94 repository.Object, DefaultPersonaRepository);
95 95
96 agenda.Agendar("Van para publicar", "jjmontes", DateTime.Now, 96 agenda.Agendar("Van para publicar", "jjmontes", DateTime.Now,
97 urlInvitacion); 97 urlInvitacion, TipoEvento.Van);
98 98
99 publicador1.Verify(p => p.Publicar(It.IsAny<IEnumerable<Track>>()), Times.Exactly(1)); 99 publicador1.Verify(p => p.Publicar(It.IsAny<IEnumerable<Track>>()), Times.Exactly(1));
100 publicador2.Verify(p => p.Publicar(It.IsAny<IEnumerable<Track>>()), Times.Exactly(1)); 100 publicador2.Verify(p => p.Publicar(It.IsAny<IEnumerable<Track>>()), Times.Exactly(1));
101 repository.Verify(p => p.Save(It.IsAny<Evento>()), Times.Exactly(1)); 101 repository.Verify(p => p.Save(It.IsAny<Evento>()), Times.Exactly(1));
102 } 102 }
107 var publicador = new Mock<IPublicador>(); 107 var publicador = new Mock<IPublicador>();
108 108
109 var agenda = new Agenda(publicador.Object, DefaultEventoRepository, DefaultPersonaRepository); 109 var agenda = new Agenda(publicador.Object, DefaultEventoRepository, DefaultPersonaRepository);
110 110
111 agenda.Agendar("Van para publicar", "jjmontes", DateTime.Now, 111 agenda.Agendar("Van para publicar", "jjmontes", DateTime.Now,
112 urlInvitacion); 112 urlInvitacion, TipoEvento.Van);
113 113
114 Assert.AreEqual(0, agenda.GetEventosPropuestos().Count); 114 Assert.AreEqual(0, agenda.GetEventosPropuestos().Count);
115 115
116 var eventos = agenda.GetEventosAgendados(); 116 var eventos = agenda.GetEventosAgendados();
117 Assert.AreEqual(1, eventos.Count); 117 Assert.AreEqual(1, eventos.Count);
130 var publicador = new Mock<IPublicador>(); 130 var publicador = new Mock<IPublicador>();
131 131
132 var agenda = new Agenda(publicador.Object, repository, DefaultPersonaRepository); 132 var agenda = new Agenda(publicador.Object, repository, DefaultPersonaRepository);
133 133
134 agenda.Agendar("Van para publicar", "jjmontes", DateTime.Now, 134 agenda.Agendar("Van para publicar", "jjmontes", DateTime.Now,
135 urlInvitacion); 135 urlInvitacion, TipoEvento.Van);
136 136
137 publicador.Verify(p => p.Publicar(It.IsAny<IEnumerable<Track>>()), Times.Exactly(1)); 137 publicador.Verify(p => p.Publicar(It.IsAny<IEnumerable<Track>>()), Times.Exactly(1));
138 138
139 var evento = repository.GetEventosConFecha().First(); 139 var evento = repository.GetEventosConFecha().First();
140 Assert.AreNotEqual(Guid.Empty, evento.Id); 140 Assert.AreNotEqual(Guid.Empty, evento.Id);
163 163
164 var agenda = new Agenda(new CompositePublicador(new[] {publicador1.Object, publicador2.Object}), 164 var agenda = new Agenda(new CompositePublicador(new[] {publicador1.Object, publicador2.Object}),
165 DefaultEventoRepository, DefaultPersonaRepository); 165 DefaultEventoRepository, DefaultPersonaRepository);
166 166
167 agenda.Agendar("Van para publicar", "jjmontes", DateTime.Now, 167 agenda.Agendar("Van para publicar", "jjmontes", DateTime.Now,
168 urlInvitacion); 168 urlInvitacion, TipoEvento.Van);
169 169
170 var van = agenda.GetEventosAgendados().Single(v => v.Titulo == "Van para publicar"); 170 var van = agenda.GetEventosAgendados().Single(v => v.Titulo == "Van para publicar");
171 //agenda.Recordar(van.Id); 171 //agenda.Recordar(van.Id);
172 172
173 publicador1.Verify(p => p.Publicar(It.IsAny<IEnumerable<Track>>()), Times.Exactly(1)); 173 publicador1.Verify(p => p.Publicar(It.IsAny<IEnumerable<Track>>()), Times.Exactly(1));
182 var publicador2 = new Mock<IPublicador>(); 182 var publicador2 = new Mock<IPublicador>();
183 183
184 var agenda = new Agenda(new CompositePublicador(new[] { publicador1.Object, publicador2.Object }), 184 var agenda = new Agenda(new CompositePublicador(new[] { publicador1.Object, publicador2.Object }),
185 DefaultEventoRepository, DefaultPersonaRepository); 185 DefaultEventoRepository, DefaultPersonaRepository);
186 186
187 agenda.Proponer("Html 5", "jjmontes", urlInvitacion); 187 agenda.Proponer("Html 5", "jjmontes", urlInvitacion, TipoEvento.Van);
188 Assert.AreEqual(1, agenda.GetEventosPropuestos().Count); 188 Assert.AreEqual(1, agenda.GetEventosPropuestos().Count);
189 Assert.AreEqual(0, agenda.GetEventosAgendados().Count); 189 Assert.AreEqual(0, agenda.GetEventosAgendados().Count);
190 190
191 var publicado = agenda.GetEventosPropuestos().First(); 191 var publicado = agenda.GetEventosPropuestos().First();
192 Assert.AreEqual(1, publicado.Tracks.Count()); 192 Assert.AreEqual(1, publicado.Tracks.Count());
207 public void Al_proponer_un_evento_debe_quedar_con_estado_EventoPropuestoState_y_debe_generar_el_track_correspondiente() 207 public void Al_proponer_un_evento_debe_quedar_con_estado_EventoPropuestoState_y_debe_generar_el_track_correspondiente()
208 { 208 {
209 var publicador1 = new Mock<IPublicador>(); 209 var publicador1 = new Mock<IPublicador>();
210 210
211 var agenda = new Agenda(publicador1.Object, DefaultEventoRepository, DefaultPersonaRepository); 211 var agenda = new Agenda(publicador1.Object, DefaultEventoRepository, DefaultPersonaRepository);
212 agenda.Proponer("Html 5", "jjmontes", urlInvitacion); 212 agenda.Proponer("Html 5", "jjmontes", urlInvitacion, TipoEvento.Van);
213 213
214 var evento = DefaultEventoRepository.GetEventosSinFecha().Single(e => e.Titulo == "Html 5"); 214 var evento = DefaultEventoRepository.GetEventosSinFecha().Single(e => e.Titulo == "Html 5");
215 215
216 Assert.IsInstanceOf(typeof(EventoPropuestoState), evento.GetEstado()); 216 Assert.IsInstanceOf(typeof(EventoPropuestoState), evento.GetEstado());
217 Assert.That(evento.GetTrackNews().Count(t => t.Accion == Accion.Proponer) == 1); 217 Assert.That(evento.GetTrackNews().Count(t => t.Accion == Accion.Proponer) == 1);
221 public void Al_agendar_un_evento_debe_quedar_con_estado_EventoAgendadoState_y_debe_generar_el_track_correspondiente() 221 public void Al_agendar_un_evento_debe_quedar_con_estado_EventoAgendadoState_y_debe_generar_el_track_correspondiente()
222 { 222 {
223 var publicador1 = new Mock<IPublicador>(); 223 var publicador1 = new Mock<IPublicador>();
224 224
225 var agenda = new Agenda(publicador1.Object, DefaultEventoRepository, DefaultPersonaRepository); 225 var agenda = new Agenda(publicador1.Object, DefaultEventoRepository, DefaultPersonaRepository);
226 agenda.Agendar("Html 5", "jjmontes", DateTime.MinValue, urlInvitacion); 226 agenda.Agendar("Html 5", "jjmontes", DateTime.MinValue, urlInvitacion, TipoEvento.Van);
227 227
228 var evento = DefaultEventoRepository.GetEventosConFecha().Single(e => e.Titulo == "Html 5"); 228 var evento = DefaultEventoRepository.GetEventosConFecha().Single(e => e.Titulo == "Html 5");
229 229
230 Assert.IsInstanceOf(typeof(EventoAgendadoState), evento.GetEstado()); 230 Assert.IsInstanceOf(typeof(EventoAgendadoState), evento.GetEstado());
231 Assert.That(evento.GetTrackNews().Count(t => t.Accion == Accion.Agendar) == 1); 231 Assert.That(evento.GetTrackNews().Count(t => t.Accion == Accion.Agendar) == 1);
235 public void Al_confirmar_un_evento_debe_quedar_con_estado_EventoConfirmadoState_y_debe_generar_el_track_correspondiente() 235 public void Al_confirmar_un_evento_debe_quedar_con_estado_EventoConfirmadoState_y_debe_generar_el_track_correspondiente()
236 { 236 {
237 var publicador1 = new Mock<IPublicador>(); 237 var publicador1 = new Mock<IPublicador>();
238 238
239 var agenda = new Agenda(publicador1.Object, DefaultEventoRepository, DefaultPersonaRepository); 239 var agenda = new Agenda(publicador1.Object, DefaultEventoRepository, DefaultPersonaRepository);
240 agenda.Agendar("Html 5", "jjmontes", DateTime.MinValue, urlInvitacion); 240 agenda.Agendar("Html 5", "jjmontes", DateTime.MinValue, urlInvitacion, TipoEvento.Van);
241 241
242 var evento = DefaultEventoRepository.GetEventosConFecha().Single(e => e.Titulo == "Html 5"); 242 var evento = DefaultEventoRepository.GetEventosConFecha().Single(e => e.Titulo == "Html 5");
243 243
244 agenda.Confirmar(evento.Id); 244 agenda.Confirmar(evento.Id);
245 245
251 public void Al_publicar_un_evento_debe_quedar_con_estado_EventoPublicadoState_y_debe_generar_el_track_correspondiente() 251 public void Al_publicar_un_evento_debe_quedar_con_estado_EventoPublicadoState_y_debe_generar_el_track_correspondiente()
252 { 252 {
253 var publicador1 = new Mock<IPublicador>(); 253 var publicador1 = new Mock<IPublicador>();
254 254
255 var agenda = new Agenda(publicador1.Object, DefaultEventoRepository, DefaultPersonaRepository); 255 var agenda = new Agenda(publicador1.Object, DefaultEventoRepository, DefaultPersonaRepository);
256 agenda.Agendar("Html 5", "jjmontes", DateTime.MinValue, urlInvitacion); 256 agenda.Agendar("Html 5", "jjmontes", DateTime.MinValue, urlInvitacion, TipoEvento.Van);
257 257
258 var evento = DefaultEventoRepository.GetEventosConFecha().Single(e => e.Titulo == "Html 5"); 258 var evento = DefaultEventoRepository.GetEventosConFecha().Single(e => e.Titulo == "Html 5");
259 259
260 agenda.Confirmar(evento.Id); 260 agenda.Confirmar(evento.Id);
261 agenda.Publicar(evento.Id, 0, string.Empty); 261 agenda.Publicar(evento.Id, 0, string.Empty);
268 public void Al_publicar_un_evento_debe_asignarse_el_nro_de_reunion_y_la_url_de_la_wiki() 268 public void Al_publicar_un_evento_debe_asignarse_el_nro_de_reunion_y_la_url_de_la_wiki()
269 { 269 {
270 var publicador1 = new Mock<IPublicador>(); 270 var publicador1 = new Mock<IPublicador>();
271 271
272 var agenda = new Agenda(publicador1.Object, DefaultEventoRepository, DefaultPersonaRepository); 272 var agenda = new Agenda(publicador1.Object, DefaultEventoRepository, DefaultPersonaRepository);
273 agenda.Agendar("Html 5", "jjmontes", DateTime.MinValue, urlInvitacion); 273 agenda.Agendar("Html 5", "jjmontes", DateTime.MinValue, urlInvitacion, TipoEvento.Van);
274 274
275 var evento = DefaultEventoRepository.GetEventosConFecha().Single(e => e.Titulo == "Html 5"); 275 var evento = DefaultEventoRepository.GetEventosConFecha().Single(e => e.Titulo == "Html 5");
276 agenda.Confirmar(evento.Id); 276 agenda.Confirmar(evento.Id);
277 277
278 const string urlWiki = "http://www.altnethispano.org/wiki/van-2010-10-21-mono-cecil.ashx"; 278 const string urlWiki = "http://www.altnethispano.org/wiki/van-2010-10-21-mono-cecil.ashx";
287 public void Al_confirmar_sin_agendar_debe_lanzarse_excepcion() 287 public void Al_confirmar_sin_agendar_debe_lanzarse_excepcion()
288 { 288 {
289 var publicador1 = new Mock<IPublicador>(); 289 var publicador1 = new Mock<IPublicador>();
290 290
291 var agenda = new Agenda(publicador1.Object, DefaultEventoRepository, DefaultPersonaRepository); 291 var agenda = new Agenda(publicador1.Object, DefaultEventoRepository, DefaultPersonaRepository);
292 agenda.Proponer("Html 5", "jjmontes", urlInvitacion); 292 agenda.Proponer("Html 5", "jjmontes", urlInvitacion, TipoEvento.Van);
293 293
294 var evento = DefaultEventoRepository.GetEventosSinFecha().Single(e => e.Titulo == "Html 5"); 294 var evento = DefaultEventoRepository.GetEventosSinFecha().Single(e => e.Titulo == "Html 5");
295 295
296 Assert.IsFalse(evento.Estado.GetType() == typeof(EventoAgendadoState)); 296 Assert.IsFalse(evento.Estado.GetType() == typeof(EventoAgendadoState));
297 297
303 public void Al_publicar_sin_confirmar_debe_lanzarse_excepcion() 303 public void Al_publicar_sin_confirmar_debe_lanzarse_excepcion()
304 { 304 {
305 var publicador1 = new Mock<IPublicador>(); 305 var publicador1 = new Mock<IPublicador>();
306 306
307 var agenda = new Agenda(publicador1.Object, DefaultEventoRepository, DefaultPersonaRepository); 307 var agenda = new Agenda(publicador1.Object, DefaultEventoRepository, DefaultPersonaRepository);
308 agenda.Proponer("Html 5", "jjmontes", urlInvitacion); 308 agenda.Proponer("Html 5", "jjmontes", urlInvitacion, TipoEvento.Van);
309 309
310 var evento = DefaultEventoRepository.GetEventosSinFecha().Single(e => e.Titulo == "Html 5"); 310 var evento = DefaultEventoRepository.GetEventosSinFecha().Single(e => e.Titulo == "Html 5");
311 311
312 Assert.IsFalse(evento.Estado.GetType() == typeof(EventoConfirmadoState)); 312 Assert.IsFalse(evento.Estado.GetType() == typeof(EventoConfirmadoState));
313 313