Mercurial > altnet-hispano
comparison 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 |
comparison
equal
deleted
inserted
replaced
93:65f0b3d70c18 | 94:db4b1e2cae49 |
---|---|
2 using System.Collections.Generic; | 2 using System.Collections.Generic; |
3 using System.Linq; | 3 using System.Linq; |
4 using AltNetHispano.Agendas.Domain; | 4 using AltNetHispano.Agendas.Domain; |
5 using AltNetHispano.Agendas.Domain.Exceptions; | 5 using AltNetHispano.Agendas.Domain.Exceptions; |
6 using AltNetHispano.Agendas.Domain.Repositories; | 6 using AltNetHispano.Agendas.Domain.Repositories; |
7 using AltNetHispano.Agendas.Repositories.Memory; | |
7 using Moq; | 8 using Moq; |
8 using NUnit.Framework; | 9 using NUnit.Framework; |
9 | 10 |
10 namespace AltNetHispano.Agendas.Tests | 11 namespace AltNetHispano.Agendas.Tests |
11 { | 12 { |
26 var publicador = new Mock<IPublicador>(); | 27 var publicador = new Mock<IPublicador>(); |
27 var repository = new Mock<IEventoRepository>(); | 28 var repository = new Mock<IEventoRepository>(); |
28 | 29 |
29 publicador.Setup(p => p.Publicar(It.IsAny<IEnumerable<Track>>())).Throws(new Exception("Error intencional")); | 30 publicador.Setup(p => p.Publicar(It.IsAny<IEnumerable<Track>>())).Throws(new Exception("Error intencional")); |
30 | 31 |
31 var agenda = new Agenda(publicador.Object, repository.Object, DefaultPonenteRepository); | 32 var agenda = new Agenda(publicador.Object, repository.Object, DefaultPersonaRepository); |
32 | 33 |
33 Assert.Throws<Exception>(() => agenda.Agendar("Van para publicar", "jjmontes", DateTime.Now, urlInvitacion)); | 34 Assert.Throws<Exception>(() => agenda.Agendar("Van para publicar", "jjmontes", DateTime.Now, urlInvitacion)); |
34 Assert.AreEqual(0, agenda.GetEventosAgendados().Count); | 35 Assert.AreEqual(0, agenda.GetEventosAgendados().Count); |
35 | 36 |
36 publicador.Verify(p => p.Publicar(It.IsAny<IEnumerable<Track>>()), Times.Exactly(1)); | 37 publicador.Verify(p => p.Publicar(It.IsAny<IEnumerable<Track>>()), Times.Exactly(1)); |
38 } | 39 } |
39 | 40 |
40 [Test] | 41 [Test] |
41 public void Intentar_agendar_evento_sin_servicio_de_seguridad() | 42 public void Intentar_agendar_evento_sin_servicio_de_seguridad() |
42 { | 43 { |
43 IdentityContext.Current = null; | 44 IdentityContext.Init(null, new PersonaRepository()); |
44 | 45 |
45 var publicador = new Mock<IPublicador>(); | 46 var publicador = new Mock<IPublicador>(); |
46 var repository = new Mock<IEventoRepository>(); | 47 var repository = new Mock<IEventoRepository>(); |
47 | 48 |
48 var agenda = new Agenda(publicador.Object, repository.Object, DefaultPonenteRepository); | 49 var agenda = new Agenda(publicador.Object, repository.Object, DefaultPersonaRepository); |
49 | 50 |
50 Assert.Throws<IdentityContextNotConfiguredException>( | 51 Assert.Throws<IdentityContextNotConfiguredException>( |
51 () => agenda.Agendar("Van para publicar", "jjmontes", DateTime.Now, | 52 () => agenda.Agendar("Van para publicar", "jjmontes", DateTime.Now, |
52 urlInvitacion)); | 53 urlInvitacion)); |
53 repository.Verify(p => p.Save(It.IsAny<Evento>()), Times.Exactly(0)); | 54 repository.Verify(p => p.Save(It.IsAny<Evento>()), Times.Exactly(0)); |
54 } | 55 } |
55 | 56 |
56 [Test] | 57 [Test] |
57 public void Intentar_agendar_evento_sin_usuario_autenticado() | 58 public void Intentar_agendar_evento_sin_usuario_autenticado() |
58 { | 59 { |
59 SetCurrentUser(null); | 60 SetCurrentUser(null, null); |
60 | 61 |
61 var publicador = new Mock<IPublicador>(); | 62 var publicador = new Mock<IPublicador>(); |
62 var repository = new Mock<IEventoRepository>(); | 63 var repository = new Mock<IEventoRepository>(); |
63 | 64 |
64 var agenda = new Agenda(publicador.Object, repository.Object, DefaultPonenteRepository); | 65 var agenda = new Agenda(publicador.Object, repository.Object, DefaultPersonaRepository); |
65 | 66 |
66 Assert.Throws<UsuarioNoAutenticadoException>(() => agenda.Agendar("Van para publicar", "jjmontes", DateTime.Now, | 67 Assert.Throws<UsuarioNoAutenticadoException>(() => agenda.Agendar("Van para publicar", "jjmontes", DateTime.Now, |
67 urlInvitacion)); | 68 urlInvitacion)); |
68 | 69 |
69 publicador.Verify(p => p.Publicar(It.IsAny<IEnumerable<Track>>()), Times.Exactly(0)); | 70 publicador.Verify(p => p.Publicar(It.IsAny<IEnumerable<Track>>()), Times.Exactly(0)); |
71 } | 72 } |
72 | 73 |
73 [Test] | 74 [Test] |
74 public void Intentar_agendar_evento_sin_ponente() | 75 public void Intentar_agendar_evento_sin_ponente() |
75 { | 76 { |
76 var agenda = new Agenda(null, DefaultEventoRepository, DefaultPonenteRepository); | 77 var agenda = new Agenda(null, DefaultEventoRepository, DefaultPersonaRepository); |
77 | 78 |
78 var r = agenda.Agendar("Van para publicar", string.Empty, DateTime.Now, | 79 var r = agenda.Agendar("Van para publicar", string.Empty, DateTime.Now, |
79 urlInvitacion); | 80 urlInvitacion); |
80 | 81 |
81 Assert.IsFalse(r.Succeful); | 82 Assert.IsFalse(r.Succeful); |
88 var publicador2 = new Mock<IPublicador>(); | 89 var publicador2 = new Mock<IPublicador>(); |
89 | 90 |
90 var repository = new Mock<IEventoRepository>(); | 91 var repository = new Mock<IEventoRepository>(); |
91 | 92 |
92 var agenda = new Agenda(new CompositePublicador(new[] {publicador1.Object, publicador2.Object}), | 93 var agenda = new Agenda(new CompositePublicador(new[] {publicador1.Object, publicador2.Object}), |
93 repository.Object, DefaultPonenteRepository); | 94 repository.Object, DefaultPersonaRepository); |
94 | 95 |
95 agenda.Agendar("Van para publicar", "jjmontes", DateTime.Now, | 96 agenda.Agendar("Van para publicar", "jjmontes", DateTime.Now, |
96 urlInvitacion); | 97 urlInvitacion); |
97 | 98 |
98 publicador1.Verify(p => p.Publicar(It.IsAny<IEnumerable<Track>>()), Times.Exactly(1)); | 99 publicador1.Verify(p => p.Publicar(It.IsAny<IEnumerable<Track>>()), Times.Exactly(1)); |
103 [Test] | 104 [Test] |
104 public void Agendar_evento_correctamente() | 105 public void Agendar_evento_correctamente() |
105 { | 106 { |
106 var publicador = new Mock<IPublicador>(); | 107 var publicador = new Mock<IPublicador>(); |
107 | 108 |
108 var agenda = new Agenda(publicador.Object, DefaultEventoRepository, DefaultPonenteRepository); | 109 var agenda = new Agenda(publicador.Object, DefaultEventoRepository, DefaultPersonaRepository); |
109 | 110 |
110 agenda.Agendar("Van para publicar", "jjmontes", DateTime.Now, | 111 agenda.Agendar("Van para publicar", "jjmontes", DateTime.Now, |
111 urlInvitacion); | 112 urlInvitacion); |
112 | 113 |
113 Assert.AreEqual(0, agenda.GetEventosPropuestos().Count); | 114 Assert.AreEqual(0, agenda.GetEventosPropuestos().Count); |
117 | 118 |
118 publicador.Verify(p => p.Publicar(It.IsAny<IEnumerable<Track>>()), Times.Exactly(1)); | 119 publicador.Verify(p => p.Publicar(It.IsAny<IEnumerable<Track>>()), Times.Exactly(1)); |
119 | 120 |
120 var evento = eventos[0]; | 121 var evento = eventos[0]; |
121 | 122 |
122 Assert.IsNotNull(evento.Ponente); | 123 Assert.IsNotNull(evento.Persona); |
123 Assert.IsNotNull(evento.Ponente.Eventos); | 124 Assert.IsNotNull(evento.Persona.Eventos); |
124 Assert.AreEqual(1, evento.Ponente.Eventos.Count()); | 125 Assert.AreEqual(1, evento.Persona.Eventos.Count()); |
125 Assert.AreEqual(evento, evento.Ponente.Eventos.First()); | 126 Assert.AreEqual(evento, evento.Persona.Eventos.First()); |
126 | 127 |
127 } | 128 } |
128 | 129 |
129 [Test] | 130 [Test] |
130 public void Agendar_y_modificar_evento() | 131 public void Agendar_y_modificar_evento() |
131 { | 132 { |
132 var repository = DefaultEventoRepository; | 133 var repository = DefaultEventoRepository; |
133 var publicador = new Mock<IPublicador>(); | 134 var publicador = new Mock<IPublicador>(); |
134 | 135 |
135 var agenda = new Agenda(publicador.Object, repository, DefaultPonenteRepository); | 136 var agenda = new Agenda(publicador.Object, repository, DefaultPersonaRepository); |
136 | 137 |
137 agenda.Agendar("Van para publicar", "jjmontes", DateTime.Now, | 138 agenda.Agendar("Van para publicar", "jjmontes", DateTime.Now, |
138 urlInvitacion); | 139 urlInvitacion); |
139 | 140 |
140 publicador.Verify(p => p.Publicar(It.IsAny<IEnumerable<Track>>()), Times.Exactly(1)); | 141 publicador.Verify(p => p.Publicar(It.IsAny<IEnumerable<Track>>()), Times.Exactly(1)); |
148 | 149 |
149 publicador.Verify(p => p.Publicar(It.IsAny<IEnumerable<Track>>()), Times.Exactly(2)); | 150 publicador.Verify(p => p.Publicar(It.IsAny<IEnumerable<Track>>()), Times.Exactly(2)); |
150 | 151 |
151 evento = repository.GetEventosConFecha().First(); | 152 evento = repository.GetEventosConFecha().First(); |
152 Assert.AreEqual("otro titulo", evento.Titulo); | 153 Assert.AreEqual("otro titulo", evento.Titulo); |
153 Assert.AreEqual("otro ponente", evento.Ponente.Nombre); | 154 Assert.AreEqual("otro ponente", evento.Persona.Nombre); |
154 Assert.AreEqual(fecha, evento.Fecha); | 155 Assert.AreEqual(fecha, evento.Fecha); |
155 | 156 |
156 var idEventoNoExistente = new Guid("99999999999999999999999999999999"); | 157 var idEventoNoExistente = new Guid("99999999999999999999999999999999"); |
157 Assert.Throws<EventoNotFoundException>( | 158 Assert.Throws<EventoNotFoundException>( |
158 () => agenda.ModificarEvento(idEventoNoExistente, "algún título", "un ponente", DateTime.Now, urlInvitacion)); | 159 () => agenda.ModificarEvento(idEventoNoExistente, "algún título", "un ponente", DateTime.Now, urlInvitacion)); |
163 { | 164 { |
164 var publicador1 = new Mock<IPublicador>(); | 165 var publicador1 = new Mock<IPublicador>(); |
165 var publicador2 = new Mock<IPublicador>(); | 166 var publicador2 = new Mock<IPublicador>(); |
166 | 167 |
167 var agenda = new Agenda(new CompositePublicador(new[] {publicador1.Object, publicador2.Object}), | 168 var agenda = new Agenda(new CompositePublicador(new[] {publicador1.Object, publicador2.Object}), |
168 DefaultEventoRepository, DefaultPonenteRepository); | 169 DefaultEventoRepository, DefaultPersonaRepository); |
169 | 170 |
170 agenda.Agendar("Van para publicar", "jjmontes", DateTime.Now, | 171 agenda.Agendar("Van para publicar", "jjmontes", DateTime.Now, |
171 urlInvitacion); | 172 urlInvitacion); |
172 | 173 |
173 var van = agenda.GetEventosAgendados().Single(v => v.Titulo == "Van para publicar"); | 174 var van = agenda.GetEventosAgendados().Single(v => v.Titulo == "Van para publicar"); |
183 { | 184 { |
184 var publicador1 = new Mock<IPublicador>(); | 185 var publicador1 = new Mock<IPublicador>(); |
185 var publicador2 = new Mock<IPublicador>(); | 186 var publicador2 = new Mock<IPublicador>(); |
186 | 187 |
187 var agenda = new Agenda(new CompositePublicador(new[] { publicador1.Object, publicador2.Object }), | 188 var agenda = new Agenda(new CompositePublicador(new[] { publicador1.Object, publicador2.Object }), |
188 DefaultEventoRepository, DefaultPonenteRepository); | 189 DefaultEventoRepository, DefaultPersonaRepository); |
189 | 190 |
190 agenda.Proponer("Html 5", "jjmontes", urlInvitacion); | 191 agenda.Proponer("Html 5", "jjmontes", urlInvitacion); |
191 Assert.AreEqual(1, agenda.GetEventosPropuestos().Count); | 192 Assert.AreEqual(1, agenda.GetEventosPropuestos().Count); |
192 Assert.AreEqual(0, agenda.GetEventosAgendados().Count); | 193 Assert.AreEqual(0, agenda.GetEventosAgendados().Count); |
193 | 194 |