comparison Agendas/trunk/src/Agendas.Tests/AgendarTests.cs @ 102:92c5a12015f3

agregado de tests sobre los estados de un Evento
author jorge.rowies
date Sun, 05 Jun 2011 11:57:34 -0300
parents 2434c2323f3d
children 23325dddddcc
comparison
equal deleted inserted replaced
101:9bfdd5bf3ad2 102:92c5a12015f3
200 Assert.AreEqual(2, agendado.Tracks.Count()); 200 Assert.AreEqual(2, agendado.Tracks.Count());
201 201
202 Assert.IsNotNull(agendado.Tracks.Where(t => t.Accion == Accion.Proponer).SingleOrDefault()); 202 Assert.IsNotNull(agendado.Tracks.Where(t => t.Accion == Accion.Proponer).SingleOrDefault());
203 Assert.IsNotNull(agendado.Tracks.Where(t => t.Accion == Accion.Agendar).SingleOrDefault()); 203 Assert.IsNotNull(agendado.Tracks.Where(t => t.Accion == Accion.Agendar).SingleOrDefault());
204 } 204 }
205
206 [Test]
207 public void Al_proponer_un_evento_debe_quedar_con_estado_EventoPropuestoState_y_debe_generar_el_track_correspondiente()
208 {
209 var publicador1 = new Mock<IPublicador>();
210
211 var agenda = new Agenda(publicador1.Object, DefaultEventoRepository, DefaultPersonaRepository);
212 agenda.Proponer("Html 5", "jjmontes", urlInvitacion);
213
214 var evento = DefaultEventoRepository.GetEventosSinFecha().Single(e => e.Titulo == "Html 5");
215
216 Assert.IsInstanceOf(typeof(EventoPropuestoState), evento.Estado);
217 Assert.That(evento.GetTrackNews().Count(t => t.Accion == Accion.Proponer) == 1);
218 }
219
220 [Test]
221 public void Al_agendar_un_evento_debe_quedar_con_estado_EventoAgendadoState_y_debe_generar_el_track_correspondiente()
222 {
223 var publicador1 = new Mock<IPublicador>();
224
225 var agenda = new Agenda(publicador1.Object, DefaultEventoRepository, DefaultPersonaRepository);
226 agenda.Agendar("Html 5", "jjmontes", DateTime.MinValue, urlInvitacion);
227
228 var evento = DefaultEventoRepository.GetEventosConFecha().Single(e => e.Titulo == "Html 5");
229
230 Assert.IsInstanceOf(typeof(EventoAgendadoState), evento.Estado);
231 Assert.That(evento.GetTrackNews().Count(t => t.Accion == Accion.Agendar) == 1);
232 }
233
234 [Test]
235 public void Al_confirmar_un_evento_debe_quedar_con_estado_EventoConfirmadoState_y_debe_generar_el_track_correspondiente()
236 {
237 var publicador1 = new Mock<IPublicador>();
238
239 var agenda = new Agenda(publicador1.Object, DefaultEventoRepository, DefaultPersonaRepository);
240 agenda.Agendar("Html 5", "jjmontes", DateTime.MinValue, urlInvitacion);
241
242 var evento = DefaultEventoRepository.GetEventosConFecha().Single(e => e.Titulo == "Html 5");
243
244 agenda.Confirmar(evento.Id);
245
246 Assert.IsInstanceOf(typeof(EventoConfirmadoState), evento.Estado);
247 Assert.That(evento.GetTrackNews().Count(t => t.Accion == Accion.Confirmar) == 1);
248 }
249
250 [Test]
251 public void Al_publicar_un_evento_debe_quedar_con_estado_EventoPublicadoState_y_debe_generar_el_track_correspondiente()
252 {
253 var publicador1 = new Mock<IPublicador>();
254
255 var agenda = new Agenda(publicador1.Object, DefaultEventoRepository, DefaultPersonaRepository);
256 agenda.Agendar("Html 5", "jjmontes", DateTime.MinValue, urlInvitacion);
257
258 var evento = DefaultEventoRepository.GetEventosConFecha().Single(e => e.Titulo == "Html 5");
259
260 agenda.Confirmar(evento.Id);
261 agenda.Publicar(evento.Id);
262
263 Assert.IsInstanceOf(typeof(EventoPublicadoState), evento.Estado);
264 Assert.That(evento.GetTrackNews().Count(t => t.Accion == Accion.Publicar) == 1);
265 }
266
267 [Test]
268 [ExpectedException(typeof(AccionNoSoportadaException))]
269 public void Al_confirmar_sin_agendar_debe_lanzarse_excepcion()
270 {
271 var publicador1 = new Mock<IPublicador>();
272
273 var agenda = new Agenda(publicador1.Object, DefaultEventoRepository, DefaultPersonaRepository);
274 agenda.Proponer("Html 5", "jjmontes", urlInvitacion);
275
276 var evento = DefaultEventoRepository.GetEventosSinFecha().Single(e => e.Titulo == "Html 5");
277
278 Assert.IsFalse(evento.Estado.GetType() == typeof(EventoAgendadoState));
279
280 agenda.Confirmar(evento.Id);
281 }
282
283 [Test]
284 [ExpectedException(typeof(AccionNoSoportadaException))]
285 public void Al_publicar_sin_confirmar_debe_lanzarse_excepcion()
286 {
287 var publicador1 = new Mock<IPublicador>();
288
289 var agenda = new Agenda(publicador1.Object, DefaultEventoRepository, DefaultPersonaRepository);
290 agenda.Proponer("Html 5", "jjmontes", urlInvitacion);
291
292 var evento = DefaultEventoRepository.GetEventosSinFecha().Single(e => e.Titulo == "Html 5");
293
294 Assert.IsFalse(evento.Estado.GetType() == typeof(EventoConfirmadoState));
295
296 agenda.Publicar(evento.Id);
297 }
205 } 298 }
206 } 299 }