Mercurial > altnet-hispano
comparison Agendas/trunk/src/Agendas.Tests/AgendarTests.cs @ 118:b74734a1a755
Manejo de eventos por estado
author | Nelo@Kenia.neluz.int |
---|---|
date | Wed, 22 Jun 2011 09:32:59 -0300 |
parents | 80c22175c9b5 |
children | 8fa58a79656a |
comparison
equal
deleted
inserted
replaced
117:7ef7e4bb71f6 | 118:b74734a1a755 |
---|---|
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, TipoEvento.Van)); | 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.GetEventosActivos().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 } |
40 | 40 |
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, TipoEvento.Van); | 112 urlInvitacion, TipoEvento.Van); |
113 | 113 |
114 Assert.AreEqual(0, agenda.GetEventosPropuestos().Count); | 114 Assert.AreEqual(0, agenda.GetEventosActivos(EventoPropuestoState.GetInstance()).Count); |
115 | 115 |
116 var eventos = agenda.GetEventosAgendados(); | 116 var eventos = agenda.GetEventosActivos(); |
117 Assert.AreEqual(1, eventos.Count); | 117 Assert.AreEqual(1, eventos.Count); |
118 | 118 |
119 publicador.Verify(p => p.Publicar(It.IsAny<IEnumerable<Track>>()), Times.Exactly(1)); | 119 publicador.Verify(p => p.Publicar(It.IsAny<IEnumerable<Track>>()), Times.Exactly(1)); |
120 | 120 |
121 var evento = eventos[0]; | 121 var evento = eventos[0]; |
134 agenda.Agendar("Van para publicar", "jjmontes", DateTime.Now, | 134 agenda.Agendar("Van para publicar", "jjmontes", DateTime.Now, |
135 urlInvitacion, TipoEvento.Van); | 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.GetActivos().First(); |
140 Assert.AreNotEqual(Guid.Empty, evento.Id); | 140 Assert.AreNotEqual(Guid.Empty, evento.Id); |
141 Assert.IsNotNull(evento.Fecha); | 141 Assert.IsNotNull(evento.Fecha); |
142 | 142 |
143 DateTime fecha = evento.Fecha.Value.AddDays(7); | 143 DateTime fecha = evento.Fecha.Value.AddDays(7); |
144 agenda.ModificarEvento(evento.Id, "otro titulo", "otro ponente", fecha, urlInvitacion); | 144 agenda.ModificarEvento(evento.Id, "otro titulo", "otro ponente", fecha, urlInvitacion); |
145 | 145 |
146 publicador.Verify(p => p.Publicar(It.IsAny<IEnumerable<Track>>()), Times.Exactly(2)); | 146 publicador.Verify(p => p.Publicar(It.IsAny<IEnumerable<Track>>()), Times.Exactly(2)); |
147 | 147 |
148 evento = repository.GetEventosConFecha().First(); | 148 evento = repository.GetActivos().First(); |
149 Assert.AreEqual("otro titulo", evento.Titulo); | 149 Assert.AreEqual("otro titulo", evento.Titulo); |
150 Assert.AreEqual("otro ponente", evento.Ponente.Nombre); | 150 Assert.AreEqual("otro ponente", evento.Ponente.Nombre); |
151 Assert.AreEqual(fecha, evento.Fecha); | 151 Assert.AreEqual(fecha, evento.Fecha); |
152 | 152 |
153 var idEventoNoExistente = new Guid("99999999999999999999999999999999"); | 153 var idEventoNoExistente = new Guid("99999999999999999999999999999999"); |
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, TipoEvento.Van); | 168 urlInvitacion, TipoEvento.Van); |
169 | 169 |
170 var van = agenda.GetEventosAgendados().Single(v => v.Titulo == "Van para publicar"); | 170 var van = agenda.GetEventosActivos().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)); |
174 publicador2.Verify(p => p.Publicar(It.IsAny<IEnumerable<Track>>()), Times.Exactly(1)); | 174 publicador2.Verify(p => p.Publicar(It.IsAny<IEnumerable<Track>>()), Times.Exactly(1)); |
175 //recordador1.Verify(r => r.Recordar(It.IsAny<Evento>()), Times.Exactly(1)); | 175 //recordador1.Verify(r => r.Recordar(It.IsAny<Evento>()), 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, TipoEvento.Van); | 187 agenda.Proponer("Html 5", "jjmontes", urlInvitacion, TipoEvento.Van); |
188 Assert.AreEqual(1, agenda.GetEventosPropuestos().Count); | 188 Assert.AreEqual(1, agenda.GetEventosActivos(EventoPropuestoState.GetInstance()).Count); |
189 Assert.AreEqual(0, agenda.GetEventosAgendados().Count); | 189 Assert.AreEqual(1, agenda.GetEventosActivos().Count); |
190 | 190 |
191 var publicado = agenda.GetEventosPropuestos().First(); | 191 var publicado = agenda.GetEventosActivos(EventoPropuestoState.GetInstance()).First(); |
192 Assert.AreEqual(1, publicado.Tracks.Count()); | 192 Assert.AreEqual(1, publicado.Tracks.Count()); |
193 | 193 |
194 agenda.ModificarEvento(publicado.Id, "Html 5", "jjmontes", DateTime.Today.AddDays(5), urlInvitacion); | 194 agenda.ModificarEvento(publicado.Id, "Html 5", "jjmontes", DateTime.Today.AddDays(5), urlInvitacion); |
195 Assert.AreEqual(0, agenda.GetEventosPropuestos().Count); | 195 Assert.AreEqual(0, agenda.GetEventosActivos(EventoPropuestoState.GetInstance()).Count); |
196 Assert.AreEqual(1, agenda.GetEventosAgendados().Count); | 196 Assert.AreEqual(1, agenda.GetEventosActivos(EventoAgendadoState.GetInstance()).Count); |
197 | 197 Assert.AreEqual(1, agenda.GetEventosActivos().Count); |
198 var agendado = agenda.GetEventosAgendados().First(); | 198 |
199 var agendado = agenda.GetEventosActivos().First(); | |
199 Assert.AreSame(publicado, agendado); | 200 Assert.AreSame(publicado, agendado); |
200 Assert.AreEqual(2, agendado.Tracks.Count()); | 201 Assert.AreEqual(2, agendado.Tracks.Count()); |
201 | 202 |
202 Assert.IsNotNull(agendado.Tracks.Where(t => t.Accion == Accion.Proponer).SingleOrDefault()); | 203 Assert.IsNotNull(agendado.Tracks.Where(t => t.Accion == Accion.Proponer).SingleOrDefault()); |
203 Assert.IsNotNull(agendado.Tracks.Where(t => t.Accion == Accion.Agendar).SingleOrDefault()); | 204 Assert.IsNotNull(agendado.Tracks.Where(t => t.Accion == Accion.Agendar).SingleOrDefault()); |
209 var publicador1 = new Mock<IPublicador>(); | 210 var publicador1 = new Mock<IPublicador>(); |
210 | 211 |
211 var agenda = new Agenda(publicador1.Object, DefaultEventoRepository, DefaultPersonaRepository); | 212 var agenda = new Agenda(publicador1.Object, DefaultEventoRepository, DefaultPersonaRepository); |
212 agenda.Proponer("Html 5", "jjmontes", urlInvitacion, TipoEvento.Van); | 213 agenda.Proponer("Html 5", "jjmontes", urlInvitacion, TipoEvento.Van); |
213 | 214 |
214 var evento = DefaultEventoRepository.GetEventosSinFecha().Single(e => e.Titulo == "Html 5"); | 215 var evento = |
216 DefaultEventoRepository.GetByState(EventoPropuestoState.GetInstance()).Single(e => e.Titulo == "Html 5"); | |
215 | 217 |
216 Assert.IsInstanceOf(typeof(EventoPropuestoState), evento.GetEstado()); | 218 Assert.IsInstanceOf(typeof(EventoPropuestoState), evento.GetEstado()); |
217 Assert.That(evento.GetTrackNews().Count(t => t.Accion == Accion.Proponer) == 1); | 219 Assert.That(evento.GetTrackNews().Count(t => t.Accion == Accion.Proponer) == 1); |
218 } | 220 } |
219 | 221 |
223 var publicador1 = new Mock<IPublicador>(); | 225 var publicador1 = new Mock<IPublicador>(); |
224 | 226 |
225 var agenda = new Agenda(publicador1.Object, DefaultEventoRepository, DefaultPersonaRepository); | 227 var agenda = new Agenda(publicador1.Object, DefaultEventoRepository, DefaultPersonaRepository); |
226 agenda.Agendar("Html 5", "jjmontes", DateTime.MinValue, urlInvitacion, TipoEvento.Van); | 228 agenda.Agendar("Html 5", "jjmontes", DateTime.MinValue, urlInvitacion, TipoEvento.Van); |
227 | 229 |
228 var evento = DefaultEventoRepository.GetEventosConFecha().Single(e => e.Titulo == "Html 5"); | 230 var evento = DefaultEventoRepository.GetActivos().Single(e => e.Titulo == "Html 5"); |
229 | 231 |
230 Assert.IsInstanceOf(typeof(EventoAgendadoState), evento.GetEstado()); | 232 Assert.IsInstanceOf(typeof(EventoAgendadoState), evento.GetEstado()); |
231 Assert.That(evento.GetTrackNews().Count(t => t.Accion == Accion.Agendar) == 1); | 233 Assert.That(evento.GetTrackNews().Count(t => t.Accion == Accion.Agendar) == 1); |
232 } | 234 } |
233 | 235 |
237 var publicador1 = new Mock<IPublicador>(); | 239 var publicador1 = new Mock<IPublicador>(); |
238 | 240 |
239 var agenda = new Agenda(publicador1.Object, DefaultEventoRepository, DefaultPersonaRepository); | 241 var agenda = new Agenda(publicador1.Object, DefaultEventoRepository, DefaultPersonaRepository); |
240 agenda.Agendar("Html 5", "jjmontes", DateTime.MinValue, urlInvitacion, TipoEvento.Van); | 242 agenda.Agendar("Html 5", "jjmontes", DateTime.MinValue, urlInvitacion, TipoEvento.Van); |
241 | 243 |
242 var evento = DefaultEventoRepository.GetEventosConFecha().Single(e => e.Titulo == "Html 5"); | 244 var evento = DefaultEventoRepository.GetActivos().Single(e => e.Titulo == "Html 5"); |
243 | 245 |
244 agenda.Confirmar(evento.Id); | 246 agenda.Confirmar(evento.Id); |
245 | 247 |
246 Assert.IsInstanceOf(typeof(EventoConfirmadoState), evento.GetEstado()); | 248 Assert.IsInstanceOf(typeof(EventoConfirmadoState), evento.GetEstado()); |
247 Assert.That(evento.GetTrackNews().Count(t => t.Accion == Accion.Confirmar) == 1); | 249 Assert.That(evento.GetTrackNews().Count(t => t.Accion == Accion.Confirmar) == 1); |
253 var publicador1 = new Mock<IPublicador>(); | 255 var publicador1 = new Mock<IPublicador>(); |
254 | 256 |
255 var agenda = new Agenda(publicador1.Object, DefaultEventoRepository, DefaultPersonaRepository); | 257 var agenda = new Agenda(publicador1.Object, DefaultEventoRepository, DefaultPersonaRepository); |
256 agenda.Agendar("Html 5", "jjmontes", DateTime.MinValue, urlInvitacion, TipoEvento.Van); | 258 agenda.Agendar("Html 5", "jjmontes", DateTime.MinValue, urlInvitacion, TipoEvento.Van); |
257 | 259 |
258 var evento = DefaultEventoRepository.GetEventosConFecha().Single(e => e.Titulo == "Html 5"); | 260 var evento = DefaultEventoRepository.GetActivos().Single(e => e.Titulo == "Html 5"); |
259 | 261 |
260 agenda.Confirmar(evento.Id); | 262 agenda.Confirmar(evento.Id); |
261 agenda.Publicar(evento.Id, 0, string.Empty); | 263 agenda.Publicar(evento.Id, 0, string.Empty); |
262 | 264 |
263 Assert.IsInstanceOf(typeof(EventoPublicadoState), evento.GetEstado()); | 265 Assert.IsInstanceOf(typeof(EventoPublicadoState), evento.GetEstado()); |
270 var publicador1 = new Mock<IPublicador>(); | 272 var publicador1 = new Mock<IPublicador>(); |
271 | 273 |
272 var agenda = new Agenda(publicador1.Object, DefaultEventoRepository, DefaultPersonaRepository); | 274 var agenda = new Agenda(publicador1.Object, DefaultEventoRepository, DefaultPersonaRepository); |
273 agenda.Agendar("Html 5", "jjmontes", DateTime.MinValue, urlInvitacion, TipoEvento.Van); | 275 agenda.Agendar("Html 5", "jjmontes", DateTime.MinValue, urlInvitacion, TipoEvento.Van); |
274 | 276 |
275 var evento = DefaultEventoRepository.GetEventosConFecha().Single(e => e.Titulo == "Html 5"); | 277 var evento = DefaultEventoRepository.GetActivos().Single(e => e.Titulo == "Html 5"); |
276 agenda.Confirmar(evento.Id); | 278 agenda.Confirmar(evento.Id); |
277 | 279 |
278 const string urlWiki = "http://www.altnethispano.org/wiki/van-2010-10-21-mono-cecil.ashx"; | 280 const string urlWiki = "http://www.altnethispano.org/wiki/van-2010-10-21-mono-cecil.ashx"; |
279 agenda.Publicar(evento.Id, 71, urlWiki); | 281 agenda.Publicar(evento.Id, 71, urlWiki); |
280 | 282 |
289 var publicador1 = new Mock<IPublicador>(); | 291 var publicador1 = new Mock<IPublicador>(); |
290 | 292 |
291 var agenda = new Agenda(publicador1.Object, DefaultEventoRepository, DefaultPersonaRepository); | 293 var agenda = new Agenda(publicador1.Object, DefaultEventoRepository, DefaultPersonaRepository); |
292 agenda.Proponer("Html 5", "jjmontes", urlInvitacion, TipoEvento.Van); | 294 agenda.Proponer("Html 5", "jjmontes", urlInvitacion, TipoEvento.Van); |
293 | 295 |
294 var evento = DefaultEventoRepository.GetEventosSinFecha().Single(e => e.Titulo == "Html 5"); | 296 var evento = |
297 DefaultEventoRepository.GetByState(EventoPropuestoState.GetInstance()).Single(e => e.Titulo == "Html 5"); | |
295 | 298 |
296 Assert.IsFalse(evento.Estado.GetType() == typeof(EventoAgendadoState)); | 299 Assert.IsFalse(evento.Estado.GetType() == typeof(EventoAgendadoState)); |
297 | 300 |
298 agenda.Confirmar(evento.Id); | 301 agenda.Confirmar(evento.Id); |
299 } | 302 } |
305 var publicador1 = new Mock<IPublicador>(); | 308 var publicador1 = new Mock<IPublicador>(); |
306 | 309 |
307 var agenda = new Agenda(publicador1.Object, DefaultEventoRepository, DefaultPersonaRepository); | 310 var agenda = new Agenda(publicador1.Object, DefaultEventoRepository, DefaultPersonaRepository); |
308 agenda.Proponer("Html 5", "jjmontes", urlInvitacion, TipoEvento.Van); | 311 agenda.Proponer("Html 5", "jjmontes", urlInvitacion, TipoEvento.Van); |
309 | 312 |
310 var evento = DefaultEventoRepository.GetEventosSinFecha().Single(e => e.Titulo == "Html 5"); | 313 var evento = |
314 DefaultEventoRepository.GetByState(EventoPropuestoState.GetInstance()).Single(e => e.Titulo == "Html 5"); | |
311 | 315 |
312 Assert.IsFalse(evento.Estado.GetType() == typeof(EventoConfirmadoState)); | 316 Assert.IsFalse(evento.Estado.GetType() == typeof(EventoConfirmadoState)); |
313 | 317 |
314 agenda.Publicar(evento.Id, 0, string.Empty); | 318 agenda.Publicar(evento.Id, 0, string.Empty); |
315 } | 319 } |