Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'org.eclipse.gemini.mgmt.tests/src/org/eclipse/gemini/mgmt/DefaultObjectNameTranslatorTest.java')
-rwxr-xr-xorg.eclipse.gemini.mgmt.tests/src/org/eclipse/gemini/mgmt/DefaultObjectNameTranslatorTest.java74
1 files changed, 65 insertions, 9 deletions
diff --git a/org.eclipse.gemini.mgmt.tests/src/org/eclipse/gemini/mgmt/DefaultObjectNameTranslatorTest.java b/org.eclipse.gemini.mgmt.tests/src/org/eclipse/gemini/mgmt/DefaultObjectNameTranslatorTest.java
index 2f8855d..4485ef8 100755
--- a/org.eclipse.gemini.mgmt.tests/src/org/eclipse/gemini/mgmt/DefaultObjectNameTranslatorTest.java
+++ b/org.eclipse.gemini.mgmt.tests/src/org/eclipse/gemini/mgmt/DefaultObjectNameTranslatorTest.java
@@ -14,6 +14,8 @@ package org.eclipse.gemini.mgmt;
import java.util.Dictionary;
import java.util.Hashtable;
+import org.junit.After;
+import org.junit.Before;
import org.junit.Test;
import org.junit.Assert;
import org.osgi.framework.Bundle;
@@ -21,18 +23,72 @@ import org.osgi.framework.BundleContext;
import org.easymock.EasyMock;
public class DefaultObjectNameTranslatorTest {
-
+
+ private static final ClassNotFoundException TEST_CLASS_NOT_FOUND_EXCEPTION = new ClassNotFoundException("Test");
+
+ private static final String TEST_OBJECT_NAME_TRANSLATOR_CLASS_NAME = TestObjectNameTranslator.class.getName();
+
+ private static final String UNLOADABLE_CLASS_NAME = "BAD";
+
+ private static final String UNINSTANTIABLE_OBJECT_NAME_TRANSLATOR_CLASS_NAME = UninstantiableObjectNameTranslator.class.getName();
+
+ private BundleContext mockBundleContext;
+
+ private Bundle mockBundle;
+
+ private Dictionary<String, String> headers;
+
+ @Before
+ public void setUp() throws Exception {
+ mockBundleContext = EasyMock.createMock(BundleContext.class);
+ mockBundle = EasyMock.createMock(Bundle.class);
+ headers = new Hashtable<String, String>();
+ EasyMock.expect(mockBundleContext.getBundle()).andReturn(mockBundle);
+ EasyMock.expect(mockBundle.getHeaders()).andReturn(headers);
+ }
+
+ private void replayMocks() {
+ EasyMock.replay(mockBundleContext, mockBundle);
+ }
+
+ @After
+ public void tearDown() {
+ EasyMock.verify(mockBundleContext, mockBundle);
+ }
+
@Test
public void testDefaultObjectNameTranslator() throws Exception {
- BundleContext bundleContext = EasyMock.createMock(BundleContext.class);
- Bundle bundle = EasyMock.createMock(Bundle.class);
- EasyMock.expect(bundleContext.getBundle()).andReturn(bundle);
- Dictionary<String, String> headers = new Hashtable<String, String>();
- EasyMock.expect(bundle.getHeaders()).andReturn(headers);
- EasyMock.replay(bundleContext, bundle);
- ObjectNameTranslator defaultObjectNameTranslator = DefaultObjectNameTranslator.initialiseObjectNameTranslator(bundleContext);
+ replayMocks();
+ ObjectNameTranslator defaultObjectNameTranslator = DefaultObjectNameTranslator.initialiseObjectNameTranslator(mockBundleContext);
Assert.assertTrue("Default ObjectNameTranslator has the wrong type", defaultObjectNameTranslator instanceof DefaultObjectNameTranslator);
- EasyMock.verify(bundleContext, bundle);
+ }
+
+ @SuppressWarnings("rawtypes")
+ @Test
+ public void testConfiguredObjectNameTranslator() throws Exception {
+ EasyMock.expect((Class) mockBundle.loadClass(TEST_OBJECT_NAME_TRANSLATOR_CLASS_NAME)).andReturn(TestObjectNameTranslator.class);
+ replayMocks();
+ headers.put(ObjectNameTranslator.HEADER_NAME, TEST_OBJECT_NAME_TRANSLATOR_CLASS_NAME);
+ ObjectNameTranslator testObjectNameTranslator = DefaultObjectNameTranslator.initialiseObjectNameTranslator(mockBundleContext);
+ Assert.assertTrue("Test ObjectNameTranslator has the wrong type", testObjectNameTranslator instanceof TestObjectNameTranslator);
+ }
+
+ @SuppressWarnings("rawtypes")
+ @Test(expected = ClassNotFoundException.class)
+ public void testUnloadableObjectNameTranslator() throws Exception {
+ EasyMock.expect((Class) mockBundle.loadClass(UNLOADABLE_CLASS_NAME)).andThrow(TEST_CLASS_NOT_FOUND_EXCEPTION);
+ replayMocks();
+ headers.put(ObjectNameTranslator.HEADER_NAME, UNLOADABLE_CLASS_NAME);
+ DefaultObjectNameTranslator.initialiseObjectNameTranslator(mockBundleContext);
+ }
+
+ @SuppressWarnings("rawtypes")
+ @Test(expected = IllegalAccessException.class)
+ public void testUninstantiableObjectNameTranslator() throws Exception {
+ EasyMock.expect((Class) mockBundle.loadClass(UNINSTANTIABLE_OBJECT_NAME_TRANSLATOR_CLASS_NAME)).andReturn(UninstantiableObjectNameTranslator.class);
+ replayMocks();
+ headers.put(ObjectNameTranslator.HEADER_NAME, UNINSTANTIABLE_OBJECT_NAME_TRANSLATOR_CLASS_NAME);
+ DefaultObjectNameTranslator.initialiseObjectNameTranslator(mockBundleContext);
}
} \ No newline at end of file

Back to the top