Mercurial > altnet-hispano
comparison Agendas/trunk/src/Agendas.Tests/AgendaTests.cs @ 8:cae27d7eb697
Se agregó ISeguridad para validar autenticaciones de usuarios.
Agenda.Proponer modificado para validar que solo pueden Proponer eventos
los usuarios autenticados.
author | juanjose.montesdeocaarbos |
---|---|
date | Sat, 12 Feb 2011 11:12:18 -0300 |
parents | deee2ca97f5b |
children | c90492faf268 |
comparison
equal
deleted
inserted
replaced
7:deee2ca97f5b | 8:cae27d7eb697 |
---|---|
5 using AltNetHispano.Agendas.Domain; | 5 using AltNetHispano.Agendas.Domain; |
6 using AltNetHispano.Agendas.Domain.Exceptions; | 6 using AltNetHispano.Agendas.Domain.Exceptions; |
7 using AltNetHispano.Agendas.Domain.Repositories; | 7 using AltNetHispano.Agendas.Domain.Repositories; |
8 using Moq; | 8 using Moq; |
9 using NUnit.Framework; | 9 using NUnit.Framework; |
10 using System.Security.Principal; | |
10 | 11 |
11 namespace AltNetHispano.Agendas.Tests | 12 namespace AltNetHispano.Agendas.Tests |
12 { | 13 { |
13 [TestFixture] | 14 [TestFixture] |
14 public class AgendaTests | 15 public class AgendaTests |
16 [Test] | 17 [Test] |
17 public void Publicar_cafe() | 18 public void Publicar_cafe() |
18 { | 19 { |
19 var publicador = new Mock<IPublicador>(); | 20 var publicador = new Mock<IPublicador>(); |
20 | 21 |
21 var agenda = new Agenda(publicador.Object, null); | 22 var agenda = new Agenda(publicador.Object, null, null); |
22 | 23 |
23 var cafe = EventoObjectMother.GetCafeValidoParaPublicar(); | 24 var cafe = EventoObjectMother.GetCafeValidoParaPublicar(); |
24 agenda.Publicar(cafe); | 25 agenda.Publicar(cafe); |
25 | 26 |
26 publicador.Verify(p => p.Publicar(It.IsAny<Evento>()), Times.Exactly(1)); | 27 publicador.Verify(p => p.Publicar(It.IsAny<Evento>()), Times.Exactly(1)); |
29 [Test] | 30 [Test] |
30 public void Publicar_van() | 31 public void Publicar_van() |
31 { | 32 { |
32 var publicador = new Mock<IPublicador>(); | 33 var publicador = new Mock<IPublicador>(); |
33 | 34 |
34 var agenda = new Agenda(publicador.Object, null); | 35 var agenda = new Agenda(publicador.Object, null, null); |
35 | 36 |
36 var van = EventoObjectMother.GetVanValidaParaPublicar(); | 37 var van = EventoObjectMother.GetVanValidaParaPublicar(); |
37 | 38 |
38 agenda.Publicar(van); | 39 agenda.Publicar(van); |
39 Assert.AreEqual(1, agenda.GetEventosPublicados().Count); | 40 Assert.AreEqual(1, agenda.GetEventosPublicados().Count); |
45 public void Error_al_publicar_van() | 46 public void Error_al_publicar_van() |
46 { | 47 { |
47 var publicador = new Mock<IPublicador>(); | 48 var publicador = new Mock<IPublicador>(); |
48 publicador.Setup(p => p.Publicar(It.IsAny<Evento>())).Throws(new Exception("Error intencional")); | 49 publicador.Setup(p => p.Publicar(It.IsAny<Evento>())).Throws(new Exception("Error intencional")); |
49 | 50 |
50 var agenda = new Agenda(publicador.Object, null); | 51 var agenda = new Agenda(publicador.Object, null, null); |
51 | 52 |
52 var van = EventoObjectMother.GetVanValidaParaPublicar(); | 53 var van = EventoObjectMother.GetVanValidaParaPublicar(); |
53 Assert.Throws<Exception>(() => agenda.Publicar(van)); | 54 Assert.Throws<Exception>(() => agenda.Publicar(van)); |
54 Assert.AreEqual(0, agenda.GetEventosPublicados().Count); | 55 Assert.AreEqual(0, agenda.GetEventosPublicados().Count); |
55 | 56 |
60 public void Publicar_van_multiples_publicadores() | 61 public void Publicar_van_multiples_publicadores() |
61 { | 62 { |
62 var publicador1 = new Mock<IPublicador>(); | 63 var publicador1 = new Mock<IPublicador>(); |
63 var publicador2 = new Mock<IPublicador>(); | 64 var publicador2 = new Mock<IPublicador>(); |
64 | 65 |
65 var agenda = new Agenda(new CompositePublicador(new[] {publicador1.Object, publicador2.Object}), null); | 66 var agenda = new Agenda(new CompositePublicador(new[] {publicador1.Object, publicador2.Object}), null, null); |
66 | 67 |
67 var van = EventoObjectMother.GetVanValidaParaPublicar(); | 68 var van = EventoObjectMother.GetVanValidaParaPublicar(); |
68 agenda.Publicar(van); | 69 agenda.Publicar(van); |
69 | 70 |
70 publicador1.Verify(p => p.Publicar(It.IsAny<Evento>()), Times.Exactly(1)); | 71 publicador1.Verify(p => p.Publicar(It.IsAny<Evento>()), Times.Exactly(1)); |
76 { | 77 { |
77 var publicador1 = new Mock<IPublicador>(); | 78 var publicador1 = new Mock<IPublicador>(); |
78 var publicador2 = new Mock<IPublicador>(); | 79 var publicador2 = new Mock<IPublicador>(); |
79 var recordador1 = new Mock<IRecordador>(); | 80 var recordador1 = new Mock<IRecordador>(); |
80 | 81 |
81 var agenda = new Agenda(new CompositePublicador(new[] {publicador1.Object, publicador2.Object}), recordador1.Object); | 82 var agenda = new Agenda(new CompositePublicador(new[] {publicador1.Object, publicador2.Object}), recordador1.Object, null); |
82 | 83 |
83 var van = EventoObjectMother.GetVanValidaParaPublicar(); | 84 var van = EventoObjectMother.GetVanValidaParaPublicar(); |
84 agenda.Publicar(van); | 85 agenda.Publicar(van); |
85 | 86 |
86 agenda.Recordar(van); | 87 agenda.Recordar(van); |
91 | 92 |
92 Assert.AreEqual(1, agenda.GetEventosPublicados().Count); | 93 Assert.AreEqual(1, agenda.GetEventosPublicados().Count); |
93 } | 94 } |
94 | 95 |
95 [Test] | 96 [Test] |
96 public void Propuesta_de_van() | 97 public void Propuesta_de_van_con_usuario_autenticado() |
97 { | 98 { |
98 var van = new Van{Titulo = "Van propuesta"}; | 99 var van = new Van{Titulo = "Van propuesta"}; |
99 | 100 |
100 var agenda = new Agenda(null, null); | 101 var seguridad = new Mock<ISeguridad>(); |
102 var agenda = new Agenda(null, null, seguridad.Object); | |
103 | |
104 seguridad.Setup(s => s.GetPrincipal()).Returns(SeguridadObjectMother.GetGenericPrincipalAutenticadoSinRoles()); | |
101 agenda.Proponer(van); | 105 agenda.Proponer(van); |
102 | 106 |
103 IList<Evento> eventosPropuestos = agenda.GetEventosPropuestos(); | 107 IList<Evento> eventosPropuestos = agenda.GetEventosPropuestos(); |
104 Assert.IsNotNull(eventosPropuestos); | 108 Assert.IsNotNull(eventosPropuestos); |
105 Assert.AreEqual(1, eventosPropuestos.Count); | 109 Assert.AreEqual(1, eventosPropuestos.Count); |
107 } | 111 } |
108 | 112 |
109 [Test] | 113 [Test] |
110 public void Verificar_propuesta_separada_de_publicacion() | 114 public void Verificar_propuesta_separada_de_publicacion() |
111 { | 115 { |
112 var agenda = new Agenda(null, null); | 116 var seguridad = new Mock<ISeguridad>(); |
117 var agenda = new Agenda(null, null, seguridad.Object); | |
113 | 118 |
114 var vanPropuesta = new Van { Titulo = "Van propuesta" }; | 119 var vanPropuesta = new Van { Titulo = "Van propuesta" }; |
115 var vanPublicada = EventoObjectMother.GetVanValidaParaPublicar(); | 120 var vanPublicada = EventoObjectMother.GetVanValidaParaPublicar(); |
121 seguridad.Setup(s => s.GetPrincipal()).Returns(SeguridadObjectMother.GetGenericPrincipalAutenticadoSinRoles()); | |
116 | 122 |
117 agenda.Proponer(vanPropuesta); | 123 agenda.Proponer(vanPropuesta); |
118 agenda.Publicar(vanPublicada); | 124 agenda.Publicar(vanPublicada); |
119 | 125 |
120 IList<Evento> eventosPropuestos = agenda.GetEventosPropuestos(); | 126 IList<Evento> eventosPropuestos = agenda.GetEventosPropuestos(); |
127 [Test] | 133 [Test] |
128 public void Propuesta_de_van_sin_titulo() | 134 public void Propuesta_de_van_sin_titulo() |
129 { | 135 { |
130 var van = new Van(); | 136 var van = new Van(); |
131 | 137 |
132 var agenda = new Agenda(null, null); | 138 var seguridad = new Mock<ISeguridad>(); |
133 Assert.Throws<ValidationException>(() => agenda.Proponer(van)); | 139 var agenda = new Agenda(null, null, seguridad.Object); |
140 | |
141 Assert.Throws<ValidationException>(() => agenda.Proponer(van)); | |
134 Assert.AreEqual(Guid.Empty, van.Id); | 142 Assert.AreEqual(Guid.Empty, van.Id); |
135 } | 143 } |
136 | 144 |
137 [Test] | 145 [Test] |
138 public void Agendar_van_propuesta_sin_fecha() | 146 public void Agendar_van_propuesta_sin_fecha() |
139 { | 147 { |
140 var agenda = new Agenda(null, null); | 148 var seguridad = new Mock<ISeguridad>(); |
149 var agenda = new Agenda(null, null, seguridad.Object); | |
150 | |
151 seguridad.Setup(s => s.GetPrincipal()).Returns(SeguridadObjectMother.GetGenericPrincipalAutenticadoSinRoles()); | |
141 | 152 |
142 { | 153 { |
143 var van = new Van {Titulo = "Van propuesta"}; | 154 var van = new Van {Titulo = "Van propuesta"}; |
144 agenda.Proponer(van); | 155 agenda.Proponer(van); |
145 } | 156 } |
146 | 157 |
147 { | 158 { |
148 var van = agenda.GetEventosPropuestos().FirstOrDefault(); | 159 var van = agenda.GetEventosPropuestos().FirstOrDefault(); |
149 Assert.IsNotNull(van); | 160 Assert.IsNotNull(van); |
152 } | 163 } |
153 | 164 |
154 [Test] | 165 [Test] |
155 public void Agendar_van_propuesta_sin_ponente() | 166 public void Agendar_van_propuesta_sin_ponente() |
156 { | 167 { |
157 var agenda = new Agenda(null, null); | 168 var seguridad = new Mock<ISeguridad>(); |
169 var agenda = new Agenda(null, null, seguridad.Object); | |
170 | |
171 seguridad.Setup(s => s.GetPrincipal()).Returns(SeguridadObjectMother.GetGenericPrincipalAutenticadoSinRoles()); | |
158 | 172 |
159 { | 173 { |
160 var van = new Van { Titulo = "Van propuesta" }; | 174 var van = new Van { Titulo = "Van propuesta" }; |
161 agenda.Proponer(van); | 175 agenda.Proponer(van); |
162 } | 176 } |
163 | 177 |
164 { | 178 { |
165 var van = agenda.GetEventosPropuestos().FirstOrDefault() as Van; | 179 var van = agenda.GetEventosPropuestos().FirstOrDefault() as Van; |
166 Assert.IsNotNull(van); | 180 Assert.IsNotNull(van); |
173 [Test] | 187 [Test] |
174 public void Van_crud() | 188 public void Van_crud() |
175 { | 189 { |
176 Guid vanId; | 190 Guid vanId; |
177 { | 191 { |
178 var agenda = new Agenda(null, null); | 192 var agenda = new Agenda(null, null, null); |
179 agenda.Publicar(EventoObjectMother.GetVanValidaParaPublicar()); | 193 agenda.Publicar(EventoObjectMother.GetVanValidaParaPublicar()); |
180 | 194 |
181 IAgendaRepository agendaRepository = new AgendaRepository(); | 195 IAgendaRepository agendaRepository = new AgendaRepository(); |
182 | 196 |
183 agendaRepository.Save(agenda); | 197 agendaRepository.Save(agenda); |