/* * Copyright (C) 2006-2016 DLR, Germany * * All rights reserved * * http://www.rcenvironment.de/ */ package de.rcenvironment.core.component.registration.internal; import java.util.Dictionary; import java.util.Hashtable; import junit.framework.TestCase; import org.easymock.EasyMock; import org.osgi.framework.Bundle; import org.osgi.framework.BundleEvent; import de.rcenvironment.core.component.api.ComponentConstants; import de.rcenvironment.core.configuration.CommandLineArguments; /** * Test cases for {@link ComponentBundleListener}. * * @author Doreen Seider */ public class ComponentBundleListenerTest extends TestCase { /** Constant. */ private static final String BUNDLE_NAME = "bundle"; /** Class under test. */ private ComponentBundleListener listener; @Override public void setUp() throws Exception { listener = new ComponentBundleListener(); CommandLineArguments.initialize(new String[0]); } /** * Test. */ @SuppressWarnings({ "rawtypes", "unchecked" }) public void testBundleChanged() { CommandLineArguments.initialize(new String[0]); // RCE-Component bundle is installed Bundle bundle = EasyMock.createNiceMock(Bundle.class); EasyMock.expect(bundle.getSymbolicName()).andReturn(BUNDLE_NAME); Dictionary dict = new Hashtable(); dict.put(ComponentConstants.MANIFEST_ENTRY_RCE_COMPONENT, Boolean.valueOf(true).toString()); EasyMock.expect(bundle.getHeaders()).andReturn(dict); EasyMock.replay(bundle); listener.bundleChanged(new BundleEvent(BundleEvent.INSTALLED, bundle)); // non-RCE-Component bundle is installed // strict mock in order to throw an exception if bundle.start() will be called, // which would be incorrect bundle = EasyMock.createStrictMock(Bundle.class); dict.remove(ComponentConstants.MANIFEST_ENTRY_RCE_COMPONENT); dict.put(ComponentConstants.MANIFEST_ENTRY_RCE_COMPONENT, Boolean.valueOf(false).toString()); EasyMock.expect(bundle.getHeaders()).andReturn(dict); EasyMock.replay(bundle); listener.bundleChanged(new BundleEvent(BundleEvent.INSTALLED, bundle)); // non-RCE-Component bundle is installed // strict mock in order to throw an exception if bundle.start() will be called, // which would be incorrect bundle = EasyMock.createStrictMock(Bundle.class); dict.remove(ComponentConstants.MANIFEST_ENTRY_RCE_COMPONENT); EasyMock.expect(bundle.getHeaders()).andReturn(dict); EasyMock.replay(bundle); listener.bundleChanged(new BundleEvent(BundleEvent.INSTALLED, bundle)); // RCE-Component bundle is started // strict mock in order to throw an exception if bundle.start() will be called, // which would be incorrect bundle = EasyMock.createStrictMock(Bundle.class); dict.remove(ComponentConstants.MANIFEST_ENTRY_RCE_COMPONENT); dict.put(ComponentConstants.MANIFEST_ENTRY_RCE_COMPONENT, Boolean.valueOf(true).toString()); EasyMock.expect(bundle.getHeaders()).andReturn(dict); EasyMock.replay(bundle); listener.bundleChanged(new BundleEvent(BundleEvent.STARTED, bundle)); CommandLineArguments.initialize(new String[] { "--disable-components" }); // RCE-Component bundle is installed // strict mock in order to throw an exception if bundle.start() will be called, // which would be incorrect bundle = EasyMock.createStrictMock(Bundle.class); EasyMock.expect(bundle.getSymbolicName()).andReturn(BUNDLE_NAME); dict = new Hashtable(); dict.put(ComponentConstants.MANIFEST_ENTRY_RCE_COMPONENT, Boolean.valueOf(true).toString()); EasyMock.expect(bundle.getHeaders()).andReturn(dict); EasyMock.replay(bundle); listener.bundleChanged(new BundleEvent(BundleEvent.INSTALLED, bundle)); } }