annotate 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
rev   line source
75
96d7609f2e08 Agendar evento propuesto
nelopauselli
parents:
diff changeset
1 using System;
87
26d0513a8410 A los publicadores les llega la lista de tracks producidos en la acción realizada
nelopauselli
parents: 76
diff changeset
2 using System.Collections.Generic;
75
96d7609f2e08 Agendar evento propuesto
nelopauselli
parents:
diff changeset
3 using System.Linq;
96d7609f2e08 Agendar evento propuesto
nelopauselli
parents:
diff changeset
4 using AltNetHispano.Agendas.Domain;
96d7609f2e08 Agendar evento propuesto
nelopauselli
parents:
diff changeset
5 using AltNetHispano.Agendas.Domain.Exceptions;
96d7609f2e08 Agendar evento propuesto
nelopauselli
parents:
diff changeset
6 using AltNetHispano.Agendas.Domain.Repositories;
94
db4b1e2cae49 Cambio del nombre de la clase Ponente a Persona
Nelo@Kenia.neluz.int
parents: 87
diff changeset
7 using AltNetHispano.Agendas.Repositories.Memory;
75
96d7609f2e08 Agendar evento propuesto
nelopauselli
parents:
diff changeset
8 using Moq;
96d7609f2e08 Agendar evento propuesto
nelopauselli
parents:
diff changeset
9 using NUnit.Framework;
96d7609f2e08 Agendar evento propuesto
nelopauselli
parents:
diff changeset
10
96d7609f2e08 Agendar evento propuesto
nelopauselli
parents:
diff changeset
11 namespace AltNetHispano.Agendas.Tests
96d7609f2e08 Agendar evento propuesto
nelopauselli
parents:
diff changeset
12 {
96d7609f2e08 Agendar evento propuesto
nelopauselli
parents:
diff changeset
13 [TestFixture]
96d7609f2e08 Agendar evento propuesto
nelopauselli
parents:
diff changeset
14 public class AgendarTests : TestBase
96d7609f2e08 Agendar evento propuesto
nelopauselli
parents:
diff changeset
15 {
96d7609f2e08 Agendar evento propuesto
nelopauselli
parents:
diff changeset
16 private const string urlInvitacion = "http://groups.google.com/group/altnet-hispano/browse_thread/thread/65d6d26eb381386e";
96d7609f2e08 Agendar evento propuesto
nelopauselli
parents:
diff changeset
17
96d7609f2e08 Agendar evento propuesto
nelopauselli
parents:
diff changeset
18 [Test]
96d7609f2e08 Agendar evento propuesto
nelopauselli
parents:
diff changeset
19 public void CompositePublicador_constructor_parametro_null_debe_generar_ArgumentNullException()
96d7609f2e08 Agendar evento propuesto
nelopauselli
parents:
diff changeset
20 {
96d7609f2e08 Agendar evento propuesto
nelopauselli
parents:
diff changeset
21 Assert.Throws<ArgumentNullException>(() => new CompositePublicador(null));
96d7609f2e08 Agendar evento propuesto
nelopauselli
parents:
diff changeset
22 }
96d7609f2e08 Agendar evento propuesto
nelopauselli
parents:
diff changeset
23
96d7609f2e08 Agendar evento propuesto
nelopauselli
parents:
diff changeset
24 [Test]
96d7609f2e08 Agendar evento propuesto
nelopauselli
parents:
diff changeset
25 public void Intentar_agendar_evento_donde_ocurre_una_excepcion_no_manejada()
96d7609f2e08 Agendar evento propuesto
nelopauselli
parents:
diff changeset
26 {
96d7609f2e08 Agendar evento propuesto
nelopauselli
parents:
diff changeset
27 var publicador = new Mock<IPublicador>();
96d7609f2e08 Agendar evento propuesto
nelopauselli
parents:
diff changeset
28 var repository = new Mock<IEventoRepository>();
96d7609f2e08 Agendar evento propuesto
nelopauselli
parents:
diff changeset
29
87
26d0513a8410 A los publicadores les llega la lista de tracks producidos en la acción realizada
nelopauselli
parents: 76
diff changeset
30 publicador.Setup(p => p.Publicar(It.IsAny<IEnumerable<Track>>())).Throws(new Exception("Error intencional"));
75
96d7609f2e08 Agendar evento propuesto
nelopauselli
parents:
diff changeset
31
94
db4b1e2cae49 Cambio del nombre de la clase Ponente a Persona
Nelo@Kenia.neluz.int
parents: 87
diff changeset
32 var agenda = new Agenda(publicador.Object, repository.Object, DefaultPersonaRepository);
75
96d7609f2e08 Agendar evento propuesto
nelopauselli
parents:
diff changeset
33
106
80c22175c9b5 agregado de tipo de evento (van, cafe, grupoestudio)
jorge.rowies
parents: 105
diff changeset
34 Assert.Throws<Exception>(() => agenda.Agendar("Van para publicar", "jjmontes", DateTime.Now, urlInvitacion, TipoEvento.Van));
75
96d7609f2e08 Agendar evento propuesto
nelopauselli
parents:
diff changeset
35 Assert.AreEqual(0, agenda.GetEventosAgendados().Count);
96d7609f2e08 Agendar evento propuesto
nelopauselli
parents:
diff changeset
36
87
26d0513a8410 A los publicadores les llega la lista de tracks producidos en la acción realizada
nelopauselli
parents: 76
diff changeset
37 publicador.Verify(p => p.Publicar(It.IsAny<IEnumerable<Track>>()), Times.Exactly(1));
75
96d7609f2e08 Agendar evento propuesto
nelopauselli
parents:
diff changeset
38 repository.Verify(p => p.Save(It.IsAny<Evento>()), Times.Exactly(0));
96d7609f2e08 Agendar evento propuesto
nelopauselli
parents:
diff changeset
39 }
96d7609f2e08 Agendar evento propuesto
nelopauselli
parents:
diff changeset
40
96d7609f2e08 Agendar evento propuesto
nelopauselli
parents:
diff changeset
41 [Test]
96d7609f2e08 Agendar evento propuesto
nelopauselli
parents:
diff changeset
42 public void Intentar_agendar_evento_sin_servicio_de_seguridad()
96d7609f2e08 Agendar evento propuesto
nelopauselli
parents:
diff changeset
43 {
94
db4b1e2cae49 Cambio del nombre de la clase Ponente a Persona
Nelo@Kenia.neluz.int
parents: 87
diff changeset
44 IdentityContext.Init(null, new PersonaRepository());
75
96d7609f2e08 Agendar evento propuesto
nelopauselli
parents:
diff changeset
45
96d7609f2e08 Agendar evento propuesto
nelopauselli
parents:
diff changeset
46 var publicador = new Mock<IPublicador>();
96d7609f2e08 Agendar evento propuesto
nelopauselli
parents:
diff changeset
47 var repository = new Mock<IEventoRepository>();
96d7609f2e08 Agendar evento propuesto
nelopauselli
parents:
diff changeset
48
94
db4b1e2cae49 Cambio del nombre de la clase Ponente a Persona
Nelo@Kenia.neluz.int
parents: 87
diff changeset
49 var agenda = new Agenda(publicador.Object, repository.Object, DefaultPersonaRepository);
75
96d7609f2e08 Agendar evento propuesto
nelopauselli
parents:
diff changeset
50
96d7609f2e08 Agendar evento propuesto
nelopauselli
parents:
diff changeset
51 Assert.Throws<IdentityContextNotConfiguredException>(
96d7609f2e08 Agendar evento propuesto
nelopauselli
parents:
diff changeset
52 () => agenda.Agendar("Van para publicar", "jjmontes", DateTime.Now,
106
80c22175c9b5 agregado de tipo de evento (van, cafe, grupoestudio)
jorge.rowies
parents: 105
diff changeset
53 urlInvitacion, TipoEvento.Van));
75
96d7609f2e08 Agendar evento propuesto
nelopauselli
parents:
diff changeset
54 repository.Verify(p => p.Save(It.IsAny<Evento>()), Times.Exactly(0));
96d7609f2e08 Agendar evento propuesto
nelopauselli
parents:
diff changeset
55 }
96d7609f2e08 Agendar evento propuesto
nelopauselli
parents:
diff changeset
56
96d7609f2e08 Agendar evento propuesto
nelopauselli
parents:
diff changeset
57 [Test]
96d7609f2e08 Agendar evento propuesto
nelopauselli
parents:
diff changeset
58 public void Intentar_agendar_evento_sin_usuario_autenticado()
96d7609f2e08 Agendar evento propuesto
nelopauselli
parents:
diff changeset
59 {
94
db4b1e2cae49 Cambio del nombre de la clase Ponente a Persona
Nelo@Kenia.neluz.int
parents: 87
diff changeset
60 SetCurrentUser(null, null);
75
96d7609f2e08 Agendar evento propuesto
nelopauselli
parents:
diff changeset
61
96d7609f2e08 Agendar evento propuesto
nelopauselli
parents:
diff changeset
62 var publicador = new Mock<IPublicador>();
96d7609f2e08 Agendar evento propuesto
nelopauselli
parents:
diff changeset
63 var repository = new Mock<IEventoRepository>();
96d7609f2e08 Agendar evento propuesto
nelopauselli
parents:
diff changeset
64
94
db4b1e2cae49 Cambio del nombre de la clase Ponente a Persona
Nelo@Kenia.neluz.int
parents: 87
diff changeset
65 var agenda = new Agenda(publicador.Object, repository.Object, DefaultPersonaRepository);
75
96d7609f2e08 Agendar evento propuesto
nelopauselli
parents:
diff changeset
66
96d7609f2e08 Agendar evento propuesto
nelopauselli
parents:
diff changeset
67 Assert.Throws<UsuarioNoAutenticadoException>(() => agenda.Agendar("Van para publicar", "jjmontes", DateTime.Now,
106
80c22175c9b5 agregado de tipo de evento (van, cafe, grupoestudio)
jorge.rowies
parents: 105
diff changeset
68 urlInvitacion, TipoEvento.Van));
75
96d7609f2e08 Agendar evento propuesto
nelopauselli
parents:
diff changeset
69
87
26d0513a8410 A los publicadores les llega la lista de tracks producidos en la acción realizada
nelopauselli
parents: 76
diff changeset
70 publicador.Verify(p => p.Publicar(It.IsAny<IEnumerable<Track>>()), Times.Exactly(0));
75
96d7609f2e08 Agendar evento propuesto
nelopauselli
parents:
diff changeset
71 repository.Verify(p => p.Save(It.IsAny<Evento>()), Times.Exactly(0));
96d7609f2e08 Agendar evento propuesto
nelopauselli
parents:
diff changeset
72 }
96d7609f2e08 Agendar evento propuesto
nelopauselli
parents:
diff changeset
73
96d7609f2e08 Agendar evento propuesto
nelopauselli
parents:
diff changeset
74 [Test]
96d7609f2e08 Agendar evento propuesto
nelopauselli
parents:
diff changeset
75 public void Intentar_agendar_evento_sin_ponente()
96d7609f2e08 Agendar evento propuesto
nelopauselli
parents:
diff changeset
76 {
94
db4b1e2cae49 Cambio del nombre de la clase Ponente a Persona
Nelo@Kenia.neluz.int
parents: 87
diff changeset
77 var agenda = new Agenda(null, DefaultEventoRepository, DefaultPersonaRepository);
75
96d7609f2e08 Agendar evento propuesto
nelopauselli
parents:
diff changeset
78
96d7609f2e08 Agendar evento propuesto
nelopauselli
parents:
diff changeset
79 var r = agenda.Agendar("Van para publicar", string.Empty, DateTime.Now,
106
80c22175c9b5 agregado de tipo de evento (van, cafe, grupoestudio)
jorge.rowies
parents: 105
diff changeset
80 urlInvitacion, TipoEvento.Van);
75
96d7609f2e08 Agendar evento propuesto
nelopauselli
parents:
diff changeset
81
96d7609f2e08 Agendar evento propuesto
nelopauselli
parents:
diff changeset
82 Assert.IsFalse(r.Succeful);
96d7609f2e08 Agendar evento propuesto
nelopauselli
parents:
diff changeset
83 }
96d7609f2e08 Agendar evento propuesto
nelopauselli
parents:
diff changeset
84
96d7609f2e08 Agendar evento propuesto
nelopauselli
parents:
diff changeset
85 [Test]
96d7609f2e08 Agendar evento propuesto
nelopauselli
parents:
diff changeset
86 public void Agendar_evento_con_multiples_publicadores()
96d7609f2e08 Agendar evento propuesto
nelopauselli
parents:
diff changeset
87 {
96d7609f2e08 Agendar evento propuesto
nelopauselli
parents:
diff changeset
88 var publicador1 = new Mock<IPublicador>();
96d7609f2e08 Agendar evento propuesto
nelopauselli
parents:
diff changeset
89 var publicador2 = new Mock<IPublicador>();
96d7609f2e08 Agendar evento propuesto
nelopauselli
parents:
diff changeset
90
96d7609f2e08 Agendar evento propuesto
nelopauselli
parents:
diff changeset
91 var repository = new Mock<IEventoRepository>();
96d7609f2e08 Agendar evento propuesto
nelopauselli
parents:
diff changeset
92
87
26d0513a8410 A los publicadores les llega la lista de tracks producidos en la acción realizada
nelopauselli
parents: 76
diff changeset
93 var agenda = new Agenda(new CompositePublicador(new[] {publicador1.Object, publicador2.Object}),
94
db4b1e2cae49 Cambio del nombre de la clase Ponente a Persona
Nelo@Kenia.neluz.int
parents: 87
diff changeset
94 repository.Object, DefaultPersonaRepository);
75
96d7609f2e08 Agendar evento propuesto
nelopauselli
parents:
diff changeset
95
96d7609f2e08 Agendar evento propuesto
nelopauselli
parents:
diff changeset
96 agenda.Agendar("Van para publicar", "jjmontes", DateTime.Now,
106
80c22175c9b5 agregado de tipo de evento (van, cafe, grupoestudio)
jorge.rowies
parents: 105
diff changeset
97 urlInvitacion, TipoEvento.Van);
75
96d7609f2e08 Agendar evento propuesto
nelopauselli
parents:
diff changeset
98
87
26d0513a8410 A los publicadores les llega la lista de tracks producidos en la acción realizada
nelopauselli
parents: 76
diff changeset
99 publicador1.Verify(p => p.Publicar(It.IsAny<IEnumerable<Track>>()), Times.Exactly(1));
26d0513a8410 A los publicadores les llega la lista de tracks producidos en la acción realizada
nelopauselli
parents: 76
diff changeset
100 publicador2.Verify(p => p.Publicar(It.IsAny<IEnumerable<Track>>()), Times.Exactly(1));
75
96d7609f2e08 Agendar evento propuesto
nelopauselli
parents:
diff changeset
101 repository.Verify(p => p.Save(It.IsAny<Evento>()), Times.Exactly(1));
96d7609f2e08 Agendar evento propuesto
nelopauselli
parents:
diff changeset
102 }
96d7609f2e08 Agendar evento propuesto
nelopauselli
parents:
diff changeset
103
96d7609f2e08 Agendar evento propuesto
nelopauselli
parents:
diff changeset
104 [Test]
96d7609f2e08 Agendar evento propuesto
nelopauselli
parents:
diff changeset
105 public void Agendar_evento_correctamente()
96d7609f2e08 Agendar evento propuesto
nelopauselli
parents:
diff changeset
106 {
96d7609f2e08 Agendar evento propuesto
nelopauselli
parents:
diff changeset
107 var publicador = new Mock<IPublicador>();
96d7609f2e08 Agendar evento propuesto
nelopauselli
parents:
diff changeset
108
94
db4b1e2cae49 Cambio del nombre de la clase Ponente a Persona
Nelo@Kenia.neluz.int
parents: 87
diff changeset
109 var agenda = new Agenda(publicador.Object, DefaultEventoRepository, DefaultPersonaRepository);
75
96d7609f2e08 Agendar evento propuesto
nelopauselli
parents:
diff changeset
110
96d7609f2e08 Agendar evento propuesto
nelopauselli
parents:
diff changeset
111 agenda.Agendar("Van para publicar", "jjmontes", DateTime.Now,
106
80c22175c9b5 agregado de tipo de evento (van, cafe, grupoestudio)
jorge.rowies
parents: 105
diff changeset
112 urlInvitacion, TipoEvento.Van);
75
96d7609f2e08 Agendar evento propuesto
nelopauselli
parents:
diff changeset
113
96d7609f2e08 Agendar evento propuesto
nelopauselli
parents:
diff changeset
114 Assert.AreEqual(0, agenda.GetEventosPropuestos().Count);
96d7609f2e08 Agendar evento propuesto
nelopauselli
parents:
diff changeset
115
96d7609f2e08 Agendar evento propuesto
nelopauselli
parents:
diff changeset
116 var eventos = agenda.GetEventosAgendados();
96d7609f2e08 Agendar evento propuesto
nelopauselli
parents:
diff changeset
117 Assert.AreEqual(1, eventos.Count);
96d7609f2e08 Agendar evento propuesto
nelopauselli
parents:
diff changeset
118
87
26d0513a8410 A los publicadores les llega la lista de tracks producidos en la acción realizada
nelopauselli
parents: 76
diff changeset
119 publicador.Verify(p => p.Publicar(It.IsAny<IEnumerable<Track>>()), Times.Exactly(1));
75
96d7609f2e08 Agendar evento propuesto
nelopauselli
parents:
diff changeset
120
96d7609f2e08 Agendar evento propuesto
nelopauselli
parents:
diff changeset
121 var evento = eventos[0];
96d7609f2e08 Agendar evento propuesto
nelopauselli
parents:
diff changeset
122
97
2434c2323f3d En el evento, volvemos a llamar Ponente a la persona que está a cargo de la presentación
Nelo@Kenia.neluz.int
parents: 95
diff changeset
123 Assert.IsNotNull(evento.Ponente);
75
96d7609f2e08 Agendar evento propuesto
nelopauselli
parents:
diff changeset
124 }
96d7609f2e08 Agendar evento propuesto
nelopauselli
parents:
diff changeset
125
96d7609f2e08 Agendar evento propuesto
nelopauselli
parents:
diff changeset
126 [Test]
96d7609f2e08 Agendar evento propuesto
nelopauselli
parents:
diff changeset
127 public void Agendar_y_modificar_evento()
96d7609f2e08 Agendar evento propuesto
nelopauselli
parents:
diff changeset
128 {
96d7609f2e08 Agendar evento propuesto
nelopauselli
parents:
diff changeset
129 var repository = DefaultEventoRepository;
96d7609f2e08 Agendar evento propuesto
nelopauselli
parents:
diff changeset
130 var publicador = new Mock<IPublicador>();
96d7609f2e08 Agendar evento propuesto
nelopauselli
parents:
diff changeset
131
94
db4b1e2cae49 Cambio del nombre de la clase Ponente a Persona
Nelo@Kenia.neluz.int
parents: 87
diff changeset
132 var agenda = new Agenda(publicador.Object, repository, DefaultPersonaRepository);
75
96d7609f2e08 Agendar evento propuesto
nelopauselli
parents:
diff changeset
133
96d7609f2e08 Agendar evento propuesto
nelopauselli
parents:
diff changeset
134 agenda.Agendar("Van para publicar", "jjmontes", DateTime.Now,
106
80c22175c9b5 agregado de tipo de evento (van, cafe, grupoestudio)
jorge.rowies
parents: 105
diff changeset
135 urlInvitacion, TipoEvento.Van);
75
96d7609f2e08 Agendar evento propuesto
nelopauselli
parents:
diff changeset
136
87
26d0513a8410 A los publicadores les llega la lista de tracks producidos en la acción realizada
nelopauselli
parents: 76
diff changeset
137 publicador.Verify(p => p.Publicar(It.IsAny<IEnumerable<Track>>()), Times.Exactly(1));
75
96d7609f2e08 Agendar evento propuesto
nelopauselli
parents:
diff changeset
138
96d7609f2e08 Agendar evento propuesto
nelopauselli
parents:
diff changeset
139 var evento = repository.GetEventosConFecha().First();
96d7609f2e08 Agendar evento propuesto
nelopauselli
parents:
diff changeset
140 Assert.AreNotEqual(Guid.Empty, evento.Id);
96d7609f2e08 Agendar evento propuesto
nelopauselli
parents:
diff changeset
141 Assert.IsNotNull(evento.Fecha);
96d7609f2e08 Agendar evento propuesto
nelopauselli
parents:
diff changeset
142
96d7609f2e08 Agendar evento propuesto
nelopauselli
parents:
diff changeset
143 DateTime fecha = evento.Fecha.Value.AddDays(7);
96d7609f2e08 Agendar evento propuesto
nelopauselli
parents:
diff changeset
144 agenda.ModificarEvento(evento.Id, "otro titulo", "otro ponente", fecha, urlInvitacion);
96d7609f2e08 Agendar evento propuesto
nelopauselli
parents:
diff changeset
145
87
26d0513a8410 A los publicadores les llega la lista de tracks producidos en la acción realizada
nelopauselli
parents: 76
diff changeset
146 publicador.Verify(p => p.Publicar(It.IsAny<IEnumerable<Track>>()), Times.Exactly(2));
75
96d7609f2e08 Agendar evento propuesto
nelopauselli
parents:
diff changeset
147
96d7609f2e08 Agendar evento propuesto
nelopauselli
parents:
diff changeset
148 evento = repository.GetEventosConFecha().First();
96d7609f2e08 Agendar evento propuesto
nelopauselli
parents:
diff changeset
149 Assert.AreEqual("otro titulo", evento.Titulo);
97
2434c2323f3d En el evento, volvemos a llamar Ponente a la persona que está a cargo de la presentación
Nelo@Kenia.neluz.int
parents: 95
diff changeset
150 Assert.AreEqual("otro ponente", evento.Ponente.Nombre);
75
96d7609f2e08 Agendar evento propuesto
nelopauselli
parents:
diff changeset
151 Assert.AreEqual(fecha, evento.Fecha);
96d7609f2e08 Agendar evento propuesto
nelopauselli
parents:
diff changeset
152
96d7609f2e08 Agendar evento propuesto
nelopauselli
parents:
diff changeset
153 var idEventoNoExistente = new Guid("99999999999999999999999999999999");
96d7609f2e08 Agendar evento propuesto
nelopauselli
parents:
diff changeset
154 Assert.Throws<EventoNotFoundException>(
96d7609f2e08 Agendar evento propuesto
nelopauselli
parents:
diff changeset
155 () => agenda.ModificarEvento(idEventoNoExistente, "algún título", "un ponente", DateTime.Now, urlInvitacion));
96d7609f2e08 Agendar evento propuesto
nelopauselli
parents:
diff changeset
156 }
96d7609f2e08 Agendar evento propuesto
nelopauselli
parents:
diff changeset
157
87
26d0513a8410 A los publicadores les llega la lista de tracks producidos en la acción realizada
nelopauselli
parents: 76
diff changeset
158 [Test, Ignore("Por ahora no existe el concepto de recordar")]
75
96d7609f2e08 Agendar evento propuesto
nelopauselli
parents:
diff changeset
159 public void Agendar_y_recordar_evento()
96d7609f2e08 Agendar evento propuesto
nelopauselli
parents:
diff changeset
160 {
96d7609f2e08 Agendar evento propuesto
nelopauselli
parents:
diff changeset
161 var publicador1 = new Mock<IPublicador>();
96d7609f2e08 Agendar evento propuesto
nelopauselli
parents:
diff changeset
162 var publicador2 = new Mock<IPublicador>();
96d7609f2e08 Agendar evento propuesto
nelopauselli
parents:
diff changeset
163
87
26d0513a8410 A los publicadores les llega la lista de tracks producidos en la acción realizada
nelopauselli
parents: 76
diff changeset
164 var agenda = new Agenda(new CompositePublicador(new[] {publicador1.Object, publicador2.Object}),
94
db4b1e2cae49 Cambio del nombre de la clase Ponente a Persona
Nelo@Kenia.neluz.int
parents: 87
diff changeset
165 DefaultEventoRepository, DefaultPersonaRepository);
75
96d7609f2e08 Agendar evento propuesto
nelopauselli
parents:
diff changeset
166
96d7609f2e08 Agendar evento propuesto
nelopauselli
parents:
diff changeset
167 agenda.Agendar("Van para publicar", "jjmontes", DateTime.Now,
106
80c22175c9b5 agregado de tipo de evento (van, cafe, grupoestudio)
jorge.rowies
parents: 105
diff changeset
168 urlInvitacion, TipoEvento.Van);
75
96d7609f2e08 Agendar evento propuesto
nelopauselli
parents:
diff changeset
169
96d7609f2e08 Agendar evento propuesto
nelopauselli
parents:
diff changeset
170 var van = agenda.GetEventosAgendados().Single(v => v.Titulo == "Van para publicar");
87
26d0513a8410 A los publicadores les llega la lista de tracks producidos en la acción realizada
nelopauselli
parents: 76
diff changeset
171 //agenda.Recordar(van.Id);
75
96d7609f2e08 Agendar evento propuesto
nelopauselli
parents:
diff changeset
172
87
26d0513a8410 A los publicadores les llega la lista de tracks producidos en la acción realizada
nelopauselli
parents: 76
diff changeset
173 publicador1.Verify(p => p.Publicar(It.IsAny<IEnumerable<Track>>()), Times.Exactly(1));
26d0513a8410 A los publicadores les llega la lista de tracks producidos en la acción realizada
nelopauselli
parents: 76
diff changeset
174 publicador2.Verify(p => p.Publicar(It.IsAny<IEnumerable<Track>>()), Times.Exactly(1));
26d0513a8410 A los publicadores les llega la lista de tracks producidos en la acción realizada
nelopauselli
parents: 76
diff changeset
175 //recordador1.Verify(r => r.Recordar(It.IsAny<Evento>()), Times.Exactly(1));
75
96d7609f2e08 Agendar evento propuesto
nelopauselli
parents:
diff changeset
176 }
96d7609f2e08 Agendar evento propuesto
nelopauselli
parents:
diff changeset
177
96d7609f2e08 Agendar evento propuesto
nelopauselli
parents:
diff changeset
178 [Test]
96d7609f2e08 Agendar evento propuesto
nelopauselli
parents:
diff changeset
179 public void Agendar_evento_propuesto()
96d7609f2e08 Agendar evento propuesto
nelopauselli
parents:
diff changeset
180 {
96d7609f2e08 Agendar evento propuesto
nelopauselli
parents:
diff changeset
181 var publicador1 = new Mock<IPublicador>();
96d7609f2e08 Agendar evento propuesto
nelopauselli
parents:
diff changeset
182 var publicador2 = new Mock<IPublicador>();
96d7609f2e08 Agendar evento propuesto
nelopauselli
parents:
diff changeset
183
87
26d0513a8410 A los publicadores les llega la lista de tracks producidos en la acción realizada
nelopauselli
parents: 76
diff changeset
184 var agenda = new Agenda(new CompositePublicador(new[] { publicador1.Object, publicador2.Object }),
94
db4b1e2cae49 Cambio del nombre de la clase Ponente a Persona
Nelo@Kenia.neluz.int
parents: 87
diff changeset
185 DefaultEventoRepository, DefaultPersonaRepository);
75
96d7609f2e08 Agendar evento propuesto
nelopauselli
parents:
diff changeset
186
106
80c22175c9b5 agregado de tipo de evento (van, cafe, grupoestudio)
jorge.rowies
parents: 105
diff changeset
187 agenda.Proponer("Html 5", "jjmontes", urlInvitacion, TipoEvento.Van);
75
96d7609f2e08 Agendar evento propuesto
nelopauselli
parents:
diff changeset
188 Assert.AreEqual(1, agenda.GetEventosPropuestos().Count);
96d7609f2e08 Agendar evento propuesto
nelopauselli
parents:
diff changeset
189 Assert.AreEqual(0, agenda.GetEventosAgendados().Count);
96d7609f2e08 Agendar evento propuesto
nelopauselli
parents:
diff changeset
190
96d7609f2e08 Agendar evento propuesto
nelopauselli
parents:
diff changeset
191 var publicado = agenda.GetEventosPropuestos().First();
96d7609f2e08 Agendar evento propuesto
nelopauselli
parents:
diff changeset
192 Assert.AreEqual(1, publicado.Tracks.Count());
96d7609f2e08 Agendar evento propuesto
nelopauselli
parents:
diff changeset
193
76
926bd1cdb98f Corrección de un test para que simule lo que pasa realmente en la UI
nelopauselli
parents: 75
diff changeset
194 agenda.ModificarEvento(publicado.Id, "Html 5", "jjmontes", DateTime.Today.AddDays(5), urlInvitacion);
75
96d7609f2e08 Agendar evento propuesto
nelopauselli
parents:
diff changeset
195 Assert.AreEqual(0, agenda.GetEventosPropuestos().Count);
96d7609f2e08 Agendar evento propuesto
nelopauselli
parents:
diff changeset
196 Assert.AreEqual(1, agenda.GetEventosAgendados().Count);
96d7609f2e08 Agendar evento propuesto
nelopauselli
parents:
diff changeset
197
96d7609f2e08 Agendar evento propuesto
nelopauselli
parents:
diff changeset
198 var agendado = agenda.GetEventosAgendados().First();
96d7609f2e08 Agendar evento propuesto
nelopauselli
parents:
diff changeset
199 Assert.AreSame(publicado, agendado);
96d7609f2e08 Agendar evento propuesto
nelopauselli
parents:
diff changeset
200 Assert.AreEqual(2, agendado.Tracks.Count());
96d7609f2e08 Agendar evento propuesto
nelopauselli
parents:
diff changeset
201
96d7609f2e08 Agendar evento propuesto
nelopauselli
parents:
diff changeset
202 Assert.IsNotNull(agendado.Tracks.Where(t => t.Accion == Accion.Proponer).SingleOrDefault());
96d7609f2e08 Agendar evento propuesto
nelopauselli
parents:
diff changeset
203 Assert.IsNotNull(agendado.Tracks.Where(t => t.Accion == Accion.Agendar).SingleOrDefault());
96d7609f2e08 Agendar evento propuesto
nelopauselli
parents:
diff changeset
204 }
102
92c5a12015f3 agregado de tests sobre los estados de un Evento
jorge.rowies
parents: 97
diff changeset
205
92c5a12015f3 agregado de tests sobre los estados de un Evento
jorge.rowies
parents: 97
diff changeset
206 [Test]
92c5a12015f3 agregado de tests sobre los estados de un Evento
jorge.rowies
parents: 97
diff changeset
207 public void Al_proponer_un_evento_debe_quedar_con_estado_EventoPropuestoState_y_debe_generar_el_track_correspondiente()
92c5a12015f3 agregado de tests sobre los estados de un Evento
jorge.rowies
parents: 97
diff changeset
208 {
92c5a12015f3 agregado de tests sobre los estados de un Evento
jorge.rowies
parents: 97
diff changeset
209 var publicador1 = new Mock<IPublicador>();
92c5a12015f3 agregado de tests sobre los estados de un Evento
jorge.rowies
parents: 97
diff changeset
210
92c5a12015f3 agregado de tests sobre los estados de un Evento
jorge.rowies
parents: 97
diff changeset
211 var agenda = new Agenda(publicador1.Object, DefaultEventoRepository, DefaultPersonaRepository);
106
80c22175c9b5 agregado de tipo de evento (van, cafe, grupoestudio)
jorge.rowies
parents: 105
diff changeset
212 agenda.Proponer("Html 5", "jjmontes", urlInvitacion, TipoEvento.Van);
102
92c5a12015f3 agregado de tests sobre los estados de un Evento
jorge.rowies
parents: 97
diff changeset
213
92c5a12015f3 agregado de tests sobre los estados de un Evento
jorge.rowies
parents: 97
diff changeset
214 var evento = DefaultEventoRepository.GetEventosSinFecha().Single(e => e.Titulo == "Html 5");
92c5a12015f3 agregado de tests sobre los estados de un Evento
jorge.rowies
parents: 97
diff changeset
215
103
23325dddddcc Persistencia del estado de los eventos
jorge.rowies
parents: 102
diff changeset
216 Assert.IsInstanceOf(typeof(EventoPropuestoState), evento.GetEstado());
102
92c5a12015f3 agregado de tests sobre los estados de un Evento
jorge.rowies
parents: 97
diff changeset
217 Assert.That(evento.GetTrackNews().Count(t => t.Accion == Accion.Proponer) == 1);
92c5a12015f3 agregado de tests sobre los estados de un Evento
jorge.rowies
parents: 97
diff changeset
218 }
92c5a12015f3 agregado de tests sobre los estados de un Evento
jorge.rowies
parents: 97
diff changeset
219
92c5a12015f3 agregado de tests sobre los estados de un Evento
jorge.rowies
parents: 97
diff changeset
220 [Test]
92c5a12015f3 agregado de tests sobre los estados de un Evento
jorge.rowies
parents: 97
diff changeset
221 public void Al_agendar_un_evento_debe_quedar_con_estado_EventoAgendadoState_y_debe_generar_el_track_correspondiente()
92c5a12015f3 agregado de tests sobre los estados de un Evento
jorge.rowies
parents: 97
diff changeset
222 {
92c5a12015f3 agregado de tests sobre los estados de un Evento
jorge.rowies
parents: 97
diff changeset
223 var publicador1 = new Mock<IPublicador>();
92c5a12015f3 agregado de tests sobre los estados de un Evento
jorge.rowies
parents: 97
diff changeset
224
92c5a12015f3 agregado de tests sobre los estados de un Evento
jorge.rowies
parents: 97
diff changeset
225 var agenda = new Agenda(publicador1.Object, DefaultEventoRepository, DefaultPersonaRepository);
106
80c22175c9b5 agregado de tipo de evento (van, cafe, grupoestudio)
jorge.rowies
parents: 105
diff changeset
226 agenda.Agendar("Html 5", "jjmontes", DateTime.MinValue, urlInvitacion, TipoEvento.Van);
102
92c5a12015f3 agregado de tests sobre los estados de un Evento
jorge.rowies
parents: 97
diff changeset
227
92c5a12015f3 agregado de tests sobre los estados de un Evento
jorge.rowies
parents: 97
diff changeset
228 var evento = DefaultEventoRepository.GetEventosConFecha().Single(e => e.Titulo == "Html 5");
92c5a12015f3 agregado de tests sobre los estados de un Evento
jorge.rowies
parents: 97
diff changeset
229
103
23325dddddcc Persistencia del estado de los eventos
jorge.rowies
parents: 102
diff changeset
230 Assert.IsInstanceOf(typeof(EventoAgendadoState), evento.GetEstado());
102
92c5a12015f3 agregado de tests sobre los estados de un Evento
jorge.rowies
parents: 97
diff changeset
231 Assert.That(evento.GetTrackNews().Count(t => t.Accion == Accion.Agendar) == 1);
92c5a12015f3 agregado de tests sobre los estados de un Evento
jorge.rowies
parents: 97
diff changeset
232 }
92c5a12015f3 agregado de tests sobre los estados de un Evento
jorge.rowies
parents: 97
diff changeset
233
92c5a12015f3 agregado de tests sobre los estados de un Evento
jorge.rowies
parents: 97
diff changeset
234 [Test]
92c5a12015f3 agregado de tests sobre los estados de un Evento
jorge.rowies
parents: 97
diff changeset
235 public void Al_confirmar_un_evento_debe_quedar_con_estado_EventoConfirmadoState_y_debe_generar_el_track_correspondiente()
92c5a12015f3 agregado de tests sobre los estados de un Evento
jorge.rowies
parents: 97
diff changeset
236 {
92c5a12015f3 agregado de tests sobre los estados de un Evento
jorge.rowies
parents: 97
diff changeset
237 var publicador1 = new Mock<IPublicador>();
92c5a12015f3 agregado de tests sobre los estados de un Evento
jorge.rowies
parents: 97
diff changeset
238
92c5a12015f3 agregado de tests sobre los estados de un Evento
jorge.rowies
parents: 97
diff changeset
239 var agenda = new Agenda(publicador1.Object, DefaultEventoRepository, DefaultPersonaRepository);
106
80c22175c9b5 agregado de tipo de evento (van, cafe, grupoestudio)
jorge.rowies
parents: 105
diff changeset
240 agenda.Agendar("Html 5", "jjmontes", DateTime.MinValue, urlInvitacion, TipoEvento.Van);
102
92c5a12015f3 agregado de tests sobre los estados de un Evento
jorge.rowies
parents: 97
diff changeset
241
92c5a12015f3 agregado de tests sobre los estados de un Evento
jorge.rowies
parents: 97
diff changeset
242 var evento = DefaultEventoRepository.GetEventosConFecha().Single(e => e.Titulo == "Html 5");
92c5a12015f3 agregado de tests sobre los estados de un Evento
jorge.rowies
parents: 97
diff changeset
243
92c5a12015f3 agregado de tests sobre los estados de un Evento
jorge.rowies
parents: 97
diff changeset
244 agenda.Confirmar(evento.Id);
92c5a12015f3 agregado de tests sobre los estados de un Evento
jorge.rowies
parents: 97
diff changeset
245
103
23325dddddcc Persistencia del estado de los eventos
jorge.rowies
parents: 102
diff changeset
246 Assert.IsInstanceOf(typeof(EventoConfirmadoState), evento.GetEstado());
102
92c5a12015f3 agregado de tests sobre los estados de un Evento
jorge.rowies
parents: 97
diff changeset
247 Assert.That(evento.GetTrackNews().Count(t => t.Accion == Accion.Confirmar) == 1);
92c5a12015f3 agregado de tests sobre los estados de un Evento
jorge.rowies
parents: 97
diff changeset
248 }
92c5a12015f3 agregado de tests sobre los estados de un Evento
jorge.rowies
parents: 97
diff changeset
249
92c5a12015f3 agregado de tests sobre los estados de un Evento
jorge.rowies
parents: 97
diff changeset
250 [Test]
92c5a12015f3 agregado de tests sobre los estados de un Evento
jorge.rowies
parents: 97
diff changeset
251 public void Al_publicar_un_evento_debe_quedar_con_estado_EventoPublicadoState_y_debe_generar_el_track_correspondiente()
92c5a12015f3 agregado de tests sobre los estados de un Evento
jorge.rowies
parents: 97
diff changeset
252 {
92c5a12015f3 agregado de tests sobre los estados de un Evento
jorge.rowies
parents: 97
diff changeset
253 var publicador1 = new Mock<IPublicador>();
92c5a12015f3 agregado de tests sobre los estados de un Evento
jorge.rowies
parents: 97
diff changeset
254
92c5a12015f3 agregado de tests sobre los estados de un Evento
jorge.rowies
parents: 97
diff changeset
255 var agenda = new Agenda(publicador1.Object, DefaultEventoRepository, DefaultPersonaRepository);
106
80c22175c9b5 agregado de tipo de evento (van, cafe, grupoestudio)
jorge.rowies
parents: 105
diff changeset
256 agenda.Agendar("Html 5", "jjmontes", DateTime.MinValue, urlInvitacion, TipoEvento.Van);
102
92c5a12015f3 agregado de tests sobre los estados de un Evento
jorge.rowies
parents: 97
diff changeset
257
92c5a12015f3 agregado de tests sobre los estados de un Evento
jorge.rowies
parents: 97
diff changeset
258 var evento = DefaultEventoRepository.GetEventosConFecha().Single(e => e.Titulo == "Html 5");
92c5a12015f3 agregado de tests sobre los estados de un Evento
jorge.rowies
parents: 97
diff changeset
259
92c5a12015f3 agregado de tests sobre los estados de un Evento
jorge.rowies
parents: 97
diff changeset
260 agenda.Confirmar(evento.Id);
105
1d820f17fc75 ajustes y correcciones en el publicador de blogs
jorge.rowies
parents: 103
diff changeset
261 agenda.Publicar(evento.Id, 0, string.Empty);
102
92c5a12015f3 agregado de tests sobre los estados de un Evento
jorge.rowies
parents: 97
diff changeset
262
103
23325dddddcc Persistencia del estado de los eventos
jorge.rowies
parents: 102
diff changeset
263 Assert.IsInstanceOf(typeof(EventoPublicadoState), evento.GetEstado());
102
92c5a12015f3 agregado de tests sobre los estados de un Evento
jorge.rowies
parents: 97
diff changeset
264 Assert.That(evento.GetTrackNews().Count(t => t.Accion == Accion.Publicar) == 1);
92c5a12015f3 agregado de tests sobre los estados de un Evento
jorge.rowies
parents: 97
diff changeset
265 }
92c5a12015f3 agregado de tests sobre los estados de un Evento
jorge.rowies
parents: 97
diff changeset
266
92c5a12015f3 agregado de tests sobre los estados de un Evento
jorge.rowies
parents: 97
diff changeset
267 [Test]
105
1d820f17fc75 ajustes y correcciones en el publicador de blogs
jorge.rowies
parents: 103
diff changeset
268 public void Al_publicar_un_evento_debe_asignarse_el_nro_de_reunion_y_la_url_de_la_wiki()
1d820f17fc75 ajustes y correcciones en el publicador de blogs
jorge.rowies
parents: 103
diff changeset
269 {
1d820f17fc75 ajustes y correcciones en el publicador de blogs
jorge.rowies
parents: 103
diff changeset
270 var publicador1 = new Mock<IPublicador>();
1d820f17fc75 ajustes y correcciones en el publicador de blogs
jorge.rowies
parents: 103
diff changeset
271
1d820f17fc75 ajustes y correcciones en el publicador de blogs
jorge.rowies
parents: 103
diff changeset
272 var agenda = new Agenda(publicador1.Object, DefaultEventoRepository, DefaultPersonaRepository);
106
80c22175c9b5 agregado de tipo de evento (van, cafe, grupoestudio)
jorge.rowies
parents: 105
diff changeset
273 agenda.Agendar("Html 5", "jjmontes", DateTime.MinValue, urlInvitacion, TipoEvento.Van);
105
1d820f17fc75 ajustes y correcciones en el publicador de blogs
jorge.rowies
parents: 103
diff changeset
274
1d820f17fc75 ajustes y correcciones en el publicador de blogs
jorge.rowies
parents: 103
diff changeset
275 var evento = DefaultEventoRepository.GetEventosConFecha().Single(e => e.Titulo == "Html 5");
1d820f17fc75 ajustes y correcciones en el publicador de blogs
jorge.rowies
parents: 103
diff changeset
276 agenda.Confirmar(evento.Id);
1d820f17fc75 ajustes y correcciones en el publicador de blogs
jorge.rowies
parents: 103
diff changeset
277
1d820f17fc75 ajustes y correcciones en el publicador de blogs
jorge.rowies
parents: 103
diff changeset
278 const string urlWiki = "http://www.altnethispano.org/wiki/van-2010-10-21-mono-cecil.ashx";
1d820f17fc75 ajustes y correcciones en el publicador de blogs
jorge.rowies
parents: 103
diff changeset
279 agenda.Publicar(evento.Id, 71, urlWiki);
1d820f17fc75 ajustes y correcciones en el publicador de blogs
jorge.rowies
parents: 103
diff changeset
280
1d820f17fc75 ajustes y correcciones en el publicador de blogs
jorge.rowies
parents: 103
diff changeset
281 Assert.AreEqual(71, evento.NumeroOrden);
1d820f17fc75 ajustes y correcciones en el publicador de blogs
jorge.rowies
parents: 103
diff changeset
282 Assert.AreEqual(urlWiki, evento.UrlWiki);
1d820f17fc75 ajustes y correcciones en el publicador de blogs
jorge.rowies
parents: 103
diff changeset
283 }
1d820f17fc75 ajustes y correcciones en el publicador de blogs
jorge.rowies
parents: 103
diff changeset
284
1d820f17fc75 ajustes y correcciones en el publicador de blogs
jorge.rowies
parents: 103
diff changeset
285 [Test]
102
92c5a12015f3 agregado de tests sobre los estados de un Evento
jorge.rowies
parents: 97
diff changeset
286 [ExpectedException(typeof(AccionNoSoportadaException))]
92c5a12015f3 agregado de tests sobre los estados de un Evento
jorge.rowies
parents: 97
diff changeset
287 public void Al_confirmar_sin_agendar_debe_lanzarse_excepcion()
92c5a12015f3 agregado de tests sobre los estados de un Evento
jorge.rowies
parents: 97
diff changeset
288 {
92c5a12015f3 agregado de tests sobre los estados de un Evento
jorge.rowies
parents: 97
diff changeset
289 var publicador1 = new Mock<IPublicador>();
92c5a12015f3 agregado de tests sobre los estados de un Evento
jorge.rowies
parents: 97
diff changeset
290
92c5a12015f3 agregado de tests sobre los estados de un Evento
jorge.rowies
parents: 97
diff changeset
291 var agenda = new Agenda(publicador1.Object, DefaultEventoRepository, DefaultPersonaRepository);
106
80c22175c9b5 agregado de tipo de evento (van, cafe, grupoestudio)
jorge.rowies
parents: 105
diff changeset
292 agenda.Proponer("Html 5", "jjmontes", urlInvitacion, TipoEvento.Van);
102
92c5a12015f3 agregado de tests sobre los estados de un Evento
jorge.rowies
parents: 97
diff changeset
293
92c5a12015f3 agregado de tests sobre los estados de un Evento
jorge.rowies
parents: 97
diff changeset
294 var evento = DefaultEventoRepository.GetEventosSinFecha().Single(e => e.Titulo == "Html 5");
92c5a12015f3 agregado de tests sobre los estados de un Evento
jorge.rowies
parents: 97
diff changeset
295
92c5a12015f3 agregado de tests sobre los estados de un Evento
jorge.rowies
parents: 97
diff changeset
296 Assert.IsFalse(evento.Estado.GetType() == typeof(EventoAgendadoState));
92c5a12015f3 agregado de tests sobre los estados de un Evento
jorge.rowies
parents: 97
diff changeset
297
92c5a12015f3 agregado de tests sobre los estados de un Evento
jorge.rowies
parents: 97
diff changeset
298 agenda.Confirmar(evento.Id);
92c5a12015f3 agregado de tests sobre los estados de un Evento
jorge.rowies
parents: 97
diff changeset
299 }
92c5a12015f3 agregado de tests sobre los estados de un Evento
jorge.rowies
parents: 97
diff changeset
300
92c5a12015f3 agregado de tests sobre los estados de un Evento
jorge.rowies
parents: 97
diff changeset
301 [Test]
92c5a12015f3 agregado de tests sobre los estados de un Evento
jorge.rowies
parents: 97
diff changeset
302 [ExpectedException(typeof(AccionNoSoportadaException))]
92c5a12015f3 agregado de tests sobre los estados de un Evento
jorge.rowies
parents: 97
diff changeset
303 public void Al_publicar_sin_confirmar_debe_lanzarse_excepcion()
92c5a12015f3 agregado de tests sobre los estados de un Evento
jorge.rowies
parents: 97
diff changeset
304 {
92c5a12015f3 agregado de tests sobre los estados de un Evento
jorge.rowies
parents: 97
diff changeset
305 var publicador1 = new Mock<IPublicador>();
92c5a12015f3 agregado de tests sobre los estados de un Evento
jorge.rowies
parents: 97
diff changeset
306
92c5a12015f3 agregado de tests sobre los estados de un Evento
jorge.rowies
parents: 97
diff changeset
307 var agenda = new Agenda(publicador1.Object, DefaultEventoRepository, DefaultPersonaRepository);
106
80c22175c9b5 agregado de tipo de evento (van, cafe, grupoestudio)
jorge.rowies
parents: 105
diff changeset
308 agenda.Proponer("Html 5", "jjmontes", urlInvitacion, TipoEvento.Van);
102
92c5a12015f3 agregado de tests sobre los estados de un Evento
jorge.rowies
parents: 97
diff changeset
309
92c5a12015f3 agregado de tests sobre los estados de un Evento
jorge.rowies
parents: 97
diff changeset
310 var evento = DefaultEventoRepository.GetEventosSinFecha().Single(e => e.Titulo == "Html 5");
92c5a12015f3 agregado de tests sobre los estados de un Evento
jorge.rowies
parents: 97
diff changeset
311
92c5a12015f3 agregado de tests sobre los estados de un Evento
jorge.rowies
parents: 97
diff changeset
312 Assert.IsFalse(evento.Estado.GetType() == typeof(EventoConfirmadoState));
92c5a12015f3 agregado de tests sobre los estados de un Evento
jorge.rowies
parents: 97
diff changeset
313
105
1d820f17fc75 ajustes y correcciones en el publicador de blogs
jorge.rowies
parents: 103
diff changeset
314 agenda.Publicar(evento.Id, 0, string.Empty);
102
92c5a12015f3 agregado de tests sobre los estados de un Evento
jorge.rowies
parents: 97
diff changeset
315 }
75
96d7609f2e08 Agendar evento propuesto
nelopauselli
parents:
diff changeset
316 }
96d7609f2e08 Agendar evento propuesto
nelopauselli
parents:
diff changeset
317 }