Mercurial > altnet-hispano
annotate 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 |
rev | line source |
---|---|
24 | 1 using System; |
61
cb3f7b47c1f0
Relación de Ponente a Eventos de los que es el ponente.
nelopauselli
parents:
59
diff
changeset
|
2 using System.Collections.Generic; |
cb3f7b47c1f0
Relación de Ponente a Eventos de los que es el ponente.
nelopauselli
parents:
59
diff
changeset
|
3 using System.Linq; |
24 | 4 using AltNetHispano.Agendas.Domain; |
5 using Moq; | |
6 using NUnit.Framework; | |
7 | |
8 namespace AltNetHispano.Agendas.Tests | |
9 { | |
10 [TestFixture] | |
11 public class PonentesTests : TestBase | |
12 { | |
70
c7264bfc4b71
agregado de properties en clase Evento (UrlInvitacion, UrlWiki, NumeroOrden)
jorge.rowies
parents:
61
diff
changeset
|
13 private const string urlInvitacion = "http://groups.google.com/group/altnet-hispano/browse_thread/thread/65d6d26eb381386e"; |
c7264bfc4b71
agregado de properties en clase Evento (UrlInvitacion, UrlWiki, NumeroOrden)
jorge.rowies
parents:
61
diff
changeset
|
14 |
24 | 15 [Test] |
54 | 16 public void Publicar_dos_eventos_con_el_mismo_ponente_no_registrado() |
17 { | |
18 var publicador = new Mock<IPublicador>(); | |
19 | |
87
26d0513a8410
A los publicadores les llega la lista de tracks producidos en la acción realizada
nelopauselli
parents:
75
diff
changeset
|
20 var agenda = new Agenda(publicador.Object, DefaultEventoRepository, DefaultPonenteRepository); |
54 | 21 |
74
bc46e7426c80
Refactoring de acciones según la definición del diagrama de estados en assembla
nelopauselli
parents:
70
diff
changeset
|
22 agenda.Agendar("Audit (parallel model) con NHibernate 3", "Fabio Maulo", new DateTime(2011, 2, 26), |
70
c7264bfc4b71
agregado de properties en clase Evento (UrlInvitacion, UrlWiki, NumeroOrden)
jorge.rowies
parents:
61
diff
changeset
|
23 urlInvitacion); |
74
bc46e7426c80
Refactoring de acciones según la definición del diagrama de estados en assembla
nelopauselli
parents:
70
diff
changeset
|
24 agenda.Agendar("Conform - Parte 2", "Fabio Maulo", new DateTime(2011, 3, 5), |
70
c7264bfc4b71
agregado de properties en clase Evento (UrlInvitacion, UrlWiki, NumeroOrden)
jorge.rowies
parents:
61
diff
changeset
|
25 urlInvitacion); |
54 | 26 |
75 | 27 var eventos = agenda.GetEventosAgendados(); |
61
cb3f7b47c1f0
Relación de Ponente a Eventos de los que es el ponente.
nelopauselli
parents:
59
diff
changeset
|
28 Assert.AreEqual(2, eventos.Count); |
54 | 29 |
87
26d0513a8410
A los publicadores les llega la lista de tracks producidos en la acción realizada
nelopauselli
parents:
75
diff
changeset
|
30 publicador.Verify(p => p.Publicar(It.IsAny<IEnumerable<Track>>()), Times.Exactly(2)); |
54 | 31 |
32 Assert.AreEqual(1, DefaultPonenteRepository.GetAll().Count); | |
61
cb3f7b47c1f0
Relación de Ponente a Eventos de los que es el ponente.
nelopauselli
parents:
59
diff
changeset
|
33 |
cb3f7b47c1f0
Relación de Ponente a Eventos de los que es el ponente.
nelopauselli
parents:
59
diff
changeset
|
34 var evento = eventos[0]; |
cb3f7b47c1f0
Relación de Ponente a Eventos de los que es el ponente.
nelopauselli
parents:
59
diff
changeset
|
35 |
cb3f7b47c1f0
Relación de Ponente a Eventos de los que es el ponente.
nelopauselli
parents:
59
diff
changeset
|
36 Assert.IsNotNull(evento.Ponente); |
cb3f7b47c1f0
Relación de Ponente a Eventos de los que es el ponente.
nelopauselli
parents:
59
diff
changeset
|
37 var ponente = evento.Ponente; |
cb3f7b47c1f0
Relación de Ponente a Eventos de los que es el ponente.
nelopauselli
parents:
59
diff
changeset
|
38 Assert.IsNotNull(evento.Ponente.Eventos); |
cb3f7b47c1f0
Relación de Ponente a Eventos de los que es el ponente.
nelopauselli
parents:
59
diff
changeset
|
39 Assert.Contains(eventos[0], new List<Evento>(ponente.Eventos)); |
cb3f7b47c1f0
Relación de Ponente a Eventos de los que es el ponente.
nelopauselli
parents:
59
diff
changeset
|
40 Assert.Contains(eventos[1], new List<Evento>(ponente.Eventos)); |
54 | 41 } |
42 | |
43 [Test] | |
51
4a63a73e38e4
Cambio de nombres de test intentando describir mejor lo que verifican
nelopauselli
parents:
50
diff
changeset
|
44 public void Publicar_evento_con_ponente_registrado() |
24 | 45 { |
46 var publicador = new Mock<IPublicador>(); | |
47 Evento evento = null; | |
87
26d0513a8410
A los publicadores les llega la lista de tracks producidos en la acción realizada
nelopauselli
parents:
75
diff
changeset
|
48 publicador.Setup(p => p.Publicar(It.IsAny<IEnumerable<Track>>())).Callback<IEnumerable<Track>>( |
26d0513a8410
A los publicadores les llega la lista de tracks producidos en la acción realizada
nelopauselli
parents:
75
diff
changeset
|
49 t => evento = t.First().Evento); |
24 | 50 |
87
26d0513a8410
A los publicadores les llega la lista de tracks producidos en la acción realizada
nelopauselli
parents:
75
diff
changeset
|
51 var agenda = new Agenda(publicador.Object, DefaultEventoRepository, DefaultPonenteRepository); |
24 | 52 |
53 agenda.RegistrarPonente("Fabio Maulo", "fabiomaulo@gmail.com", "@fabiomaulo", "http://fabiomaulo.blogspot.com"); | |
54 | |
74
bc46e7426c80
Refactoring de acciones según la definición del diagrama de estados en assembla
nelopauselli
parents:
70
diff
changeset
|
55 agenda.Agendar("Audit (parallel model) con NHibernate 3", "Fabio Maulo", new DateTime(2011, 2, 26), urlInvitacion); |
24 | 56 |
75 | 57 Assert.AreEqual(1, agenda.GetEventosAgendados().Count); |
24 | 58 |
87
26d0513a8410
A los publicadores les llega la lista de tracks producidos en la acción realizada
nelopauselli
parents:
75
diff
changeset
|
59 publicador.Verify(p => p.Publicar(It.IsAny<IEnumerable<Track>>()), Times.Exactly(1)); |
24 | 60 |
61 Assert.IsNotNull(evento); | |
62 Assert.AreEqual("Fabio Maulo", evento.Ponente.Nombre); | |
63 Assert.AreEqual("fabiomaulo@gmail.com", evento.Ponente.Mail); | |
64 Assert.AreEqual("@fabiomaulo", evento.Ponente.Twitter); | |
65 Assert.AreEqual("http://fabiomaulo.blogspot.com", evento.Ponente.Blog); | |
66 } | |
67 | |
68 [Test] | |
51
4a63a73e38e4
Cambio de nombres de test intentando describir mejor lo que verifican
nelopauselli
parents:
50
diff
changeset
|
69 public void Publicar_evento_sin_ponente_registrado() |
24 | 70 { |
71 var publicador = new Mock<IPublicador>(); | |
72 Evento evento = null; | |
87
26d0513a8410
A los publicadores les llega la lista de tracks producidos en la acción realizada
nelopauselli
parents:
75
diff
changeset
|
73 publicador.Setup(p => p.Publicar(It.IsAny<IEnumerable<Track>>())).Callback<IEnumerable<Track>>( |
26d0513a8410
A los publicadores les llega la lista de tracks producidos en la acción realizada
nelopauselli
parents:
75
diff
changeset
|
74 t => evento = t.First().Evento); |
24 | 75 |
87
26d0513a8410
A los publicadores les llega la lista de tracks producidos en la acción realizada
nelopauselli
parents:
75
diff
changeset
|
76 var agenda = new Agenda(publicador.Object, DefaultEventoRepository, DefaultPonenteRepository); |
24 | 77 |
74
bc46e7426c80
Refactoring de acciones según la definición del diagrama de estados en assembla
nelopauselli
parents:
70
diff
changeset
|
78 agenda.Agendar("Audit (parallel model) con NHibernate 3", "Fabio Maulo", new DateTime(2011, 2, 26), |
70
c7264bfc4b71
agregado de properties en clase Evento (UrlInvitacion, UrlWiki, NumeroOrden)
jorge.rowies
parents:
61
diff
changeset
|
79 urlInvitacion); |
24 | 80 |
75 | 81 Assert.AreEqual(1, agenda.GetEventosAgendados().Count); |
24 | 82 |
87
26d0513a8410
A los publicadores les llega la lista de tracks producidos en la acción realizada
nelopauselli
parents:
75
diff
changeset
|
83 publicador.Verify(p => p.Publicar(It.IsAny<IEnumerable<Track>>()), Times.Exactly(1)); |
24 | 84 |
85 Assert.IsNotNull(evento); | |
86 Assert.AreEqual("Fabio Maulo", evento.Ponente.Nombre); | |
87 Assert.IsNullOrEmpty(evento.Ponente.Twitter); | |
88 } | |
59 | 89 |
90 [Test] | |
91 public void Quitar_ponente_de_un_evento() | |
92 { | |
87
26d0513a8410
A los publicadores les llega la lista de tracks producidos en la acción realizada
nelopauselli
parents:
75
diff
changeset
|
93 var agenda = new Agenda(null, DefaultEventoRepository, DefaultPonenteRepository); |
59 | 94 |
95 const string titulo = "Audit (parallel model) con NHibernate 3"; | |
96 Guid eventoId; | |
97 | |
75 | 98 agenda.Proponer(titulo, "Fabio", urlInvitacion); |
61
cb3f7b47c1f0
Relación de Ponente a Eventos de los que es el ponente.
nelopauselli
parents:
59
diff
changeset
|
99 Ponente ponente; |
59 | 100 { |
101 var eventos = agenda.GetEventosPropuestos(); | |
102 Assert.AreEqual(1, eventos.Count); | |
103 | |
104 Evento evento = eventos[0]; | |
105 Assert.AreEqual("Fabio", evento.Ponente.Nombre); | |
106 | |
107 eventoId = evento.Id; | |
61
cb3f7b47c1f0
Relación de Ponente a Eventos de los que es el ponente.
nelopauselli
parents:
59
diff
changeset
|
108 ponente = evento.Ponente; |
59 | 109 } |
110 | |
75 | 111 agenda.ModificarPropuesta(eventoId, titulo, null, urlInvitacion); |
59 | 112 { |
113 var eventos = agenda.GetEventosPropuestos(); | |
114 Assert.AreEqual(1, eventos.Count); | |
115 | |
116 Evento evento = eventos[0]; | |
117 Assert.IsNull(evento.Ponente); | |
118 } | |
61
cb3f7b47c1f0
Relación de Ponente a Eventos de los que es el ponente.
nelopauselli
parents:
59
diff
changeset
|
119 |
cb3f7b47c1f0
Relación de Ponente a Eventos de los que es el ponente.
nelopauselli
parents:
59
diff
changeset
|
120 Assert.AreEqual(0, ponente.Eventos.Count()); |
cb3f7b47c1f0
Relación de Ponente a Eventos de los que es el ponente.
nelopauselli
parents:
59
diff
changeset
|
121 } |
cb3f7b47c1f0
Relación de Ponente a Eventos de los que es el ponente.
nelopauselli
parents:
59
diff
changeset
|
122 |
cb3f7b47c1f0
Relación de Ponente a Eventos de los que es el ponente.
nelopauselli
parents:
59
diff
changeset
|
123 [Test] |
cb3f7b47c1f0
Relación de Ponente a Eventos de los que es el ponente.
nelopauselli
parents:
59
diff
changeset
|
124 public void Cambiar_ponente_de_un_evento() |
cb3f7b47c1f0
Relación de Ponente a Eventos de los que es el ponente.
nelopauselli
parents:
59
diff
changeset
|
125 { |
87
26d0513a8410
A los publicadores les llega la lista de tracks producidos en la acción realizada
nelopauselli
parents:
75
diff
changeset
|
126 var agenda = new Agenda(null, DefaultEventoRepository, DefaultPonenteRepository); |
61
cb3f7b47c1f0
Relación de Ponente a Eventos de los que es el ponente.
nelopauselli
parents:
59
diff
changeset
|
127 |
cb3f7b47c1f0
Relación de Ponente a Eventos de los que es el ponente.
nelopauselli
parents:
59
diff
changeset
|
128 const string titulo = "Audit (parallel model) con NHibernate 3"; |
cb3f7b47c1f0
Relación de Ponente a Eventos de los que es el ponente.
nelopauselli
parents:
59
diff
changeset
|
129 Guid eventoId; |
cb3f7b47c1f0
Relación de Ponente a Eventos de los que es el ponente.
nelopauselli
parents:
59
diff
changeset
|
130 |
75 | 131 agenda.Proponer(titulo, "Fabio", urlInvitacion); |
61
cb3f7b47c1f0
Relación de Ponente a Eventos de los que es el ponente.
nelopauselli
parents:
59
diff
changeset
|
132 Ponente ponente1; |
cb3f7b47c1f0
Relación de Ponente a Eventos de los que es el ponente.
nelopauselli
parents:
59
diff
changeset
|
133 { |
cb3f7b47c1f0
Relación de Ponente a Eventos de los que es el ponente.
nelopauselli
parents:
59
diff
changeset
|
134 var eventos = agenda.GetEventosPropuestos(); |
cb3f7b47c1f0
Relación de Ponente a Eventos de los que es el ponente.
nelopauselli
parents:
59
diff
changeset
|
135 Assert.AreEqual(1, eventos.Count); |
cb3f7b47c1f0
Relación de Ponente a Eventos de los que es el ponente.
nelopauselli
parents:
59
diff
changeset
|
136 |
cb3f7b47c1f0
Relación de Ponente a Eventos de los que es el ponente.
nelopauselli
parents:
59
diff
changeset
|
137 Evento evento = eventos[0]; |
cb3f7b47c1f0
Relación de Ponente a Eventos de los que es el ponente.
nelopauselli
parents:
59
diff
changeset
|
138 Assert.AreEqual("Fabio", evento.Ponente.Nombre); |
cb3f7b47c1f0
Relación de Ponente a Eventos de los que es el ponente.
nelopauselli
parents:
59
diff
changeset
|
139 |
cb3f7b47c1f0
Relación de Ponente a Eventos de los que es el ponente.
nelopauselli
parents:
59
diff
changeset
|
140 eventoId = evento.Id; |
cb3f7b47c1f0
Relación de Ponente a Eventos de los que es el ponente.
nelopauselli
parents:
59
diff
changeset
|
141 ponente1 = evento.Ponente; |
cb3f7b47c1f0
Relación de Ponente a Eventos de los que es el ponente.
nelopauselli
parents:
59
diff
changeset
|
142 } |
cb3f7b47c1f0
Relación de Ponente a Eventos de los que es el ponente.
nelopauselli
parents:
59
diff
changeset
|
143 |
75 | 144 agenda.ModificarPropuesta(eventoId, titulo, "José", urlInvitacion); |
61
cb3f7b47c1f0
Relación de Ponente a Eventos de los que es el ponente.
nelopauselli
parents:
59
diff
changeset
|
145 Ponente ponente2; |
cb3f7b47c1f0
Relación de Ponente a Eventos de los que es el ponente.
nelopauselli
parents:
59
diff
changeset
|
146 { |
cb3f7b47c1f0
Relación de Ponente a Eventos de los que es el ponente.
nelopauselli
parents:
59
diff
changeset
|
147 var eventos = agenda.GetEventosPropuestos(); |
cb3f7b47c1f0
Relación de Ponente a Eventos de los que es el ponente.
nelopauselli
parents:
59
diff
changeset
|
148 Assert.AreEqual(1, eventos.Count); |
cb3f7b47c1f0
Relación de Ponente a Eventos de los que es el ponente.
nelopauselli
parents:
59
diff
changeset
|
149 |
cb3f7b47c1f0
Relación de Ponente a Eventos de los que es el ponente.
nelopauselli
parents:
59
diff
changeset
|
150 Evento evento = eventos[0]; |
cb3f7b47c1f0
Relación de Ponente a Eventos de los que es el ponente.
nelopauselli
parents:
59
diff
changeset
|
151 Assert.IsNotNull(evento.Ponente); |
cb3f7b47c1f0
Relación de Ponente a Eventos de los que es el ponente.
nelopauselli
parents:
59
diff
changeset
|
152 ponente2 = evento.Ponente; |
cb3f7b47c1f0
Relación de Ponente a Eventos de los que es el ponente.
nelopauselli
parents:
59
diff
changeset
|
153 } |
cb3f7b47c1f0
Relación de Ponente a Eventos de los que es el ponente.
nelopauselli
parents:
59
diff
changeset
|
154 |
cb3f7b47c1f0
Relación de Ponente a Eventos de los que es el ponente.
nelopauselli
parents:
59
diff
changeset
|
155 Assert.AreEqual(0, ponente1.Eventos.Count()); |
cb3f7b47c1f0
Relación de Ponente a Eventos de los que es el ponente.
nelopauselli
parents:
59
diff
changeset
|
156 Assert.AreEqual(1, ponente2.Eventos.Count()); |
59 | 157 } |
24 | 158 } |
159 } |