annotate Agendas/trunk/src/Agendas.Tests/AgendarTests.cs @ 94:db4b1e2cae49

Cambio del nombre de la clase Ponente a Persona Se agrega la clase Cuenta para identificar cada una de las cuentas con que se puede autenticar una persona Alta Automatica de cuentas de twitter creando la persona
author Nelo@Kenia.neluz.int
date Sat, 04 Jun 2011 12:11:17 -0300
parents 26d0513a8410
children 83d76f6e0a3c
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
96d7609f2e08 Agendar evento propuesto
nelopauselli
parents:
diff changeset
34 Assert.Throws<Exception>(() => agenda.Agendar("Van para publicar", "jjmontes", DateTime.Now, urlInvitacion));
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,
96d7609f2e08 Agendar evento propuesto
nelopauselli
parents:
diff changeset
53 urlInvitacion));
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,
96d7609f2e08 Agendar evento propuesto
nelopauselli
parents:
diff changeset
68 urlInvitacion));
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,
96d7609f2e08 Agendar evento propuesto
nelopauselli
parents:
diff changeset
80 urlInvitacion);
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,
96d7609f2e08 Agendar evento propuesto
nelopauselli
parents:
diff changeset
97 urlInvitacion);
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,
96d7609f2e08 Agendar evento propuesto
nelopauselli
parents:
diff changeset
112 urlInvitacion);
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
94
db4b1e2cae49 Cambio del nombre de la clase Ponente a Persona
Nelo@Kenia.neluz.int
parents: 87
diff changeset
123 Assert.IsNotNull(evento.Persona);
db4b1e2cae49 Cambio del nombre de la clase Ponente a Persona
Nelo@Kenia.neluz.int
parents: 87
diff changeset
124 Assert.IsNotNull(evento.Persona.Eventos);
db4b1e2cae49 Cambio del nombre de la clase Ponente a Persona
Nelo@Kenia.neluz.int
parents: 87
diff changeset
125 Assert.AreEqual(1, evento.Persona.Eventos.Count());
db4b1e2cae49 Cambio del nombre de la clase Ponente a Persona
Nelo@Kenia.neluz.int
parents: 87
diff changeset
126 Assert.AreEqual(evento, evento.Persona.Eventos.First());
75
96d7609f2e08 Agendar evento propuesto
nelopauselli
parents:
diff changeset
127
96d7609f2e08 Agendar evento propuesto
nelopauselli
parents:
diff changeset
128 }
96d7609f2e08 Agendar evento propuesto
nelopauselli
parents:
diff changeset
129
96d7609f2e08 Agendar evento propuesto
nelopauselli
parents:
diff changeset
130 [Test]
96d7609f2e08 Agendar evento propuesto
nelopauselli
parents:
diff changeset
131 public void Agendar_y_modificar_evento()
96d7609f2e08 Agendar evento propuesto
nelopauselli
parents:
diff changeset
132 {
96d7609f2e08 Agendar evento propuesto
nelopauselli
parents:
diff changeset
133 var repository = DefaultEventoRepository;
96d7609f2e08 Agendar evento propuesto
nelopauselli
parents:
diff changeset
134 var publicador = new Mock<IPublicador>();
96d7609f2e08 Agendar evento propuesto
nelopauselli
parents:
diff changeset
135
94
db4b1e2cae49 Cambio del nombre de la clase Ponente a Persona
Nelo@Kenia.neluz.int
parents: 87
diff changeset
136 var agenda = new Agenda(publicador.Object, repository, DefaultPersonaRepository);
75
96d7609f2e08 Agendar evento propuesto
nelopauselli
parents:
diff changeset
137
96d7609f2e08 Agendar evento propuesto
nelopauselli
parents:
diff changeset
138 agenda.Agendar("Van para publicar", "jjmontes", DateTime.Now,
96d7609f2e08 Agendar evento propuesto
nelopauselli
parents:
diff changeset
139 urlInvitacion);
96d7609f2e08 Agendar evento propuesto
nelopauselli
parents:
diff changeset
140
87
26d0513a8410 A los publicadores les llega la lista de tracks producidos en la acción realizada
nelopauselli
parents: 76
diff changeset
141 publicador.Verify(p => p.Publicar(It.IsAny<IEnumerable<Track>>()), Times.Exactly(1));
75
96d7609f2e08 Agendar evento propuesto
nelopauselli
parents:
diff changeset
142
96d7609f2e08 Agendar evento propuesto
nelopauselli
parents:
diff changeset
143 var evento = repository.GetEventosConFecha().First();
96d7609f2e08 Agendar evento propuesto
nelopauselli
parents:
diff changeset
144 Assert.AreNotEqual(Guid.Empty, evento.Id);
96d7609f2e08 Agendar evento propuesto
nelopauselli
parents:
diff changeset
145 Assert.IsNotNull(evento.Fecha);
96d7609f2e08 Agendar evento propuesto
nelopauselli
parents:
diff changeset
146
96d7609f2e08 Agendar evento propuesto
nelopauselli
parents:
diff changeset
147 DateTime fecha = evento.Fecha.Value.AddDays(7);
96d7609f2e08 Agendar evento propuesto
nelopauselli
parents:
diff changeset
148 agenda.ModificarEvento(evento.Id, "otro titulo", "otro ponente", fecha, urlInvitacion);
96d7609f2e08 Agendar evento propuesto
nelopauselli
parents:
diff changeset
149
87
26d0513a8410 A los publicadores les llega la lista de tracks producidos en la acción realizada
nelopauselli
parents: 76
diff changeset
150 publicador.Verify(p => p.Publicar(It.IsAny<IEnumerable<Track>>()), Times.Exactly(2));
75
96d7609f2e08 Agendar evento propuesto
nelopauselli
parents:
diff changeset
151
96d7609f2e08 Agendar evento propuesto
nelopauselli
parents:
diff changeset
152 evento = repository.GetEventosConFecha().First();
96d7609f2e08 Agendar evento propuesto
nelopauselli
parents:
diff changeset
153 Assert.AreEqual("otro titulo", evento.Titulo);
94
db4b1e2cae49 Cambio del nombre de la clase Ponente a Persona
Nelo@Kenia.neluz.int
parents: 87
diff changeset
154 Assert.AreEqual("otro ponente", evento.Persona.Nombre);
75
96d7609f2e08 Agendar evento propuesto
nelopauselli
parents:
diff changeset
155 Assert.AreEqual(fecha, evento.Fecha);
96d7609f2e08 Agendar evento propuesto
nelopauselli
parents:
diff changeset
156
96d7609f2e08 Agendar evento propuesto
nelopauselli
parents:
diff changeset
157 var idEventoNoExistente = new Guid("99999999999999999999999999999999");
96d7609f2e08 Agendar evento propuesto
nelopauselli
parents:
diff changeset
158 Assert.Throws<EventoNotFoundException>(
96d7609f2e08 Agendar evento propuesto
nelopauselli
parents:
diff changeset
159 () => agenda.ModificarEvento(idEventoNoExistente, "algún título", "un ponente", DateTime.Now, urlInvitacion));
96d7609f2e08 Agendar evento propuesto
nelopauselli
parents:
diff changeset
160 }
96d7609f2e08 Agendar evento propuesto
nelopauselli
parents:
diff changeset
161
87
26d0513a8410 A los publicadores les llega la lista de tracks producidos en la acción realizada
nelopauselli
parents: 76
diff changeset
162 [Test, Ignore("Por ahora no existe el concepto de recordar")]
75
96d7609f2e08 Agendar evento propuesto
nelopauselli
parents:
diff changeset
163 public void Agendar_y_recordar_evento()
96d7609f2e08 Agendar evento propuesto
nelopauselli
parents:
diff changeset
164 {
96d7609f2e08 Agendar evento propuesto
nelopauselli
parents:
diff changeset
165 var publicador1 = new Mock<IPublicador>();
96d7609f2e08 Agendar evento propuesto
nelopauselli
parents:
diff changeset
166 var publicador2 = new Mock<IPublicador>();
96d7609f2e08 Agendar evento propuesto
nelopauselli
parents:
diff changeset
167
87
26d0513a8410 A los publicadores les llega la lista de tracks producidos en la acción realizada
nelopauselli
parents: 76
diff changeset
168 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
169 DefaultEventoRepository, DefaultPersonaRepository);
75
96d7609f2e08 Agendar evento propuesto
nelopauselli
parents:
diff changeset
170
96d7609f2e08 Agendar evento propuesto
nelopauselli
parents:
diff changeset
171 agenda.Agendar("Van para publicar", "jjmontes", DateTime.Now,
96d7609f2e08 Agendar evento propuesto
nelopauselli
parents:
diff changeset
172 urlInvitacion);
96d7609f2e08 Agendar evento propuesto
nelopauselli
parents:
diff changeset
173
96d7609f2e08 Agendar evento propuesto
nelopauselli
parents:
diff changeset
174 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
175 //agenda.Recordar(van.Id);
75
96d7609f2e08 Agendar evento propuesto
nelopauselli
parents:
diff changeset
176
87
26d0513a8410 A los publicadores les llega la lista de tracks producidos en la acción realizada
nelopauselli
parents: 76
diff changeset
177 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
178 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
179 //recordador1.Verify(r => r.Recordar(It.IsAny<Evento>()), Times.Exactly(1));
75
96d7609f2e08 Agendar evento propuesto
nelopauselli
parents:
diff changeset
180 }
96d7609f2e08 Agendar evento propuesto
nelopauselli
parents:
diff changeset
181
96d7609f2e08 Agendar evento propuesto
nelopauselli
parents:
diff changeset
182 [Test]
96d7609f2e08 Agendar evento propuesto
nelopauselli
parents:
diff changeset
183 public void Agendar_evento_propuesto()
96d7609f2e08 Agendar evento propuesto
nelopauselli
parents:
diff changeset
184 {
96d7609f2e08 Agendar evento propuesto
nelopauselli
parents:
diff changeset
185 var publicador1 = new Mock<IPublicador>();
96d7609f2e08 Agendar evento propuesto
nelopauselli
parents:
diff changeset
186 var publicador2 = new Mock<IPublicador>();
96d7609f2e08 Agendar evento propuesto
nelopauselli
parents:
diff changeset
187
87
26d0513a8410 A los publicadores les llega la lista de tracks producidos en la acción realizada
nelopauselli
parents: 76
diff changeset
188 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
189 DefaultEventoRepository, DefaultPersonaRepository);
75
96d7609f2e08 Agendar evento propuesto
nelopauselli
parents:
diff changeset
190
96d7609f2e08 Agendar evento propuesto
nelopauselli
parents:
diff changeset
191 agenda.Proponer("Html 5", "jjmontes", urlInvitacion);
96d7609f2e08 Agendar evento propuesto
nelopauselli
parents:
diff changeset
192 Assert.AreEqual(1, agenda.GetEventosPropuestos().Count);
96d7609f2e08 Agendar evento propuesto
nelopauselli
parents:
diff changeset
193 Assert.AreEqual(0, agenda.GetEventosAgendados().Count);
96d7609f2e08 Agendar evento propuesto
nelopauselli
parents:
diff changeset
194
96d7609f2e08 Agendar evento propuesto
nelopauselli
parents:
diff changeset
195 var publicado = agenda.GetEventosPropuestos().First();
96d7609f2e08 Agendar evento propuesto
nelopauselli
parents:
diff changeset
196 Assert.AreEqual(1, publicado.Tracks.Count());
96d7609f2e08 Agendar evento propuesto
nelopauselli
parents:
diff changeset
197
76
926bd1cdb98f Corrección de un test para que simule lo que pasa realmente en la UI
nelopauselli
parents: 75
diff changeset
198 agenda.ModificarEvento(publicado.Id, "Html 5", "jjmontes", DateTime.Today.AddDays(5), urlInvitacion);
75
96d7609f2e08 Agendar evento propuesto
nelopauselli
parents:
diff changeset
199 Assert.AreEqual(0, agenda.GetEventosPropuestos().Count);
96d7609f2e08 Agendar evento propuesto
nelopauselli
parents:
diff changeset
200 Assert.AreEqual(1, agenda.GetEventosAgendados().Count);
96d7609f2e08 Agendar evento propuesto
nelopauselli
parents:
diff changeset
201
96d7609f2e08 Agendar evento propuesto
nelopauselli
parents:
diff changeset
202 var agendado = agenda.GetEventosAgendados().First();
96d7609f2e08 Agendar evento propuesto
nelopauselli
parents:
diff changeset
203 Assert.AreSame(publicado, agendado);
96d7609f2e08 Agendar evento propuesto
nelopauselli
parents:
diff changeset
204 Assert.AreEqual(2, agendado.Tracks.Count());
96d7609f2e08 Agendar evento propuesto
nelopauselli
parents:
diff changeset
205
96d7609f2e08 Agendar evento propuesto
nelopauselli
parents:
diff changeset
206 Assert.IsNotNull(agendado.Tracks.Where(t => t.Accion == Accion.Proponer).SingleOrDefault());
96d7609f2e08 Agendar evento propuesto
nelopauselli
parents:
diff changeset
207 Assert.IsNotNull(agendado.Tracks.Where(t => t.Accion == Accion.Agendar).SingleOrDefault());
96d7609f2e08 Agendar evento propuesto
nelopauselli
parents:
diff changeset
208 }
96d7609f2e08 Agendar evento propuesto
nelopauselli
parents:
diff changeset
209 }
96d7609f2e08 Agendar evento propuesto
nelopauselli
parents:
diff changeset
210 }