Mercurial > altnet-hispano
changeset 11:9d6b28a696d1
corrección en método que verifica la autenticación del usuario
author | nelo@MTEySS.neluz.int |
---|---|
date | Sun, 13 Mar 2011 19:30:58 -0300 |
parents | c62b77fc33f4 |
children | 05996fa19e04 |
files | Agendas/trunk/src/Agendas.Domain/Agenda.cs Agendas/trunk/src/Agendas.Tests/AgendaTests.cs |
diffstat | 2 files changed, 38 insertions(+), 17 deletions(-) [+] |
line wrap: on
line diff
--- 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
--- 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<ISeguridad>(); + seguridad.Setup(s => s.GetPrincipal()).Returns(SeguridadObjectMother.GetGenericPrincipalAutenticadoSinRoles()); + return seguridad.Object; + } + } + [Test] public void Publicar_cafe() { var publicador = new Mock<IPublicador>(); - var seguridad = new Mock<ISeguridad>(); - 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<Evento>()), Times.Exactly(1)); @@ -31,14 +38,12 @@ [Test] public void Publicar_van_con_usuario_autenticado() { - var seguridad = new Mock<ISeguridad>(); var publicador = new Mock<IPublicador>(); - 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<ValidationException>(() => agenda.Publicar(van)); + Assert.Throws<UsuarioNoAutenticadoException>(() => agenda.Publicar(van)); + } + + [Test] + public void Publicar_van_sin_servicio_de_seguridad() + { + var publicador = new Mock<IPublicador>(); + + var agenda = new Agenda(publicador.Object, null, null); + + var van = EventoObjectMother.GetVanValidaParaPublicar(); + + Assert.Throws<UsuarioNoAutenticadoException>(() => agenda.Publicar(van)); } [Test] @@ -80,7 +97,7 @@ var publicador1 = new Mock<IPublicador>(); var publicador2 = new Mock<IPublicador>(); - 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<IPublicador>(); var recordador1 = new Mock<IRecordador>(); - 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();