annotate Agendas/trunk/src/Agendas.Tests/AgendarTests.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 926bd1cdb98f
children db4b1e2cae49
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;
96d7609f2e08 Agendar evento propuesto
nelopauselli
parents:
diff changeset
7 using Moq;
96d7609f2e08 Agendar evento propuesto
nelopauselli
parents:
diff changeset
8 using NUnit.Framework;
96d7609f2e08 Agendar evento propuesto
nelopauselli
parents:
diff changeset
9
96d7609f2e08 Agendar evento propuesto
nelopauselli
parents:
diff changeset
10 namespace AltNetHispano.Agendas.Tests
96d7609f2e08 Agendar evento propuesto
nelopauselli
parents:
diff changeset
11 {
96d7609f2e08 Agendar evento propuesto
nelopauselli
parents:
diff changeset
12 [TestFixture]
96d7609f2e08 Agendar evento propuesto
nelopauselli
parents:
diff changeset
13 public class AgendarTests : TestBase
96d7609f2e08 Agendar evento propuesto
nelopauselli
parents:
diff changeset
14 {
96d7609f2e08 Agendar evento propuesto
nelopauselli
parents:
diff changeset
15 private const string urlInvitacion = "http://groups.google.com/group/altnet-hispano/browse_thread/thread/65d6d26eb381386e";
96d7609f2e08 Agendar evento propuesto
nelopauselli
parents:
diff changeset
16
96d7609f2e08 Agendar evento propuesto
nelopauselli
parents:
diff changeset
17 [Test]
96d7609f2e08 Agendar evento propuesto
nelopauselli
parents:
diff changeset
18 public void CompositePublicador_constructor_parametro_null_debe_generar_ArgumentNullException()
96d7609f2e08 Agendar evento propuesto
nelopauselli
parents:
diff changeset
19 {
96d7609f2e08 Agendar evento propuesto
nelopauselli
parents:
diff changeset
20 Assert.Throws<ArgumentNullException>(() => new CompositePublicador(null));
96d7609f2e08 Agendar evento propuesto
nelopauselli
parents:
diff changeset
21 }
96d7609f2e08 Agendar evento propuesto
nelopauselli
parents:
diff changeset
22
96d7609f2e08 Agendar evento propuesto
nelopauselli
parents:
diff changeset
23 [Test]
96d7609f2e08 Agendar evento propuesto
nelopauselli
parents:
diff changeset
24 public void Intentar_agendar_evento_donde_ocurre_una_excepcion_no_manejada()
96d7609f2e08 Agendar evento propuesto
nelopauselli
parents:
diff changeset
25 {
96d7609f2e08 Agendar evento propuesto
nelopauselli
parents:
diff changeset
26 var publicador = new Mock<IPublicador>();
96d7609f2e08 Agendar evento propuesto
nelopauselli
parents:
diff changeset
27 var repository = new Mock<IEventoRepository>();
96d7609f2e08 Agendar evento propuesto
nelopauselli
parents:
diff changeset
28
87
26d0513a8410 A los publicadores les llega la lista de tracks producidos en la acción realizada
nelopauselli
parents: 76
diff changeset
29 publicador.Setup(p => p.Publicar(It.IsAny<IEnumerable<Track>>())).Throws(new Exception("Error intencional"));
75
96d7609f2e08 Agendar evento propuesto
nelopauselli
parents:
diff changeset
30
87
26d0513a8410 A los publicadores les llega la lista de tracks producidos en la acción realizada
nelopauselli
parents: 76
diff changeset
31 var agenda = new Agenda(publicador.Object, repository.Object, DefaultPonenteRepository);
75
96d7609f2e08 Agendar evento propuesto
nelopauselli
parents:
diff changeset
32
96d7609f2e08 Agendar evento propuesto
nelopauselli
parents:
diff changeset
33 Assert.Throws<Exception>(() => agenda.Agendar("Van para publicar", "jjmontes", DateTime.Now, urlInvitacion));
96d7609f2e08 Agendar evento propuesto
nelopauselli
parents:
diff changeset
34 Assert.AreEqual(0, agenda.GetEventosAgendados().Count);
96d7609f2e08 Agendar evento propuesto
nelopauselli
parents:
diff changeset
35
87
26d0513a8410 A los publicadores les llega la lista de tracks producidos en la acción realizada
nelopauselli
parents: 76
diff changeset
36 publicador.Verify(p => p.Publicar(It.IsAny<IEnumerable<Track>>()), Times.Exactly(1));
75
96d7609f2e08 Agendar evento propuesto
nelopauselli
parents:
diff changeset
37 repository.Verify(p => p.Save(It.IsAny<Evento>()), Times.Exactly(0));
96d7609f2e08 Agendar evento propuesto
nelopauselli
parents:
diff changeset
38 }
96d7609f2e08 Agendar evento propuesto
nelopauselli
parents:
diff changeset
39
96d7609f2e08 Agendar evento propuesto
nelopauselli
parents:
diff changeset
40 [Test]
96d7609f2e08 Agendar evento propuesto
nelopauselli
parents:
diff changeset
41 public void Intentar_agendar_evento_sin_servicio_de_seguridad()
96d7609f2e08 Agendar evento propuesto
nelopauselli
parents:
diff changeset
42 {
96d7609f2e08 Agendar evento propuesto
nelopauselli
parents:
diff changeset
43 IdentityContext.Current = null;
96d7609f2e08 Agendar evento propuesto
nelopauselli
parents:
diff changeset
44
96d7609f2e08 Agendar evento propuesto
nelopauselli
parents:
diff changeset
45 var publicador = new Mock<IPublicador>();
96d7609f2e08 Agendar evento propuesto
nelopauselli
parents:
diff changeset
46 var repository = new Mock<IEventoRepository>();
96d7609f2e08 Agendar evento propuesto
nelopauselli
parents:
diff changeset
47
87
26d0513a8410 A los publicadores les llega la lista de tracks producidos en la acción realizada
nelopauselli
parents: 76
diff changeset
48 var agenda = new Agenda(publicador.Object, repository.Object, DefaultPonenteRepository);
75
96d7609f2e08 Agendar evento propuesto
nelopauselli
parents:
diff changeset
49
96d7609f2e08 Agendar evento propuesto
nelopauselli
parents:
diff changeset
50 Assert.Throws<IdentityContextNotConfiguredException>(
96d7609f2e08 Agendar evento propuesto
nelopauselli
parents:
diff changeset
51 () => agenda.Agendar("Van para publicar", "jjmontes", DateTime.Now,
96d7609f2e08 Agendar evento propuesto
nelopauselli
parents:
diff changeset
52 urlInvitacion));
96d7609f2e08 Agendar evento propuesto
nelopauselli
parents:
diff changeset
53 repository.Verify(p => p.Save(It.IsAny<Evento>()), Times.Exactly(0));
96d7609f2e08 Agendar evento propuesto
nelopauselli
parents:
diff changeset
54 }
96d7609f2e08 Agendar evento propuesto
nelopauselli
parents:
diff changeset
55
96d7609f2e08 Agendar evento propuesto
nelopauselli
parents:
diff changeset
56 [Test]
96d7609f2e08 Agendar evento propuesto
nelopauselli
parents:
diff changeset
57 public void Intentar_agendar_evento_sin_usuario_autenticado()
96d7609f2e08 Agendar evento propuesto
nelopauselli
parents:
diff changeset
58 {
96d7609f2e08 Agendar evento propuesto
nelopauselli
parents:
diff changeset
59 SetCurrentUser(null);
96d7609f2e08 Agendar evento propuesto
nelopauselli
parents:
diff changeset
60
96d7609f2e08 Agendar evento propuesto
nelopauselli
parents:
diff changeset
61 var publicador = new Mock<IPublicador>();
96d7609f2e08 Agendar evento propuesto
nelopauselli
parents:
diff changeset
62 var repository = new Mock<IEventoRepository>();
96d7609f2e08 Agendar evento propuesto
nelopauselli
parents:
diff changeset
63
87
26d0513a8410 A los publicadores les llega la lista de tracks producidos en la acción realizada
nelopauselli
parents: 76
diff changeset
64 var agenda = new Agenda(publicador.Object, repository.Object, DefaultPonenteRepository);
75
96d7609f2e08 Agendar evento propuesto
nelopauselli
parents:
diff changeset
65
96d7609f2e08 Agendar evento propuesto
nelopauselli
parents:
diff changeset
66 Assert.Throws<UsuarioNoAutenticadoException>(() => agenda.Agendar("Van para publicar", "jjmontes", DateTime.Now,
96d7609f2e08 Agendar evento propuesto
nelopauselli
parents:
diff changeset
67 urlInvitacion));
96d7609f2e08 Agendar evento propuesto
nelopauselli
parents:
diff changeset
68
87
26d0513a8410 A los publicadores les llega la lista de tracks producidos en la acción realizada
nelopauselli
parents: 76
diff changeset
69 publicador.Verify(p => p.Publicar(It.IsAny<IEnumerable<Track>>()), Times.Exactly(0));
75
96d7609f2e08 Agendar evento propuesto
nelopauselli
parents:
diff changeset
70 repository.Verify(p => p.Save(It.IsAny<Evento>()), Times.Exactly(0));
96d7609f2e08 Agendar evento propuesto
nelopauselli
parents:
diff changeset
71 }
96d7609f2e08 Agendar evento propuesto
nelopauselli
parents:
diff changeset
72
96d7609f2e08 Agendar evento propuesto
nelopauselli
parents:
diff changeset
73 [Test]
96d7609f2e08 Agendar evento propuesto
nelopauselli
parents:
diff changeset
74 public void Intentar_agendar_evento_sin_ponente()
96d7609f2e08 Agendar evento propuesto
nelopauselli
parents:
diff changeset
75 {
87
26d0513a8410 A los publicadores les llega la lista de tracks producidos en la acción realizada
nelopauselli
parents: 76
diff changeset
76 var agenda = new Agenda(null, DefaultEventoRepository, DefaultPonenteRepository);
75
96d7609f2e08 Agendar evento propuesto
nelopauselli
parents:
diff changeset
77
96d7609f2e08 Agendar evento propuesto
nelopauselli
parents:
diff changeset
78 var r = agenda.Agendar("Van para publicar", string.Empty, DateTime.Now,
96d7609f2e08 Agendar evento propuesto
nelopauselli
parents:
diff changeset
79 urlInvitacion);
96d7609f2e08 Agendar evento propuesto
nelopauselli
parents:
diff changeset
80
96d7609f2e08 Agendar evento propuesto
nelopauselli
parents:
diff changeset
81 Assert.IsFalse(r.Succeful);
96d7609f2e08 Agendar evento propuesto
nelopauselli
parents:
diff changeset
82 }
96d7609f2e08 Agendar evento propuesto
nelopauselli
parents:
diff changeset
83
96d7609f2e08 Agendar evento propuesto
nelopauselli
parents:
diff changeset
84 [Test]
96d7609f2e08 Agendar evento propuesto
nelopauselli
parents:
diff changeset
85 public void Agendar_evento_con_multiples_publicadores()
96d7609f2e08 Agendar evento propuesto
nelopauselli
parents:
diff changeset
86 {
96d7609f2e08 Agendar evento propuesto
nelopauselli
parents:
diff changeset
87 var publicador1 = new Mock<IPublicador>();
96d7609f2e08 Agendar evento propuesto
nelopauselli
parents:
diff changeset
88 var publicador2 = new Mock<IPublicador>();
96d7609f2e08 Agendar evento propuesto
nelopauselli
parents:
diff changeset
89
96d7609f2e08 Agendar evento propuesto
nelopauselli
parents:
diff changeset
90 var repository = new Mock<IEventoRepository>();
96d7609f2e08 Agendar evento propuesto
nelopauselli
parents:
diff changeset
91
87
26d0513a8410 A los publicadores les llega la lista de tracks producidos en la acción realizada
nelopauselli
parents: 76
diff changeset
92 var agenda = new Agenda(new CompositePublicador(new[] {publicador1.Object, publicador2.Object}),
75
96d7609f2e08 Agendar evento propuesto
nelopauselli
parents:
diff changeset
93 repository.Object, DefaultPonenteRepository);
96d7609f2e08 Agendar evento propuesto
nelopauselli
parents:
diff changeset
94
96d7609f2e08 Agendar evento propuesto
nelopauselli
parents:
diff changeset
95 agenda.Agendar("Van para publicar", "jjmontes", DateTime.Now,
96d7609f2e08 Agendar evento propuesto
nelopauselli
parents:
diff changeset
96 urlInvitacion);
96d7609f2e08 Agendar evento propuesto
nelopauselli
parents:
diff changeset
97
87
26d0513a8410 A los publicadores les llega la lista de tracks producidos en la acción realizada
nelopauselli
parents: 76
diff changeset
98 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
99 publicador2.Verify(p => p.Publicar(It.IsAny<IEnumerable<Track>>()), Times.Exactly(1));
75
96d7609f2e08 Agendar evento propuesto
nelopauselli
parents:
diff changeset
100 repository.Verify(p => p.Save(It.IsAny<Evento>()), Times.Exactly(1));
96d7609f2e08 Agendar evento propuesto
nelopauselli
parents:
diff changeset
101 }
96d7609f2e08 Agendar evento propuesto
nelopauselli
parents:
diff changeset
102
96d7609f2e08 Agendar evento propuesto
nelopauselli
parents:
diff changeset
103 [Test]
96d7609f2e08 Agendar evento propuesto
nelopauselli
parents:
diff changeset
104 public void Agendar_evento_correctamente()
96d7609f2e08 Agendar evento propuesto
nelopauselli
parents:
diff changeset
105 {
96d7609f2e08 Agendar evento propuesto
nelopauselli
parents:
diff changeset
106 var publicador = new Mock<IPublicador>();
96d7609f2e08 Agendar evento propuesto
nelopauselli
parents:
diff changeset
107
87
26d0513a8410 A los publicadores les llega la lista de tracks producidos en la acción realizada
nelopauselli
parents: 76
diff changeset
108 var agenda = new Agenda(publicador.Object, DefaultEventoRepository, DefaultPonenteRepository);
75
96d7609f2e08 Agendar evento propuesto
nelopauselli
parents:
diff changeset
109
96d7609f2e08 Agendar evento propuesto
nelopauselli
parents:
diff changeset
110 agenda.Agendar("Van para publicar", "jjmontes", DateTime.Now,
96d7609f2e08 Agendar evento propuesto
nelopauselli
parents:
diff changeset
111 urlInvitacion);
96d7609f2e08 Agendar evento propuesto
nelopauselli
parents:
diff changeset
112
96d7609f2e08 Agendar evento propuesto
nelopauselli
parents:
diff changeset
113 Assert.AreEqual(0, agenda.GetEventosPropuestos().Count);
96d7609f2e08 Agendar evento propuesto
nelopauselli
parents:
diff changeset
114
96d7609f2e08 Agendar evento propuesto
nelopauselli
parents:
diff changeset
115 var eventos = agenda.GetEventosAgendados();
96d7609f2e08 Agendar evento propuesto
nelopauselli
parents:
diff changeset
116 Assert.AreEqual(1, eventos.Count);
96d7609f2e08 Agendar evento propuesto
nelopauselli
parents:
diff changeset
117
87
26d0513a8410 A los publicadores les llega la lista de tracks producidos en la acción realizada
nelopauselli
parents: 76
diff changeset
118 publicador.Verify(p => p.Publicar(It.IsAny<IEnumerable<Track>>()), Times.Exactly(1));
75
96d7609f2e08 Agendar evento propuesto
nelopauselli
parents:
diff changeset
119
96d7609f2e08 Agendar evento propuesto
nelopauselli
parents:
diff changeset
120 var evento = eventos[0];
96d7609f2e08 Agendar evento propuesto
nelopauselli
parents:
diff changeset
121
96d7609f2e08 Agendar evento propuesto
nelopauselli
parents:
diff changeset
122 Assert.IsNotNull(evento.Ponente);
96d7609f2e08 Agendar evento propuesto
nelopauselli
parents:
diff changeset
123 Assert.IsNotNull(evento.Ponente.Eventos);
96d7609f2e08 Agendar evento propuesto
nelopauselli
parents:
diff changeset
124 Assert.AreEqual(1, evento.Ponente.Eventos.Count());
96d7609f2e08 Agendar evento propuesto
nelopauselli
parents:
diff changeset
125 Assert.AreEqual(evento, evento.Ponente.Eventos.First());
96d7609f2e08 Agendar evento propuesto
nelopauselli
parents:
diff changeset
126
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 [Test]
96d7609f2e08 Agendar evento propuesto
nelopauselli
parents:
diff changeset
130 public void Agendar_y_modificar_evento()
96d7609f2e08 Agendar evento propuesto
nelopauselli
parents:
diff changeset
131 {
96d7609f2e08 Agendar evento propuesto
nelopauselli
parents:
diff changeset
132 var repository = DefaultEventoRepository;
96d7609f2e08 Agendar evento propuesto
nelopauselli
parents:
diff changeset
133 var publicador = new Mock<IPublicador>();
96d7609f2e08 Agendar evento propuesto
nelopauselli
parents:
diff changeset
134
87
26d0513a8410 A los publicadores les llega la lista de tracks producidos en la acción realizada
nelopauselli
parents: 76
diff changeset
135 var agenda = new Agenda(publicador.Object, repository, DefaultPonenteRepository);
75
96d7609f2e08 Agendar evento propuesto
nelopauselli
parents:
diff changeset
136
96d7609f2e08 Agendar evento propuesto
nelopauselli
parents:
diff changeset
137 agenda.Agendar("Van para publicar", "jjmontes", DateTime.Now,
96d7609f2e08 Agendar evento propuesto
nelopauselli
parents:
diff changeset
138 urlInvitacion);
96d7609f2e08 Agendar evento propuesto
nelopauselli
parents:
diff changeset
139
87
26d0513a8410 A los publicadores les llega la lista de tracks producidos en la acción realizada
nelopauselli
parents: 76
diff changeset
140 publicador.Verify(p => p.Publicar(It.IsAny<IEnumerable<Track>>()), Times.Exactly(1));
75
96d7609f2e08 Agendar evento propuesto
nelopauselli
parents:
diff changeset
141
96d7609f2e08 Agendar evento propuesto
nelopauselli
parents:
diff changeset
142 var evento = repository.GetEventosConFecha().First();
96d7609f2e08 Agendar evento propuesto
nelopauselli
parents:
diff changeset
143 Assert.AreNotEqual(Guid.Empty, evento.Id);
96d7609f2e08 Agendar evento propuesto
nelopauselli
parents:
diff changeset
144 Assert.IsNotNull(evento.Fecha);
96d7609f2e08 Agendar evento propuesto
nelopauselli
parents:
diff changeset
145
96d7609f2e08 Agendar evento propuesto
nelopauselli
parents:
diff changeset
146 DateTime fecha = evento.Fecha.Value.AddDays(7);
96d7609f2e08 Agendar evento propuesto
nelopauselli
parents:
diff changeset
147 agenda.ModificarEvento(evento.Id, "otro titulo", "otro ponente", fecha, urlInvitacion);
96d7609f2e08 Agendar evento propuesto
nelopauselli
parents:
diff changeset
148
87
26d0513a8410 A los publicadores les llega la lista de tracks producidos en la acción realizada
nelopauselli
parents: 76
diff changeset
149 publicador.Verify(p => p.Publicar(It.IsAny<IEnumerable<Track>>()), Times.Exactly(2));
75
96d7609f2e08 Agendar evento propuesto
nelopauselli
parents:
diff changeset
150
96d7609f2e08 Agendar evento propuesto
nelopauselli
parents:
diff changeset
151 evento = repository.GetEventosConFecha().First();
96d7609f2e08 Agendar evento propuesto
nelopauselli
parents:
diff changeset
152 Assert.AreEqual("otro titulo", evento.Titulo);
96d7609f2e08 Agendar evento propuesto
nelopauselli
parents:
diff changeset
153 Assert.AreEqual("otro ponente", evento.Ponente.Nombre);
96d7609f2e08 Agendar evento propuesto
nelopauselli
parents:
diff changeset
154 Assert.AreEqual(fecha, evento.Fecha);
96d7609f2e08 Agendar evento propuesto
nelopauselli
parents:
diff changeset
155
96d7609f2e08 Agendar evento propuesto
nelopauselli
parents:
diff changeset
156 var idEventoNoExistente = new Guid("99999999999999999999999999999999");
96d7609f2e08 Agendar evento propuesto
nelopauselli
parents:
diff changeset
157 Assert.Throws<EventoNotFoundException>(
96d7609f2e08 Agendar evento propuesto
nelopauselli
parents:
diff changeset
158 () => agenda.ModificarEvento(idEventoNoExistente, "algún título", "un ponente", DateTime.Now, urlInvitacion));
96d7609f2e08 Agendar evento propuesto
nelopauselli
parents:
diff changeset
159 }
96d7609f2e08 Agendar evento propuesto
nelopauselli
parents:
diff changeset
160
87
26d0513a8410 A los publicadores les llega la lista de tracks producidos en la acción realizada
nelopauselli
parents: 76
diff changeset
161 [Test, Ignore("Por ahora no existe el concepto de recordar")]
75
96d7609f2e08 Agendar evento propuesto
nelopauselli
parents:
diff changeset
162 public void Agendar_y_recordar_evento()
96d7609f2e08 Agendar evento propuesto
nelopauselli
parents:
diff changeset
163 {
96d7609f2e08 Agendar evento propuesto
nelopauselli
parents:
diff changeset
164 var publicador1 = new Mock<IPublicador>();
96d7609f2e08 Agendar evento propuesto
nelopauselli
parents:
diff changeset
165 var publicador2 = new Mock<IPublicador>();
96d7609f2e08 Agendar evento propuesto
nelopauselli
parents:
diff changeset
166
87
26d0513a8410 A los publicadores les llega la lista de tracks producidos en la acción realizada
nelopauselli
parents: 76
diff changeset
167 var agenda = new Agenda(new CompositePublicador(new[] {publicador1.Object, publicador2.Object}),
75
96d7609f2e08 Agendar evento propuesto
nelopauselli
parents:
diff changeset
168 DefaultEventoRepository, DefaultPonenteRepository);
96d7609f2e08 Agendar evento propuesto
nelopauselli
parents:
diff changeset
169
96d7609f2e08 Agendar evento propuesto
nelopauselli
parents:
diff changeset
170 agenda.Agendar("Van para publicar", "jjmontes", DateTime.Now,
96d7609f2e08 Agendar evento propuesto
nelopauselli
parents:
diff changeset
171 urlInvitacion);
96d7609f2e08 Agendar evento propuesto
nelopauselli
parents:
diff changeset
172
96d7609f2e08 Agendar evento propuesto
nelopauselli
parents:
diff changeset
173 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
174 //agenda.Recordar(van.Id);
75
96d7609f2e08 Agendar evento propuesto
nelopauselli
parents:
diff changeset
175
87
26d0513a8410 A los publicadores les llega la lista de tracks producidos en la acción realizada
nelopauselli
parents: 76
diff changeset
176 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
177 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
178 //recordador1.Verify(r => r.Recordar(It.IsAny<Evento>()), Times.Exactly(1));
75
96d7609f2e08 Agendar evento propuesto
nelopauselli
parents:
diff changeset
179 }
96d7609f2e08 Agendar evento propuesto
nelopauselli
parents:
diff changeset
180
96d7609f2e08 Agendar evento propuesto
nelopauselli
parents:
diff changeset
181 [Test]
96d7609f2e08 Agendar evento propuesto
nelopauselli
parents:
diff changeset
182 public void Agendar_evento_propuesto()
96d7609f2e08 Agendar evento propuesto
nelopauselli
parents:
diff changeset
183 {
96d7609f2e08 Agendar evento propuesto
nelopauselli
parents:
diff changeset
184 var publicador1 = new Mock<IPublicador>();
96d7609f2e08 Agendar evento propuesto
nelopauselli
parents:
diff changeset
185 var publicador2 = new Mock<IPublicador>();
96d7609f2e08 Agendar evento propuesto
nelopauselli
parents:
diff changeset
186
87
26d0513a8410 A los publicadores les llega la lista de tracks producidos en la acción realizada
nelopauselli
parents: 76
diff changeset
187 var agenda = new Agenda(new CompositePublicador(new[] { publicador1.Object, publicador2.Object }),
75
96d7609f2e08 Agendar evento propuesto
nelopauselli
parents:
diff changeset
188 DefaultEventoRepository, DefaultPonenteRepository);
96d7609f2e08 Agendar evento propuesto
nelopauselli
parents:
diff changeset
189
96d7609f2e08 Agendar evento propuesto
nelopauselli
parents:
diff changeset
190 agenda.Proponer("Html 5", "jjmontes", urlInvitacion);
96d7609f2e08 Agendar evento propuesto
nelopauselli
parents:
diff changeset
191 Assert.AreEqual(1, agenda.GetEventosPropuestos().Count);
96d7609f2e08 Agendar evento propuesto
nelopauselli
parents:
diff changeset
192 Assert.AreEqual(0, agenda.GetEventosAgendados().Count);
96d7609f2e08 Agendar evento propuesto
nelopauselli
parents:
diff changeset
193
96d7609f2e08 Agendar evento propuesto
nelopauselli
parents:
diff changeset
194 var publicado = agenda.GetEventosPropuestos().First();
96d7609f2e08 Agendar evento propuesto
nelopauselli
parents:
diff changeset
195 Assert.AreEqual(1, publicado.Tracks.Count());
96d7609f2e08 Agendar evento propuesto
nelopauselli
parents:
diff changeset
196
76
926bd1cdb98f Corrección de un test para que simule lo que pasa realmente en la UI
nelopauselli
parents: 75
diff changeset
197 agenda.ModificarEvento(publicado.Id, "Html 5", "jjmontes", DateTime.Today.AddDays(5), urlInvitacion);
75
96d7609f2e08 Agendar evento propuesto
nelopauselli
parents:
diff changeset
198 Assert.AreEqual(0, agenda.GetEventosPropuestos().Count);
96d7609f2e08 Agendar evento propuesto
nelopauselli
parents:
diff changeset
199 Assert.AreEqual(1, agenda.GetEventosAgendados().Count);
96d7609f2e08 Agendar evento propuesto
nelopauselli
parents:
diff changeset
200
96d7609f2e08 Agendar evento propuesto
nelopauselli
parents:
diff changeset
201 var agendado = agenda.GetEventosAgendados().First();
96d7609f2e08 Agendar evento propuesto
nelopauselli
parents:
diff changeset
202 Assert.AreSame(publicado, agendado);
96d7609f2e08 Agendar evento propuesto
nelopauselli
parents:
diff changeset
203 Assert.AreEqual(2, agendado.Tracks.Count());
96d7609f2e08 Agendar evento propuesto
nelopauselli
parents:
diff changeset
204
96d7609f2e08 Agendar evento propuesto
nelopauselli
parents:
diff changeset
205 Assert.IsNotNull(agendado.Tracks.Where(t => t.Accion == Accion.Proponer).SingleOrDefault());
96d7609f2e08 Agendar evento propuesto
nelopauselli
parents:
diff changeset
206 Assert.IsNotNull(agendado.Tracks.Where(t => t.Accion == Accion.Agendar).SingleOrDefault());
96d7609f2e08 Agendar evento propuesto
nelopauselli
parents:
diff changeset
207 }
96d7609f2e08 Agendar evento propuesto
nelopauselli
parents:
diff changeset
208 }
96d7609f2e08 Agendar evento propuesto
nelopauselli
parents:
diff changeset
209 }