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);