comparison Agendas/trunk/src/Agendas.Tests/PonentesTests.cs @ 87:26d0513a8410

A los publicadores les llega la lista de tracks producidos en la acción realizada Quitamos el concepto de Recordador ya que el mismo es un publicador, cuándo publicar es responsabilidad de cada publicador
author nelopauselli
date Fri, 27 May 2011 14:42:38 -0300
parents 96d7609f2e08
children db4b1e2cae49
comparison
equal deleted inserted replaced
86:723aed93a0e6 87:26d0513a8410
15 [Test] 15 [Test]
16 public void Publicar_dos_eventos_con_el_mismo_ponente_no_registrado() 16 public void Publicar_dos_eventos_con_el_mismo_ponente_no_registrado()
17 { 17 {
18 var publicador = new Mock<IPublicador>(); 18 var publicador = new Mock<IPublicador>();
19 19
20 var agenda = new Agenda(publicador.Object, null, DefaultEventoRepository, DefaultPonenteRepository); 20 var agenda = new Agenda(publicador.Object, DefaultEventoRepository, DefaultPonenteRepository);
21 21
22 agenda.Agendar("Audit (parallel model) con NHibernate 3", "Fabio Maulo", new DateTime(2011, 2, 26), 22 agenda.Agendar("Audit (parallel model) con NHibernate 3", "Fabio Maulo", new DateTime(2011, 2, 26),
23 urlInvitacion); 23 urlInvitacion);
24 agenda.Agendar("Conform - Parte 2", "Fabio Maulo", new DateTime(2011, 3, 5), 24 agenda.Agendar("Conform - Parte 2", "Fabio Maulo", new DateTime(2011, 3, 5),
25 urlInvitacion); 25 urlInvitacion);
26 26
27 var eventos = agenda.GetEventosAgendados(); 27 var eventos = agenda.GetEventosAgendados();
28 Assert.AreEqual(2, eventos.Count); 28 Assert.AreEqual(2, eventos.Count);
29 29
30 publicador.Verify(p => p.Publicar(It.IsAny<Evento>()), Times.Exactly(2)); 30 publicador.Verify(p => p.Publicar(It.IsAny<IEnumerable<Track>>()), Times.Exactly(2));
31 31
32 Assert.AreEqual(1, DefaultPonenteRepository.GetAll().Count); 32 Assert.AreEqual(1, DefaultPonenteRepository.GetAll().Count);
33 33
34 var evento = eventos[0]; 34 var evento = eventos[0];
35 35
43 [Test] 43 [Test]
44 public void Publicar_evento_con_ponente_registrado() 44 public void Publicar_evento_con_ponente_registrado()
45 { 45 {
46 var publicador = new Mock<IPublicador>(); 46 var publicador = new Mock<IPublicador>();
47 Evento evento = null; 47 Evento evento = null;
48 publicador.Setup(p => p.Publicar(It.IsAny<Evento>())).Callback<Evento>(e => evento = e); 48 publicador.Setup(p => p.Publicar(It.IsAny<IEnumerable<Track>>())).Callback<IEnumerable<Track>>(
49 t => evento = t.First().Evento);
49 50
50 var agenda = new Agenda(publicador.Object, null, DefaultEventoRepository, DefaultPonenteRepository); 51 var agenda = new Agenda(publicador.Object, DefaultEventoRepository, DefaultPonenteRepository);
51 52
52 agenda.RegistrarPonente("Fabio Maulo", "fabiomaulo@gmail.com", "@fabiomaulo", "http://fabiomaulo.blogspot.com"); 53 agenda.RegistrarPonente("Fabio Maulo", "fabiomaulo@gmail.com", "@fabiomaulo", "http://fabiomaulo.blogspot.com");
53 54
54 agenda.Agendar("Audit (parallel model) con NHibernate 3", "Fabio Maulo", new DateTime(2011, 2, 26), urlInvitacion); 55 agenda.Agendar("Audit (parallel model) con NHibernate 3", "Fabio Maulo", new DateTime(2011, 2, 26), urlInvitacion);
55 56
56 Assert.AreEqual(1, agenda.GetEventosAgendados().Count); 57 Assert.AreEqual(1, agenda.GetEventosAgendados().Count);
57 58
58 publicador.Verify(p => p.Publicar(It.IsAny<Evento>()), Times.Exactly(1)); 59 publicador.Verify(p => p.Publicar(It.IsAny<IEnumerable<Track>>()), Times.Exactly(1));
59 60
60 Assert.IsNotNull(evento); 61 Assert.IsNotNull(evento);
61 Assert.AreEqual("Fabio Maulo", evento.Ponente.Nombre); 62 Assert.AreEqual("Fabio Maulo", evento.Ponente.Nombre);
62 Assert.AreEqual("fabiomaulo@gmail.com", evento.Ponente.Mail); 63 Assert.AreEqual("fabiomaulo@gmail.com", evento.Ponente.Mail);
63 Assert.AreEqual("@fabiomaulo", evento.Ponente.Twitter); 64 Assert.AreEqual("@fabiomaulo", evento.Ponente.Twitter);
67 [Test] 68 [Test]
68 public void Publicar_evento_sin_ponente_registrado() 69 public void Publicar_evento_sin_ponente_registrado()
69 { 70 {
70 var publicador = new Mock<IPublicador>(); 71 var publicador = new Mock<IPublicador>();
71 Evento evento = null; 72 Evento evento = null;
72 publicador.Setup(p => p.Publicar(It.IsAny<Evento>())).Callback<Evento>(e => evento = e); 73 publicador.Setup(p => p.Publicar(It.IsAny<IEnumerable<Track>>())).Callback<IEnumerable<Track>>(
74 t => evento = t.First().Evento);
73 75
74 var agenda = new Agenda(publicador.Object, null, DefaultEventoRepository, DefaultPonenteRepository); 76 var agenda = new Agenda(publicador.Object, DefaultEventoRepository, DefaultPonenteRepository);
75 77
76 agenda.Agendar("Audit (parallel model) con NHibernate 3", "Fabio Maulo", new DateTime(2011, 2, 26), 78 agenda.Agendar("Audit (parallel model) con NHibernate 3", "Fabio Maulo", new DateTime(2011, 2, 26),
77 urlInvitacion); 79 urlInvitacion);
78 80
79 Assert.AreEqual(1, agenda.GetEventosAgendados().Count); 81 Assert.AreEqual(1, agenda.GetEventosAgendados().Count);
80 82
81 publicador.Verify(p => p.Publicar(It.IsAny<Evento>()), Times.Exactly(1)); 83 publicador.Verify(p => p.Publicar(It.IsAny<IEnumerable<Track>>()), Times.Exactly(1));
82 84
83 Assert.IsNotNull(evento); 85 Assert.IsNotNull(evento);
84 Assert.AreEqual("Fabio Maulo", evento.Ponente.Nombre); 86 Assert.AreEqual("Fabio Maulo", evento.Ponente.Nombre);
85 Assert.IsNullOrEmpty(evento.Ponente.Twitter); 87 Assert.IsNullOrEmpty(evento.Ponente.Twitter);
86 } 88 }
87 89
88 [Test] 90 [Test]
89 public void Quitar_ponente_de_un_evento() 91 public void Quitar_ponente_de_un_evento()
90 { 92 {
91 var agenda = new Agenda(null, null, DefaultEventoRepository, DefaultPonenteRepository); 93 var agenda = new Agenda(null, DefaultEventoRepository, DefaultPonenteRepository);
92 94
93 const string titulo = "Audit (parallel model) con NHibernate 3"; 95 const string titulo = "Audit (parallel model) con NHibernate 3";
94 Guid eventoId; 96 Guid eventoId;
95 97
96 agenda.Proponer(titulo, "Fabio", urlInvitacion); 98 agenda.Proponer(titulo, "Fabio", urlInvitacion);
119 } 121 }
120 122
121 [Test] 123 [Test]
122 public void Cambiar_ponente_de_un_evento() 124 public void Cambiar_ponente_de_un_evento()
123 { 125 {
124 var agenda = new Agenda(null, null, DefaultEventoRepository, DefaultPonenteRepository); 126 var agenda = new Agenda(null, DefaultEventoRepository, DefaultPonenteRepository);
125 127
126 const string titulo = "Audit (parallel model) con NHibernate 3"; 128 const string titulo = "Audit (parallel model) con NHibernate 3";
127 Guid eventoId; 129 Guid eventoId;
128 130
129 agenda.Proponer(titulo, "Fabio", urlInvitacion); 131 agenda.Proponer(titulo, "Fabio", urlInvitacion);