diff Agendas/trunk/src/Agendas.Tests/AgendaTests.cs @ 9:c90492faf268

Se implementa seguridad a través del constructor y no como parámetro Se valida autenticación al Publicar.
author juanjose.montesdeocaarbos
date Sat, 12 Feb 2011 12:22:36 -0300
parents cae27d7eb697
children 9d6b28a696d1
line wrap: on
line diff
--- a/Agendas/trunk/src/Agendas.Tests/AgendaTests.cs	Sat Feb 12 11:12:18 2011 -0300
+++ b/Agendas/trunk/src/Agendas.Tests/AgendaTests.cs	Sat Feb 12 12:22:36 2011 -0300
@@ -18,30 +18,47 @@
 		public void Publicar_cafe()
 		{
 			var publicador = new Mock<IPublicador>();
-
-			var agenda = new Agenda(publicador.Object, null, null);
+            var seguridad = new Mock<ISeguridad>();
+            var agenda = new Agenda(publicador.Object, null, seguridad.Object);
 
 			var cafe = EventoObjectMother.GetCafeValidoParaPublicar();
+            seguridad.Setup(s => s.GetPrincipal()).Returns(SeguridadObjectMother.GetGenericPrincipalAutenticadoSinRoles());
 			agenda.Publicar(cafe);
 
 			publicador.Verify(p => p.Publicar(It.IsAny<Evento>()), Times.Exactly(1));
 		}
 
 		[Test]
-		public void Publicar_van()
+		public void Publicar_van_con_usuario_autenticado()
 		{
+            var seguridad = new Mock<ISeguridad>();
 			var publicador = new Mock<IPublicador>();
 
-			var agenda = new Agenda(publicador.Object, null, null);
+			var agenda = new Agenda(publicador.Object, null, seguridad.Object);
 
 			var van = EventoObjectMother.GetVanValidaParaPublicar();
 
+            seguridad.Setup(s => s.GetPrincipal()).Returns(SeguridadObjectMother.GetGenericPrincipalAutenticadoSinRoles());
 			agenda.Publicar(van);
 			Assert.AreEqual(1, agenda.GetEventosPublicados().Count);
 
 			publicador.Verify(p => p.Publicar(It.IsAny<Evento>()), Times.Exactly(1));
 		}
 
+        [Test]
+        public void Publicar_van_sin_usuario_autenticado() {
+            var seguridad = new Mock<ISeguridad>();
+            var publicador = new Mock<IPublicador>();
+
+            var agenda = new Agenda(publicador.Object, null, seguridad.Object);
+
+            var van = EventoObjectMother.GetVanValidaParaPublicar();
+
+            seguridad.Setup(s => s.GetPrincipal()).Returns(SeguridadObjectMother.GetGenericPrincipalSinAutenticar());
+
+            Assert.Throws<ValidationException>(() => agenda.Publicar(van));
+        }
+
 		[Test]
 		public void Error_al_publicar_van()
 		{