blob: 8b8c4b4a2dd4f6e5418ca1af041b0f4534dfec93 [file] [log] [blame]
package org.eclipse.virgo.management.fragment;
import static org.junit.Assert.assertEquals;
import java.util.Hashtable;
import javax.management.MalformedObjectNameException;
import javax.management.ObjectName;
import org.easymock.EasyMock;
import org.eclipse.equinox.region.Region;
import org.eclipse.equinox.region.RegionDigraph;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import org.osgi.framework.Bundle;
import org.osgi.framework.BundleContext;
import org.osgi.framework.ServiceReference;
public class VirgoObjectNameTranslatorTests {
private static final String MOCK_REGION_NAME = "testRegion";
private ObjectName testObjectName;
private ObjectName testObjectNameTranslation;
private BundleContext mockContext;
private ServiceReference<RegionDigraph> mockServiceReference;
private Bundle mockBundle;
private RegionDigraph mockRegionDigraph;
private Region mockRegion;
@SuppressWarnings("unchecked")
@Before
public void setup() throws MalformedObjectNameException, NullPointerException{
Hashtable<String, String> table = new Hashtable<String, String>();
table.put("testKey", "testValue");
testObjectName = ObjectName.getInstance("testDomain", table);
table.put("region", MOCK_REGION_NAME);
testObjectNameTranslation = ObjectName.getInstance("testDomain", table);
mockContext = EasyMock.createMock(BundleContext.class);
mockServiceReference = (ServiceReference<RegionDigraph>) EasyMock.createMock(ServiceReference.class);
mockBundle = EasyMock.createMock(Bundle.class);
mockRegionDigraph = EasyMock.createMock(RegionDigraph.class);
mockRegion = EasyMock.createMock(Region.class);
EasyMock.expect(mockContext.getServiceReference(RegionDigraph.class)).andReturn(mockServiceReference);
EasyMock.expect(mockContext.getService(mockServiceReference)).andReturn(mockRegionDigraph);
EasyMock.expect(mockContext.getBundle()).andReturn(mockBundle);
EasyMock.expect(mockBundle.getBundleId()).andReturn(5l);
EasyMock.expect(mockRegionDigraph.getRegion(5l)).andReturn(mockRegion);
EasyMock.expect(mockRegion.getName()).andReturn(MOCK_REGION_NAME);
}
private void replayMocks() {
EasyMock.replay(mockContext, mockServiceReference, mockBundle, mockRegionDigraph, mockRegion);
}
@After
public void tearDown() {
EasyMock.verify(mockContext, mockServiceReference, mockBundle, mockRegionDigraph, mockRegion);
}
@Test
public void test() {
replayMocks();
VirgoObjectNameTranslator virgoObjectNameTranslator = new VirgoObjectNameTranslator(mockContext);
ObjectName translatedObjectName = virgoObjectNameTranslator.translate(testObjectName);
assertEquals(testObjectNameTranslation, translatedObjectName);
}
}