From b06f2524df69112cb07598be9ad5e14ae9aff869 Mon Sep 17 00:00:00 2001 From: Wilson GuimarĂ£es Date: Wed, 11 Jan 2012 13:38:06 -0300 Subject: [PATCH] Aumento da cobertura de testes. --- impl/core/src/main/java/br/gov/frameworkdemoiselle/internal/interceptor/RequiredRoleInterceptor.java | 9 +-------- impl/core/src/test/java/br/gov/frameworkdemoiselle/message/DefaultMessageTest.java | 3 --- impl/core/src/test/java/br/gov/frameworkdemoiselle/template/DelegateCrudTest.java | 6 ++++-- impl/core/src/test/java/br/gov/frameworkdemoiselle/util/ResourceBundleTest.java | 114 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-------------------------------- 4 files changed, 87 insertions(+), 45 deletions(-) diff --git a/impl/core/src/main/java/br/gov/frameworkdemoiselle/internal/interceptor/RequiredRoleInterceptor.java b/impl/core/src/main/java/br/gov/frameworkdemoiselle/internal/interceptor/RequiredRoleInterceptor.java index f4e268d..420fe26 100644 --- a/impl/core/src/main/java/br/gov/frameworkdemoiselle/internal/interceptor/RequiredRoleInterceptor.java +++ b/impl/core/src/main/java/br/gov/frameworkdemoiselle/internal/interceptor/RequiredRoleInterceptor.java @@ -94,7 +94,6 @@ public class RequiredRoleInterceptor implements Serializable { */ @AroundInvoke public Object manage(final InvocationContext ic) throws Exception { - List roles = getRoles(ic); if (securityContext.get().isLoggedIn()) { @@ -120,7 +119,6 @@ public class RequiredRoleInterceptor implements Serializable { logger.debug(bundle.getString("user-has-role", securityContext.get().getUser().getId(), userRoles)); return ic.proceed(); - } /** @@ -131,22 +129,17 @@ public class RequiredRoleInterceptor implements Serializable { * @return the value defined in {@code @RequiredRole} annotation */ private List getRoles(InvocationContext ic) { - String[] roles = {}; if (ic.getMethod().getAnnotation(RequiredRole.class) == null) { - if (ic.getTarget().getClass().getAnnotation(RequiredRole.class) != null) { roles = ic.getTarget().getClass().getAnnotation(RequiredRole.class).value(); } - } else { - roles = ic.getMethod().getAnnotation(RequiredRole.class).value(); - } return Arrays.asList(roles); - } + } diff --git a/impl/core/src/test/java/br/gov/frameworkdemoiselle/message/DefaultMessageTest.java b/impl/core/src/test/java/br/gov/frameworkdemoiselle/message/DefaultMessageTest.java index 4016eca..484bb1d 100644 --- a/impl/core/src/test/java/br/gov/frameworkdemoiselle/message/DefaultMessageTest.java +++ b/impl/core/src/test/java/br/gov/frameworkdemoiselle/message/DefaultMessageTest.java @@ -93,7 +93,6 @@ public class DefaultMessageTest { @Test public void testDefaultSeverity() { - message = new DefaultMessage(null); assertEquals(SeverityType.INFO, message.getSeverity()); @@ -253,7 +252,6 @@ public class DefaultMessageTest { // @Test public void testErrorMessagesEnum() { - message = ErrorMessages.FIRST_ERROR_KEY; assertEquals(SeverityType.ERROR, message.getSeverity()); assertEquals("First error message text", message.getText()); @@ -283,7 +281,6 @@ public class DefaultMessageTest { // @Test public void testMessagesInterface() { - message = MessagesInterface.FIRST_KEY; assertEquals(SeverityType.INFO, message.getSeverity()); assertEquals("First message text", message.getText()); diff --git a/impl/core/src/test/java/br/gov/frameworkdemoiselle/template/DelegateCrudTest.java b/impl/core/src/test/java/br/gov/frameworkdemoiselle/template/DelegateCrudTest.java index 9d11765..eb651c1 100644 --- a/impl/core/src/test/java/br/gov/frameworkdemoiselle/template/DelegateCrudTest.java +++ b/impl/core/src/test/java/br/gov/frameworkdemoiselle/template/DelegateCrudTest.java @@ -82,11 +82,13 @@ public class DelegateCrudTest { expect(Beans.getReference(EasyMock.anyObject(Class.class))).andReturn(mockCrud); mockCrud.delete(1L); - replayAll(Reflections.class, Beans.class, mockCrud); + PowerMock.expectLastCall(); + + PowerMock.replay(Reflections.class, Beans.class, mockCrud); delegateCrud.delete(1L); - verifyAll(); + PowerMock.verify(); } @Test diff --git a/impl/core/src/test/java/br/gov/frameworkdemoiselle/util/ResourceBundleTest.java b/impl/core/src/test/java/br/gov/frameworkdemoiselle/util/ResourceBundleTest.java index b8dc622..ce33769 100644 --- a/impl/core/src/test/java/br/gov/frameworkdemoiselle/util/ResourceBundleTest.java +++ b/impl/core/src/test/java/br/gov/frameworkdemoiselle/util/ResourceBundleTest.java @@ -36,57 +36,107 @@ */ package br.gov.frameworkdemoiselle.util; -import static org.easymock.EasyMock.expect; -import static org.powermock.api.easymock.PowerMock.replay; -import static org.powermock.api.easymock.PowerMock.verify; +import static org.easymock.EasyMock.createMock; +import static org.easymock.EasyMock.replay; +import static org.easymock.EasyMock.verify; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertFalse; +import static org.junit.Assert.assertNull; +import static org.junit.Assert.assertTrue; + +import java.util.Enumeration; +import java.util.ListResourceBundle; + +import junit.framework.Assert; import org.junit.Before; import org.junit.Test; -import org.junit.runner.RunWith; -import org.powermock.api.easymock.PowerMock; -import org.powermock.modules.junit4.PowerMockRunner; -@RunWith(PowerMockRunner.class) public class ResourceBundleTest { + /** + * This is a workaround to mock java.util.ResourceBundle. Since getString(key) method is defined as final, there is + * no way to extend and override it. For that reason, setting expectations (i.e. expect(...)) won't work. + */ + class MockResourceBundle extends ListResourceBundle { + + private Object[][] contents = new Object[][] { { "msgWithoutParams", "no params" }, + { "msgWithParams", "params: {0}, {1}" } }; + + protected Object[][] getContents() { + return contents; + } + + }; + private ResourceBundle resourceBundle; - private transient java.util.ResourceBundle resourceBundleMocked; + + private java.util.ResourceBundle mockResourceBundle; @Before public void setUp() throws Exception { - this.resourceBundleMocked = PowerMock.createMock(java.util.ResourceBundle.class); - this.resourceBundle = new ResourceBundle(resourceBundleMocked); + mockResourceBundle = new MockResourceBundle(); + resourceBundle = new ResourceBundle(mockResourceBundle); } - + @Test - public void testContainsKey() { - expect(this.resourceBundleMocked.containsKey("")).andReturn(true); - replay(this.resourceBundleMocked); - this.resourceBundle.containsKey(""); - verify(this.resourceBundleMocked); + public void containsKey() { + assertTrue(resourceBundle.containsKey("msgWithoutParams")); + + assertFalse(resourceBundle.containsKey("inexistentKey")); } - + @Test - public void testGetKeys() { - expect(this.resourceBundleMocked.getKeys()).andReturn(null); - replay(this.resourceBundleMocked); - this.resourceBundle.getKeys(); - verify(this.resourceBundleMocked); + public void getKeys() { + int keyCount = 0; + + Enumeration e = resourceBundle.getKeys(); + + while (e.hasMoreElements()) { + keyCount++; + e.nextElement(); + } + + assertEquals(resourceBundle.keySet().size(), keyCount); } - + @Test public void testGetLocale() { - expect(this.resourceBundleMocked.getLocale()).andReturn(null); - replay(this.resourceBundleMocked); - this.resourceBundle.getLocale(); - verify(this.resourceBundleMocked); + assertNull(resourceBundle.getLocale()); } - + @Test public void testKeySet() { - expect(this.resourceBundleMocked.keySet()).andReturn(null); - replay(this.resourceBundleMocked); - this.resourceBundle.keySet(); - verify(this.resourceBundleMocked); + assertEquals(2, resourceBundle.keySet().size()); } + + @Test + public void getString() { + assertEquals("no params", resourceBundle.getString("msgWithoutParams")); + + assertEquals("params: a, b", resourceBundle.getString("msgWithParams", "a", "b")); + + assertEquals("params: {0}, {1}", resourceBundle.getString("msgWithParams")); + } + + /** + * For this test, java.util.ResourceBundle is mocked to force an exception. Since the getString method is called + * from the actual ResourceBundle, not from the mock, it tries to find a handleGetObject method that doesn't exist. + * + * @throws Exception + */ + @Test(expected = RuntimeException.class) + public void getStringWhenHandleGetObjectThrowsException() { + mockResourceBundle = createMock(java.util.ResourceBundle.class); + resourceBundle = new ResourceBundle(mockResourceBundle); + + replay(mockResourceBundle); + + resourceBundle.getString("msgWithParams"); + + verify(mockResourceBundle); + + Assert.fail(); + } + } -- libgit2 0.21.2