# HG changeset patch # User nelo@MTEySS.neluz.int # Date 1300055458 10800 # Node ID 9d6b28a696d11d4d06ddce208e9e82339a763914 # Parent c62b77fc33f4e7672ba0928af9ab7c28a2f76612 corrección en método que verifica la autenticación del usuario diff -r c62b77fc33f4 -r 9d6b28a696d1 Agendas/trunk/src/Agendas.Domain/Agenda.cs --- a/Agendas/trunk/src/Agendas.Domain/Agenda.cs Sun Mar 13 18:51:06 2011 -0300 +++ b/Agendas/trunk/src/Agendas.Domain/Agenda.cs Sun Mar 13 19:30:58 2011 -0300 @@ -29,8 +29,8 @@ throw new ValidationException(); if (_publicador != null) _publicador.Publicar(evento); - if (EsAutenticado(_seguridad)) - throw new ValidationException(); + if (NoEstaAutenticado(_seguridad)) + throw new UsuarioNoAutenticadoException(); _eventosPublicados.Add(evento); } @@ -51,7 +51,7 @@ { if (string.IsNullOrWhiteSpace(van.Titulo)) throw new ValidationException(); - if (EsAutenticado(_seguridad)) + if (NoEstaAutenticado(_seguridad)) throw new ValidationException(); _eventosPropuestos.Add(van); } @@ -66,9 +66,13 @@ return _eventosPublicados; } - private bool EsAutenticado(ISeguridad seguridad) { - return seguridad != null && seguridad.GetPrincipal() != null && seguridad.GetPrincipal().Identity != null - && string.IsNullOrWhiteSpace(seguridad.GetPrincipal().Identity.Name); + private static bool NoEstaAutenticado(ISeguridad seguridad) { + return seguridad == null || seguridad.GetPrincipal() == null || seguridad.GetPrincipal().Identity == null + || string.IsNullOrWhiteSpace(seguridad.GetPrincipal().Identity.Name); } } + + public class UsuarioNoAutenticadoException : Exception + { + } } \ No newline at end of file diff -r c62b77fc33f4 -r 9d6b28a696d1 Agendas/trunk/src/Agendas.Tests/AgendaTests.cs --- a/Agendas/trunk/src/Agendas.Tests/AgendaTests.cs Sun Mar 13 18:51:06 2011 -0300 +++ b/Agendas/trunk/src/Agendas.Tests/AgendaTests.cs Sun Mar 13 19:30:58 2011 -0300 @@ -7,22 +7,29 @@ using AltNetHispano.Agendas.Domain.Repositories; using Moq; using NUnit.Framework; -using System.Security.Principal; namespace AltNetHispano.Agendas.Tests { [TestFixture] public class AgendaTests { + private static ISeguridad SeguridadServiceDefault + { + get + { + var seguridad = new Mock(); + seguridad.Setup(s => s.GetPrincipal()).Returns(SeguridadObjectMother.GetGenericPrincipalAutenticadoSinRoles()); + return seguridad.Object; + } + } + [Test] public void Publicar_cafe() { var publicador = new Mock(); - var seguridad = new Mock(); - var agenda = new Agenda(publicador.Object, null, seguridad.Object); + var agenda = new Agenda(publicador.Object, null, SeguridadServiceDefault); var cafe = EventoObjectMother.GetCafeValidoParaPublicar(); - seguridad.Setup(s => s.GetPrincipal()).Returns(SeguridadObjectMother.GetGenericPrincipalAutenticadoSinRoles()); agenda.Publicar(cafe); publicador.Verify(p => p.Publicar(It.IsAny()), Times.Exactly(1)); @@ -31,14 +38,12 @@ [Test] public void Publicar_van_con_usuario_autenticado() { - var seguridad = new Mock(); var publicador = new Mock(); - var agenda = new Agenda(publicador.Object, null, seguridad.Object); + var agenda = new Agenda(publicador.Object, null, SeguridadServiceDefault); var van = EventoObjectMother.GetVanValidaParaPublicar(); - seguridad.Setup(s => s.GetPrincipal()).Returns(SeguridadObjectMother.GetGenericPrincipalAutenticadoSinRoles()); agenda.Publicar(van); Assert.AreEqual(1, agenda.GetEventosPublicados().Count); @@ -56,7 +61,19 @@ seguridad.Setup(s => s.GetPrincipal()).Returns(SeguridadObjectMother.GetGenericPrincipalSinAutenticar()); - Assert.Throws(() => agenda.Publicar(van)); + Assert.Throws(() => agenda.Publicar(van)); + } + + [Test] + public void Publicar_van_sin_servicio_de_seguridad() + { + var publicador = new Mock(); + + var agenda = new Agenda(publicador.Object, null, null); + + var van = EventoObjectMother.GetVanValidaParaPublicar(); + + Assert.Throws(() => agenda.Publicar(van)); } [Test] @@ -80,7 +97,7 @@ var publicador1 = new Mock(); var publicador2 = new Mock(); - var agenda = new Agenda(new CompositePublicador(new[] {publicador1.Object, publicador2.Object}), null, null); + var agenda = new Agenda(new CompositePublicador(new[] { publicador1.Object, publicador2.Object }), null, SeguridadServiceDefault); var van = EventoObjectMother.GetVanValidaParaPublicar(); agenda.Publicar(van); @@ -96,7 +113,7 @@ var publicador2 = new Mock(); var recordador1 = new Mock(); - var agenda = new Agenda(new CompositePublicador(new[] {publicador1.Object, publicador2.Object}), recordador1.Object, null); + var agenda = new Agenda(new CompositePublicador(new[] { publicador1.Object, publicador2.Object }), recordador1.Object, SeguridadServiceDefault); var van = EventoObjectMother.GetVanValidaParaPublicar(); agenda.Publicar(van); @@ -206,7 +223,7 @@ { Guid vanId; { - var agenda = new Agenda(null, null, null); + var agenda = new Agenda(null, null, SeguridadServiceDefault); agenda.Publicar(EventoObjectMother.GetVanValidaParaPublicar()); IAgendaRepository agendaRepository = new AgendaRepository();