diff --git a/impl/extension/jsf/src/main/java/br/gov/frameworkdemoiselle/internal/implementation/SecurityObserver.java b/impl/extension/jsf/src/main/java/br/gov/frameworkdemoiselle/internal/implementation/SecurityObserver.java index 4c9acc3..adfe5e2 100644 --- a/impl/extension/jsf/src/main/java/br/gov/frameworkdemoiselle/internal/implementation/SecurityObserver.java +++ b/impl/extension/jsf/src/main/java/br/gov/frameworkdemoiselle/internal/implementation/SecurityObserver.java @@ -87,7 +87,8 @@ public class SecurityObserver implements Serializable { clear(); FacesContext facesContext = Beans.getReference(FacesContext.class); - if (!config.getLoginPage().equals(facesContext.getViewRoot().getViewId())) { + if (!config.getLoginPage() + .equals(facesContext.getViewRoot().getViewId())) { getSavedParams().putAll(facesContext.getExternalContext().getRequestParameterMap()); savedViewId = facesContext.getViewRoot().getViewId(); } diff --git a/impl/extension/jsf/src/test/java/br/gov/frameworkdemoiselle/internal/bootstrap/FacesBootstrapTest.java b/impl/extension/jsf/src/test/java/br/gov/frameworkdemoiselle/internal/bootstrap/FacesBootstrapTest.java deleted file mode 100644 index 401df82..0000000 --- a/impl/extension/jsf/src/test/java/br/gov/frameworkdemoiselle/internal/bootstrap/FacesBootstrapTest.java +++ /dev/null @@ -1,72 +0,0 @@ -///* -// * Demoiselle Framework -// * Copyright (C) 2010 SERPRO -// * ---------------------------------------------------------------------------- -// * This file is part of Demoiselle Framework. -// * -// * Demoiselle Framework is free software; you can redistribute it and/or -// * modify it under the terms of the GNU Lesser General Public License version 3 -// * as published by the Free Software Foundation. -// * -// * This program is distributed in the hope that it will be useful, -// * but WITHOUT ANY WARRANTY; without even the implied warranty of -// * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// * GNU General Public License for more details. -// * -// * You should have received a copy of the GNU Lesser General Public License version 3 -// * along with this program; if not, see -// * or write to the Free Software Foundation, Inc., 51 Franklin Street, -// * Fifth Floor, Boston, MA 02110-1301, USA. -// * ---------------------------------------------------------------------------- -// * Este arquivo é parte do Framework Demoiselle. -// * -// * O Framework Demoiselle é um software livre; você pode redistribuí-lo e/ou -// * modificá-lo dentro dos termos da GNU LGPL versão 3 como publicada pela Fundação -// * do Software Livre (FSF). -// * -// * Este programa é distribuído na esperança que possa ser útil, mas SEM NENHUMA -// * GARANTIA; sem uma garantia implícita de ADEQUAÇÃO a qualquer MERCADO ou -// * APLICAÇÃO EM PARTICULAR. Veja a Licença Pública Geral GNU/LGPL em português -// * para maiores detalhes. -// * -// * Você deve ter recebido uma cópia da GNU LGPL versão 3, sob o título -// * "LICENCA.txt", junto com esse programa. Se não, acesse -// * ou escreva para a Fundação do Software Livre (FSF) Inc., -// * 51 Franklin St, Fifth Floor, Boston, MA 02111-1301, USA. -// */ -//package br.gov.frameworkdemoiselle.internal.bootstrap; -//import org.junit.Ignore; -//import static org.powermock.api.easymock.PowerMock.createMock; -//import static org.powermock.api.easymock.PowerMock.replay; -//import static org.powermock.api.easymock.PowerMock.verifyAll; -// -//import javax.enterprise.inject.spi.AfterBeanDiscovery; -// -//import org.easymock.EasyMock; -//import org.junit.Before; -//import org.junit.Test; -//import org.junit.runner.RunWith; -//import org.powermock.modules.junit4.PowerMockRunner; -// -//import br.gov.frameworkdemoiselle.internal.context.ViewContext; -//@Ignore -//@RunWith(PowerMockRunner.class) -//public class FacesBootstrapTest { -// -// private JsfBootstrap bootstrap; -// -// @Before -// public void before() { -// bootstrap = new JsfBootstrap(); -// } -// -// @Test -// public void testLoadContexts() { -// AfterBeanDiscovery event = createMock(AfterBeanDiscovery.class); -// event.addContext(EasyMock.anyObject(ViewContext.class)); -// replay(event); -// bootstrap.loadContexts(event); -// verifyAll(); -// } -// -//} diff --git a/impl/extension/jsf/src/test/java/br/gov/frameworkdemoiselle/internal/bootstrap/JsfBootstrapTest.java b/impl/extension/jsf/src/test/java/br/gov/frameworkdemoiselle/internal/bootstrap/JsfBootstrapTest.java new file mode 100644 index 0000000..7c0cfc2 --- /dev/null +++ b/impl/extension/jsf/src/test/java/br/gov/frameworkdemoiselle/internal/bootstrap/JsfBootstrapTest.java @@ -0,0 +1,131 @@ +/* + * Demoiselle Framework + * Copyright (C) 2010 SERPRO + * ---------------------------------------------------------------------------- + * This file is part of Demoiselle Framework. + * + * Demoiselle Framework is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public License version 3 + * as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License version 3 + * along with this program; if not, see + * or write to the Free Software Foundation, Inc., 51 Franklin Street, + * Fifth Floor, Boston, MA 02110-1301, USA. + * ---------------------------------------------------------------------------- + * Este arquivo é parte do Framework Demoiselle. + * + * O Framework Demoiselle é um software livre; você pode redistribuí-lo e/ou + * modificá-lo dentro dos termos da GNU LGPL versão 3 como publicada pela Fundação + * do Software Livre (FSF). + * + * Este programa é distribuído na esperança que possa ser útil, mas SEM NENHUMA + * GARANTIA; sem uma garantia implícita de ADEQUAÇÃO a qualquer MERCADO ou + * APLICAÇÃO EM PARTICULAR. Veja a Licença Pública Geral GNU/LGPL em português + * para maiores detalhes. + * + * Você deve ter recebido uma cópia da GNU LGPL versão 3, sob o título + * "LICENCA.txt", junto com esse programa. Se não, acesse + * ou escreva para a Fundação do Software Livre (FSF) Inc., + * 51 Franklin St, Fifth Floor, Boston, MA 02111-1301, USA. + */ +package br.gov.frameworkdemoiselle.internal.bootstrap; + +import static org.easymock.EasyMock.expect; +import static org.powermock.api.easymock.PowerMock.createMock; +import static org.powermock.api.easymock.PowerMock.mockStatic; +import static org.powermock.api.easymock.PowerMock.replayAll; +import static org.powermock.api.easymock.PowerMock.replay; +import static org.powermock.api.easymock.PowerMock.verifyAll; +import static org.powermock.api.easymock.PowerMock.verify; + +import java.lang.annotation.Annotation; +import java.util.ArrayList; +import java.util.List; +import java.util.Locale; + +import javax.enterprise.context.spi.Contextual; +import javax.enterprise.context.spi.CreationalContext; +import javax.enterprise.inject.spi.AfterBeanDiscovery; +import javax.enterprise.inject.spi.AfterDeploymentValidation; + +import junit.framework.Assert; + +import org.easymock.EasyMock; +import org.junit.Before; +import org.junit.Test; +import org.junit.rules.TemporaryFolder; +import org.junit.runner.RunWith; +import org.powermock.core.classloader.annotations.PrepareForTest; +import org.powermock.modules.junit4.PowerMockRunner; +import org.powermock.reflect.Whitebox; + +import br.gov.frameworkdemoiselle.internal.context.Contexts; +import br.gov.frameworkdemoiselle.internal.context.CustomContext; +import br.gov.frameworkdemoiselle.internal.context.ViewContext; +import br.gov.frameworkdemoiselle.lifecycle.AfterShutdownProccess; +import br.gov.frameworkdemoiselle.util.Beans; + +@RunWith(PowerMockRunner.class) +@PrepareForTest({ Beans.class, Contexts.class }) +public class JsfBootstrapTest { + + private JsfBootstrap bootstrap; + + private AfterBeanDiscovery event; + + @Before + public void before() { + event = createMock(AfterBeanDiscovery.class); + mockStatic(Beans.class); + expect(Beans.getReference(Locale.class)).andReturn(Locale.getDefault()).anyTimes(); + replay(Beans.class); + bootstrap = new JsfBootstrap(); + } + + @Test + public void testStoreContexts() { + bootstrap.storeContexts(event); + replay(event); + + Assert.assertEquals(event, Whitebox.getInternalState(bootstrap, "afterBeanDiscoveryEvent")); + List context = Whitebox.getInternalState(bootstrap, "tempContexts"); + Assert.assertEquals(1, context.size()); + verifyAll(); + } + + @Test + public void testAddContexts() { + List tempContexts = new ArrayList(); + CustomContext tempContext = new ViewContext(); + tempContexts.add(tempContext); + Whitebox.setInternalState(bootstrap, "tempContexts", tempContexts); + Whitebox.setInternalState(bootstrap, "afterBeanDiscoveryEvent", event); + + AfterDeploymentValidation afterDeploymentValidation = createMock(AfterDeploymentValidation.class); + + event.addContext(tempContext); + + replay(event, afterDeploymentValidation); + + bootstrap.addContexts(afterDeploymentValidation); + verifyAll(); + } + + @Test + public void testRemoveContexts() { + bootstrap.storeContexts(event); + + AfterShutdownProccess afterShutdownProccess = createMock(AfterShutdownProccess.class); + replay(event, afterShutdownProccess); + bootstrap.removeContexts(afterShutdownProccess); + + verifyAll(); + } + +} diff --git a/impl/extension/jsf/src/test/java/br/gov/frameworkdemoiselle/internal/configuration/ExceptionHandlerConfigTest.java b/impl/extension/jsf/src/test/java/br/gov/frameworkdemoiselle/internal/configuration/ExceptionHandlerConfigTest.java new file mode 100644 index 0000000..2473385 --- /dev/null +++ b/impl/extension/jsf/src/test/java/br/gov/frameworkdemoiselle/internal/configuration/ExceptionHandlerConfigTest.java @@ -0,0 +1,27 @@ +package br.gov.frameworkdemoiselle.internal.configuration; + +import static org.junit.Assert.assertEquals; + +import org.junit.Before; +import org.junit.Test; + +public class ExceptionHandlerConfigTest { + + private ExceptionHandlerConfig config; + + @Before + public void setUP() throws Exception { + this.config = new ExceptionHandlerConfig(); + } + + @Test + public void testGetExceptionPage() { + assertEquals("/application_error", config.getExceptionPage()); + } + + @Test + public void testIsHandleApplicationException() { + assertEquals(true, config.isHandleApplicationException()); + } + +} diff --git a/impl/extension/jsf/src/test/java/br/gov/frameworkdemoiselle/internal/configuration/JsfSecurityConfigTest.java b/impl/extension/jsf/src/test/java/br/gov/frameworkdemoiselle/internal/configuration/JsfSecurityConfigTest.java new file mode 100644 index 0000000..70225de --- /dev/null +++ b/impl/extension/jsf/src/test/java/br/gov/frameworkdemoiselle/internal/configuration/JsfSecurityConfigTest.java @@ -0,0 +1,38 @@ +package br.gov.frameworkdemoiselle.internal.configuration; + +import static org.junit.Assert.assertEquals; + +import org.junit.Before; +import org.junit.Test; + + +public class JsfSecurityConfigTest { + + private JsfSecurityConfig config; + + @Before + public void setUp() throws Exception { + this.config = new JsfSecurityConfig(); + } + + @Test + public void testGetLoginPage() { + assertEquals("/login", config.getLoginPage()); + } + + @Test + public void testGetRedirectAfterLogin() { + assertEquals("/index", config.getRedirectAfterLogin()); + } + + @Test + public void testGetRedirectAfterLogout() { + assertEquals("/login", config.getRedirectAfterLogout()); + } + + @Test + public void testIsRedirectEnabled() { + assertEquals(true, config.isRedirectEnabled()); + } + +} diff --git a/impl/extension/jsf/src/test/java/br/gov/frameworkdemoiselle/internal/implementation/ApplicationExceptionHandlerTest.java b/impl/extension/jsf/src/test/java/br/gov/frameworkdemoiselle/internal/implementation/ApplicationExceptionHandlerTest.java index c878cd2..890c685 100644 --- a/impl/extension/jsf/src/test/java/br/gov/frameworkdemoiselle/internal/implementation/ApplicationExceptionHandlerTest.java +++ b/impl/extension/jsf/src/test/java/br/gov/frameworkdemoiselle/internal/implementation/ApplicationExceptionHandlerTest.java @@ -35,7 +35,7 @@ * 51 Franklin St, Fifth Floor, Boston, MA 02111-1301, USA. */ package br.gov.frameworkdemoiselle.internal.implementation; -import org.junit.Ignore; + import static junit.framework.Assert.assertFalse; import static junit.framework.Assert.assertTrue; import static org.easymock.EasyMock.expect; @@ -66,7 +66,6 @@ import br.gov.frameworkdemoiselle.internal.configuration.ExceptionHandlerConfig; import br.gov.frameworkdemoiselle.util.Beans; import br.gov.frameworkdemoiselle.util.Faces; -@Ignore @RunWith(PowerMockRunner.class) @PrepareForTest({ Beans.class, FacesContext.class, Faces.class }) public class ApplicationExceptionHandlerTest { @@ -142,10 +141,10 @@ public class ApplicationExceptionHandlerTest { public void testHandleAnApplicationExceptionOnRenderResponse() { AnnotatedAppException exception = new AnnotatedAppException(); -// PhaseId phaseId = PhaseId.RENDER_RESPONSE; + // PhaseId phaseId = PhaseId.RENDER_RESPONSE; expect(eventContext.getException()).andReturn(exception); -// expect(facesContext.getCurrentPhaseId()).andReturn(phaseId); + // expect(facesContext.getCurrentPhaseId()).andReturn(phaseId); expect(config.isHandleApplicationException()).andReturn(false); handler.getWrapped().handle(); @@ -165,10 +164,10 @@ public class ApplicationExceptionHandlerTest { public void testHandleAnyException() { SomeException exception = new SomeException(); -// PhaseId phaseId = PowerMock.createMock(PhaseId.class); + // PhaseId phaseId = PowerMock.createMock(PhaseId.class); expect(eventContext.getException()).andReturn(exception); -// expect(facesContext.getCurrentPhaseId()).andReturn(phaseId); + // expect(facesContext.getCurrentPhaseId()).andReturn(phaseId); expect(config.isHandleApplicationException()).andReturn(true); handler.getWrapped().handle(); @@ -204,5 +203,4 @@ public class ApplicationExceptionHandlerTest { verifyAll(); } - } diff --git a/impl/extension/jsf/src/test/java/br/gov/frameworkdemoiselle/internal/implementation/AuthorizationExceptionHandlerTest.java b/impl/extension/jsf/src/test/java/br/gov/frameworkdemoiselle/internal/implementation/AuthorizationExceptionHandlerTest.java index d0291f0..eb5a66d 100644 --- a/impl/extension/jsf/src/test/java/br/gov/frameworkdemoiselle/internal/implementation/AuthorizationExceptionHandlerTest.java +++ b/impl/extension/jsf/src/test/java/br/gov/frameworkdemoiselle/internal/implementation/AuthorizationExceptionHandlerTest.java @@ -1,171 +1,171 @@ -///* -// * Demoiselle Framework -// * Copyright (C) 2010 SERPRO -// * ---------------------------------------------------------------------------- -// * This file is part of Demoiselle Framework. -// * -// * Demoiselle Framework is free software; you can redistribute it and/or -// * modify it under the terms of the GNU Lesser General Public License version 3 -// * as published by the Free Software Foundation. -// * -// * This program is distributed in the hope that it will be useful, -// * but WITHOUT ANY WARRANTY; without even the implied warranty of -// * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// * GNU General Public License for more details. -// * -// * You should have received a copy of the GNU Lesser General Public License version 3 -// * along with this program; if not, see -// * or write to the Free Software Foundation, Inc., 51 Franklin Street, -// * Fifth Floor, Boston, MA 02110-1301, USA. -// * ---------------------------------------------------------------------------- -// * Este arquivo é parte do Framework Demoiselle. -// * -// * O Framework Demoiselle é um software livre; você pode redistribuí-lo e/ou -// * modificá-lo dentro dos termos da GNU LGPL versão 3 como publicada pela Fundação -// * do Software Livre (FSF). -// * -// * Este programa é distribuído na esperança que possa ser útil, mas SEM NENHUMA -// * GARANTIA; sem uma garantia implícita de ADEQUAÇÃO a qualquer MERCADO ou -// * APLICAÇÃO EM PARTICULAR. Veja a Licença Pública Geral GNU/LGPL em português -// * para maiores detalhes. -// * -// * Você deve ter recebido uma cópia da GNU LGPL versão 3, sob o título -// * "LICENCA.txt", junto com esse programa. Se não, acesse -// * ou escreva para a Fundação do Software Livre (FSF) Inc., -// * 51 Franklin St, Fifth Floor, Boston, MA 02111-1301, USA. -// */ -//package br.gov.frameworkdemoiselle.internal.implementation; -// -//import static junit.framework.Assert.assertFalse; -//import static junit.framework.Assert.assertTrue; -//import static org.easymock.EasyMock.expect; -//import static org.powermock.api.easymock.PowerMock.createMock; -//import static org.powermock.api.easymock.PowerMock.expectLastCall; -//import static org.powermock.api.easymock.PowerMock.mockStatic; -//import static org.powermock.api.easymock.PowerMock.replayAll; -//import static org.powermock.api.easymock.PowerMock.verifyAll; -// -//import java.util.ArrayList; -//import java.util.Collection; -// -//import javax.faces.context.ExceptionHandler; -//import javax.faces.context.FacesContext; -//import javax.faces.event.ExceptionQueuedEvent; -//import javax.faces.event.ExceptionQueuedEventContext; -//import javax.faces.event.PhaseId; -// -//import org.junit.Before; -//import org.junit.Test; -//import org.junit.runner.RunWith; -//import org.powermock.api.easymock.PowerMock; -//import org.powermock.core.classloader.annotations.PrepareForTest; -//import org.powermock.modules.junit4.PowerMockRunner; -// -//import br.gov.frameworkdemoiselle.security.AuthorizationException; -//import br.gov.frameworkdemoiselle.util.Faces; -// -//@RunWith(PowerMockRunner.class) -//@PrepareForTest({ FacesContext.class, CoreBundle.class, Faces.class }) -//public class AuthorizationExceptionHandlerTest { -// -// private AuthorizationExceptionHandler handler; -// -// private ExceptionQueuedEventContext eventContext; -// -// private Collection events; -// -// private FacesContext facesContext; -// -// @Before -// public void setUp() { -// -// mockStatic(FacesContext.class); -// -// events = new ArrayList(); -// ExceptionHandler jsfExceptionHandler = createMock(ExceptionHandler.class); -// handler = new AuthorizationExceptionHandler(jsfExceptionHandler); -// eventContext = createMock(ExceptionQueuedEventContext.class); -// ExceptionQueuedEvent event = createMock(ExceptionQueuedEvent.class); -// facesContext = PowerMock.createMock(FacesContext.class); -// -// expect(event.getSource()).andReturn(eventContext); -// events.add(event); -// expect(handler.getUnhandledExceptionQueuedEvents()).andReturn(events).times(2); -// expect(FacesContext.getCurrentInstance()).andReturn(facesContext).anyTimes(); -// -// -// } -// -// @Test -// public void testHandleAnAuthorizationExceptionNotOnRenderResponse() { -// -// mockStatic(Faces.class); -// -//// ResourceBundle bundle = new ResourceBundle(ResourceBundle.getBundle("demoiselle-core-bundle")); -// -// AuthorizationException exception = new AuthorizationException(""); -// PhaseId phaseId = PowerMock.createMock(PhaseId.class); -// -// expect(eventContext.getException()).andReturn(exception); -// expect(facesContext.getCurrentPhaseId()).andReturn(phaseId); -// -// Faces.addMessage(exception); -// expectLastCall(); -// -// replayAll(); -// -// handler.handle(); -// -// assertTrue(events.isEmpty()); -// -// verifyAll(); -// -// } -// -// @Test -// public void testHandleAnAuthorizationExceptionOnRenderResponse() { -// -//// ResourceBundle bundle = new ResourceBundle(ResourceBundle.getBundle("demoiselle-core-bundle")); -// -// AuthorizationException exception = new AuthorizationException(""); -// PhaseId phaseId = PhaseId.RENDER_RESPONSE; -// -// expect(eventContext.getException()).andReturn(exception); -// expect(facesContext.getCurrentPhaseId()).andReturn(phaseId); -// -// handler.getWrapped().handle(); -// expectLastCall(); -// -// replayAll(); -// -// handler.handle(); -// -// assertFalse(events.isEmpty()); -// -// verifyAll(); -// -// } -// -// @Test -// public void testHandleAnyException() { -// -// Exception exception = new Exception(); -// PhaseId phaseId = PowerMock.createMock(PhaseId.class); -// -// expect(eventContext.getException()).andReturn(exception); -// expect(facesContext.getCurrentPhaseId()).andReturn(phaseId); -// -// handler.getWrapped().handle(); -// expectLastCall(); -// -// replayAll(); -// -// handler.handle(); -// -// assertFalse(events.isEmpty()); -// -// verifyAll(); -// -// } -// -//} +/* + * Demoiselle Framework + * Copyright (C) 2010 SERPRO + * ---------------------------------------------------------------------------- + * This file is part of Demoiselle Framework. + * + * Demoiselle Framework is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public License version 3 + * as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License version 3 + * along with this program; if not, see + * or write to the Free Software Foundation, Inc., 51 Franklin Street, + * Fifth Floor, Boston, MA 02110-1301, USA. + * ---------------------------------------------------------------------------- + * Este arquivo é parte do Framework Demoiselle. + * + * O Framework Demoiselle é um software livre; você pode redistribuí-lo e/ou + * modificá-lo dentro dos termos da GNU LGPL versão 3 como publicada pela Fundação + * do Software Livre (FSF). + * + * Este programa é distribuído na esperança que possa ser útil, mas SEM NENHUMA + * GARANTIA; sem uma garantia implícita de ADEQUAÇÃO a qualquer MERCADO ou + * APLICAÇÃO EM PARTICULAR. Veja a Licença Pública Geral GNU/LGPL em português + * para maiores detalhes. + * + * Você deve ter recebido uma cópia da GNU LGPL versão 3, sob o título + * "LICENCA.txt", junto com esse programa. Se não, acesse + * ou escreva para a Fundação do Software Livre (FSF) Inc., + * 51 Franklin St, Fifth Floor, Boston, MA 02111-1301, USA. + */ +package br.gov.frameworkdemoiselle.internal.implementation; + +import static junit.framework.Assert.assertFalse; +import static junit.framework.Assert.assertTrue; +import static org.easymock.EasyMock.expect; +import static org.powermock.api.easymock.PowerMock.createMock; +import static org.powermock.api.easymock.PowerMock.expectLastCall; +import static org.powermock.api.easymock.PowerMock.mockStatic; +import static org.powermock.api.easymock.PowerMock.replayAll; +import static org.powermock.api.easymock.PowerMock.verifyAll; + +import java.util.ArrayList; +import java.util.Collection; + +import javax.faces.context.ExceptionHandler; +import javax.faces.context.FacesContext; +import javax.faces.event.ExceptionQueuedEvent; +import javax.faces.event.ExceptionQueuedEventContext; +import javax.faces.event.PhaseId; + +import org.junit.Before; +import org.junit.Test; +import org.junit.runner.RunWith; +import org.powermock.api.easymock.PowerMock; +import org.powermock.core.classloader.annotations.PrepareForTest; +import org.powermock.modules.junit4.PowerMockRunner; + +import br.gov.frameworkdemoiselle.security.AuthorizationException; +import br.gov.frameworkdemoiselle.util.Faces; + +@RunWith(PowerMockRunner.class) +@PrepareForTest({ FacesContext.class, Faces.class }) +public class AuthorizationExceptionHandlerTest { + + private AuthorizationExceptionHandler handler; + + private ExceptionQueuedEventContext eventContext; + + private Collection events; + + private FacesContext facesContext; + + @Before + public void setUp() { + + mockStatic(FacesContext.class); + + events = new ArrayList(); + ExceptionHandler jsfExceptionHandler = createMock(ExceptionHandler.class); + handler = new AuthorizationExceptionHandler(jsfExceptionHandler); + eventContext = createMock(ExceptionQueuedEventContext.class); + ExceptionQueuedEvent event = createMock(ExceptionQueuedEvent.class); + facesContext = PowerMock.createMock(FacesContext.class); + + expect(event.getSource()).andReturn(eventContext); + events.add(event); + expect(handler.getUnhandledExceptionQueuedEvents()).andReturn(events).times(2); + expect(FacesContext.getCurrentInstance()).andReturn(facesContext).anyTimes(); + + + } + + @Test + public void testHandleAnAuthorizationExceptionNotOnRenderResponse() { + + mockStatic(Faces.class); + +// ResourceBundle bundle = new ResourceBundle(ResourceBundle.getBundle("demoiselle-core-bundle")); + + AuthorizationException exception = new AuthorizationException(""); + PhaseId phaseId = PowerMock.createMock(PhaseId.class); + + expect(eventContext.getException()).andReturn(exception); + expect(facesContext.getCurrentPhaseId()).andReturn(phaseId); + + Faces.addMessage(exception); + expectLastCall(); + + replayAll(); + + handler.handle(); + + assertTrue(events.isEmpty()); + + verifyAll(); + + } + + @Test + public void testHandleAnAuthorizationExceptionOnRenderResponse() { + +// ResourceBundle bundle = new ResourceBundle(ResourceBundle.getBundle("demoiselle-core-bundle")); + + AuthorizationException exception = new AuthorizationException(""); + PhaseId phaseId = PhaseId.RENDER_RESPONSE; + + expect(eventContext.getException()).andReturn(exception); + expect(facesContext.getCurrentPhaseId()).andReturn(phaseId); + + handler.getWrapped().handle(); + expectLastCall(); + + replayAll(); + + handler.handle(); + + assertFalse(events.isEmpty()); + + verifyAll(); + + } + + @Test + public void testHandleAnyException() { + + Exception exception = new Exception(); + PhaseId phaseId = PowerMock.createMock(PhaseId.class); + + expect(eventContext.getException()).andReturn(exception); + expect(facesContext.getCurrentPhaseId()).andReturn(phaseId); + + handler.getWrapped().handle(); + expectLastCall(); + + replayAll(); + + handler.handle(); + + assertFalse(events.isEmpty()); + + verifyAll(); + + } + +} diff --git a/impl/extension/jsf/src/test/java/br/gov/frameworkdemoiselle/internal/implementation/FileRendererImplTest.java b/impl/extension/jsf/src/test/java/br/gov/frameworkdemoiselle/internal/implementation/FileRendererImplTest.java index f214f63..2b1a5d5 100644 --- a/impl/extension/jsf/src/test/java/br/gov/frameworkdemoiselle/internal/implementation/FileRendererImplTest.java +++ b/impl/extension/jsf/src/test/java/br/gov/frameworkdemoiselle/internal/implementation/FileRendererImplTest.java @@ -35,7 +35,7 @@ * 51 Franklin St, Fifth Floor, Boston, MA 02111-1301, USA. */ package br.gov.frameworkdemoiselle.internal.implementation; -import org.junit.Ignore; + import java.io.IOException; import javax.faces.context.FacesContext; @@ -57,7 +57,7 @@ import org.slf4j.Logger; import br.gov.frameworkdemoiselle.util.Faces; import br.gov.frameworkdemoiselle.util.FileRenderer; import br.gov.frameworkdemoiselle.util.FileRenderer.ContentType; -@Ignore + @RunWith(PowerMockRunner.class) @PrepareForTest({ Faces.class }) public class FileRendererImplTest { diff --git a/impl/extension/jsf/src/test/java/br/gov/frameworkdemoiselle/internal/producer/FacesContextProducerTest.java b/impl/extension/jsf/src/test/java/br/gov/frameworkdemoiselle/internal/producer/FacesContextProducerTest.java index 25c99d4..cda16b3 100644 --- a/impl/extension/jsf/src/test/java/br/gov/frameworkdemoiselle/internal/producer/FacesContextProducerTest.java +++ b/impl/extension/jsf/src/test/java/br/gov/frameworkdemoiselle/internal/producer/FacesContextProducerTest.java @@ -35,7 +35,6 @@ * 51 Franklin St, Fifth Floor, Boston, MA 02111-1301, USA. */ package br.gov.frameworkdemoiselle.internal.producer; -import org.junit.Ignore; import static org.easymock.EasyMock.expect; import static org.junit.Assert.assertEquals; import static org.junit.Assert.fail; @@ -53,7 +52,6 @@ import org.powermock.api.easymock.PowerMock; import org.powermock.core.classloader.annotations.PrepareForTest; import org.powermock.modules.junit4.PowerMockRunner; -@Ignore @RunWith(PowerMockRunner.class) @PrepareForTest({ FacesContext.class }) public class FacesContextProducerTest { diff --git a/impl/extension/jsf/src/test/java/br/gov/frameworkdemoiselle/template/AbstractEditPageBeanTest.java b/impl/extension/jsf/src/test/java/br/gov/frameworkdemoiselle/template/AbstractEditPageBeanTest.java index a3959b9..fb605a3 100644 --- a/impl/extension/jsf/src/test/java/br/gov/frameworkdemoiselle/template/AbstractEditPageBeanTest.java +++ b/impl/extension/jsf/src/test/java/br/gov/frameworkdemoiselle/template/AbstractEditPageBeanTest.java @@ -35,7 +35,7 @@ * 51 Franklin St, Fifth Floor, Boston, MA 02111-1301, USA. */ package br.gov.frameworkdemoiselle.template; -import org.junit.Ignore; + import static org.easymock.EasyMock.expect; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertFalse; @@ -70,7 +70,7 @@ import br.gov.frameworkdemoiselle.util.Reflections; import br.gov.frameworkdemoiselle.util.ResourceBundle; import com.sun.faces.util.Util; -@Ignore + @RunWith(PowerMockRunner.class) @PrepareForTest({ Parameter.class, Beans.class, Reflections.class, Converter.class, FacesContext.class, Util.class, Faces.class }) diff --git a/impl/extension/jsf/src/test/java/br/gov/frameworkdemoiselle/template/AbstractListPageBeanTest.java b/impl/extension/jsf/src/test/java/br/gov/frameworkdemoiselle/template/AbstractListPageBeanTest.java index 9cc5f1f..14d3d58 100644 --- a/impl/extension/jsf/src/test/java/br/gov/frameworkdemoiselle/template/AbstractListPageBeanTest.java +++ b/impl/extension/jsf/src/test/java/br/gov/frameworkdemoiselle/template/AbstractListPageBeanTest.java @@ -162,6 +162,21 @@ public class AbstractListPageBeanTest { verifyAll(); } + @Test + public void testClearSelection() { + pageBean.clearSelection(); + assertEquals(true, pageBean.getSelectedList().isEmpty()); + } + + @Test + public void testGetSelectedList() { + Map map = new HashMap(); + map.put(1L, true); + map.put(2L, true); + pageBean.setSelection(map); + assertEquals(2, pageBean.getSelectedList().size()); + } + } @SuppressWarnings("serial") diff --git a/impl/extension/jsf/src/test/java/br/gov/frameworkdemoiselle/template/AbstractPageTest.java b/impl/extension/jsf/src/test/java/br/gov/frameworkdemoiselle/template/AbstractPageTest.java index 7c3b3a1..51183a8 100644 --- a/impl/extension/jsf/src/test/java/br/gov/frameworkdemoiselle/template/AbstractPageTest.java +++ b/impl/extension/jsf/src/test/java/br/gov/frameworkdemoiselle/template/AbstractPageTest.java @@ -35,7 +35,7 @@ * 51 Franklin St, Fifth Floor, Boston, MA 02111-1301, USA. */ package br.gov.frameworkdemoiselle.template; -import org.junit.Ignore; + import static org.easymock.EasyMock.expect; import static org.junit.Assert.assertEquals; import static org.powermock.api.easymock.PowerMock.replayAll; @@ -55,7 +55,7 @@ import org.powermock.reflect.Whitebox; import br.gov.frameworkdemoiselle.annotation.NextView; import br.gov.frameworkdemoiselle.annotation.PreviousView; import br.gov.frameworkdemoiselle.message.MessageContext; -@Ignore + @RunWith(PowerMockRunner.class) @PrepareForTest({ MessageContext.class }) public class AbstractPageTest { diff --git a/impl/extension/jsf/src/test/java/br/gov/frameworkdemoiselle/util/FacesTest.java b/impl/extension/jsf/src/test/java/br/gov/frameworkdemoiselle/util/FacesTest.java index e5a7e44..b0a5fee 100644 --- a/impl/extension/jsf/src/test/java/br/gov/frameworkdemoiselle/util/FacesTest.java +++ b/impl/extension/jsf/src/test/java/br/gov/frameworkdemoiselle/util/FacesTest.java @@ -35,7 +35,7 @@ * 51 Franklin St, Fifth Floor, Boston, MA 02111-1301, USA. */ package br.gov.frameworkdemoiselle.util; -import org.junit.Ignore; + import static junit.framework.Assert.assertEquals; import static org.easymock.EasyMock.expect; import static org.powermock.api.easymock.PowerMock.replayAll; @@ -66,7 +66,7 @@ import br.gov.frameworkdemoiselle.message.Message; import br.gov.frameworkdemoiselle.message.SeverityType; import com.sun.faces.util.Util; -@Ignore + @RunWith(PowerMockRunner.class) @PrepareForTest({ Beans.class, Strings.class, Converter.class, Util.class, ResourceBundle.class }) public class FacesTest { @@ -184,7 +184,7 @@ public class FacesTest { expect(Beans.getReference(FacesContext.class)).andReturn(facesContext); expect(facesContext.getApplication()).andReturn(application); expect(application.createConverter(getClass())).andReturn(converter); - + replayAll(); assertEquals(converter, faces.getConverter(getClass())); verifyAll(); -- libgit2 0.21.2