blob: 40b40c5de46c7baceb01886084d799b2e213095c [file] [log] [blame]
/**
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing,
* software distributed under the License is distributed on an
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
* KIND, either express or implied. See the License for the
* specific language governing permissions and limitations
* under the License.
*/
package org.apache.cxf.dosgi.dsw.hooks;
import org.junit.Assert;
import org.junit.Test;
public class CxfPublishHookTest extends Assert {
@Test
public void testDUMMY() throws Exception {
}
//
// private IMocksControl control;
//
// @Before
// public void setUp() {
// control = EasyMock.createNiceControl();
// }
//
// @Test
// public void testPublishSingleInterface() throws Exception {
// String[] serviceNames = new String[]{TestService.class.getName()};
// String[] addresses = new String[]{"http://localhost:9000/hello"};
// doTestPublishHook("remote-services.xml", serviceNames, addresses);
// }
//
// @Test
// public void testPublishSingleInterfaceAltFormat() throws Exception {
// String[] serviceNames = new String[]{TestService.class.getName()};
// String[] addresses = new String[]{"http://localhost:9000/hello"};
// doTestPublishHook("alt-remote-services.xml", serviceNames, addresses);
// }
//
// @Test
// public void testPublishMultiInterface() throws Exception {
// String[] serviceNames = new String[]{TestService.class.getName(),
// AdditionalInterface.class.getName()};
// String[] addresses = new String[]{"http://localhost:9001/hello",
// "http://localhost:9002/hello"};
// doTestPublishHook("multi-services.xml", serviceNames, addresses);
// }
//
// @SuppressWarnings("unchecked")
// private void doTestPublishHook(String remoteServices,
// String[] serviceNames,
// String[] addresses) throws Exception {
//
// Bundle bundle = control.createMock(Bundle.class);
// bundle.findEntries(EasyMock.eq("OSGI-INF/remote-service"),
// EasyMock.eq("*.xml"), EasyMock.anyBoolean());
// EasyMock.expectLastCall().andReturn(Collections.enumeration(
// Arrays.asList(getClass().getResource("/OSGI-INF/remote-service/" + remoteServices))));
// Dictionary<String, String> bundleHeaders = new Hashtable<String, String>();
// bundleHeaders.put(org.osgi.framework.Constants.BUNDLE_NAME,
// "Test Bundle");
// bundleHeaders.put(org.osgi.framework.Constants.BUNDLE_VERSION,
// "1.0.0");
// bundle.getHeaders();
// EasyMock.expectLastCall().andReturn(bundleHeaders).anyTimes();
// BundleContext requestingContext = control.createMock(BundleContext.class);
// bundle.getBundleContext();
// EasyMock.expectLastCall().andReturn(requestingContext).anyTimes();
//
// TestService serviceObject = new TestServiceImpl();
// Dictionary serviceProps = new Hashtable();
//
// ServiceReference sref = control.createMock(ServiceReference.class);
// sref.getBundle();
// EasyMock.expectLastCall().andReturn(bundle).anyTimes();
// sref.getProperty(Constants.OBJECTCLASS);
// EasyMock.expectLastCall().andReturn(serviceNames).anyTimes();
// sref.getPropertyKeys();
// EasyMock.expectLastCall().andReturn(new String[]{}).anyTimes();
//
// BundleTestContext dswContext = new BundleTestContext(bundle);
//
// ServiceRegistration[] serviceRegistrations =
// new ServiceRegistration[serviceNames.length];
//
// for (int i = 0; i < serviceNames.length ; i++) {
// serviceRegistrations[i] =
// control.createMock(ServiceRegistration.class);
// dswContext.addServiceRegistration(serviceNames[i],
// serviceRegistrations[i]);
// dswContext.addServiceReference(serviceNames[i], sref);
// }
// dswContext.registerService(serviceNames, serviceObject, serviceProps);
//
// Server server = control.createMock(Server.class);
//
// String publicationClass = ServicePublication.class.getName();
// ServiceRegistration publicationRegistration =
// control.createMock(ServiceRegistration.class);
// publicationRegistration.unregister();
// EasyMock.expectLastCall().times(serviceNames.length);
// dswContext.addServiceRegistration(publicationClass, publicationRegistration);
// ServiceReference publicationReference =
// control.createMock(ServiceReference.class);
// dswContext.addServiceReference(publicationClass, publicationReference);
// control.replay();
//
// TestPublishHook hook = new TestPublishHook(dswContext,
// serviceObject,
// server);
// hook.publishEndpoint(sref);
// hook.verify();
//
// assertEquals(1, hook.getEndpoints().size());
// List<EndpointInfo> list = hook.getEndpoints().get(sref);
// assertNotNull(list);
// assertEquals(serviceNames.length, list.size());
// for (int i = 0; i < serviceNames.length; i++) {
// assertNotNull(list.get(i));
// ServiceEndpointDescription sd = list.get(i).getServiceDescription();
// assertNotNull(sd);
// assertNotNull(sd.getProvidedInterfaces());
// assertEquals(1, sd.getProvidedInterfaces().size());
// Collection names = sd.getProvidedInterfaces();
// assertEquals(1, names.size());
// assertEquals(serviceNames[i], names.toArray()[0]);
// String excludeProp = "osgi.remote.interfaces";
// assertNull(sd.getProperties().get(excludeProp));
// String addrProp =
// org.apache.cxf.dosgi.dsw.Constants.WS_ADDRESS_PROPERTY_OLD;
// assertEquals(addresses[i], sd.getProperties().get(addrProp));
// }
//
// Map<String, ServiceRegistration> registeredRegs =
// dswContext.getRegisteredRegistrations();
// assertNotNull(registeredRegs);
// assertEquals(serviceNames.length + 1, registeredRegs.size());
// assertNotNull(registeredRegs.get(publicationClass));
// assertSame(publicationRegistration, registeredRegs.get(publicationClass));
//
// Map<String, List<Dictionary>> registeredProps =
// dswContext.getRegisteredProperties();
// assertNotNull(registeredProps);
// assertEquals(serviceNames.length + 1, registeredProps.size());
// assertNotNull(registeredProps.get(publicationClass));
// List<Dictionary> propsList = registeredProps.get(publicationClass);
// assertEquals(serviceNames.length, propsList.size());
// for (Dictionary props : propsList) {
// Collection interfaces =
// (Collection)props.get(SERVICE_INTERFACE_NAME);
// assertNotNull(interfaces);
// assertTrue(interfaces.contains(TestService.class.getName())
// || interfaces.contains(AdditionalInterface.class.getName()));
// }
//
// hook.removeEndpoints();
//
// control.verify();
// }
//
// @SuppressWarnings("unchecked")
// @Test
// public void testPublishMultipleTimes() {
// Bundle bundle = control.createMock(Bundle.class);
// bundle.findEntries(EasyMock.eq("OSGI-INF/remote-service"),
// EasyMock.eq("*.xml"), EasyMock.anyBoolean());
// EasyMock.expectLastCall().andAnswer(new IAnswer<Object>() {
// public Object answer() throws Throwable {
// return Collections.enumeration(Arrays.asList(
// getClass().getResource("/OSGI-INF/remote-service/remote-services.xml")));
// }
// }).anyTimes();
// Dictionary<String, String> bundleHeaders = new Hashtable<String, String>();
// bundleHeaders.put(org.osgi.framework.Constants.BUNDLE_NAME,
// "org.apache.cxf.example.bundle");
// bundleHeaders.put(org.osgi.framework.Constants.BUNDLE_VERSION,
// "1.0.0");
// bundle.getHeaders();
// EasyMock.expectLastCall().andReturn(bundleHeaders).anyTimes();
// BundleContext requestingContext = control.createMock(BundleContext.class);
// bundle.getBundleContext();
// EasyMock.expectLastCall().andReturn(requestingContext).anyTimes();
//
// TestService serviceObject = new TestServiceImpl();
// Dictionary serviceProps = new Hashtable();
//
// ServiceReference sref = control.createMock(ServiceReference.class);
// sref.getBundle();
// EasyMock.expectLastCall().andReturn(bundle).anyTimes();
// sref.getProperty(Constants.OBJECTCLASS);
// String[] serviceNames = {TestService.class.getName()};
// EasyMock.expectLastCall().andReturn(serviceNames).anyTimes();
// sref.getPropertyKeys();
// EasyMock.expectLastCall().andReturn(new String[]{}).anyTimes();
//
// BundleTestContext dswContext = new BundleTestContext(bundle);
// ServiceRegistration[] serviceRegistrations =
// new ServiceRegistration[serviceNames.length];
// for (int i = 0; i < serviceNames.length ; i++) {
// serviceRegistrations[i] =
// control.createMock(ServiceRegistration.class);
// dswContext.addServiceRegistration(serviceNames[i],
// serviceRegistrations[i]);
// dswContext.addServiceReference(serviceNames[i], sref);
// }
// dswContext.registerService(serviceNames, serviceObject, serviceProps);
//
// final Server server = control.createMock(Server.class);
// control.replay();
//
// CxfPublishHook hook = new CxfPublishHook(dswContext, null) {
// @Override
// Server createServer(ServiceReference sref, ServiceEndpointDescription sd) {
// return server;
// }
// };
// assertNull("Precondition not met", hook.getEndpoints().get(sref));
// hook.publishEndpoint(sref);
// assertEquals(1, hook.getEndpoints().get(sref).size());
//
// hook.endpoints.put(sref, new ArrayList<EndpointInfo>());
// assertEquals("Precondition failed", 0, hook.getEndpoints().get(sref).size());
// hook.publishEndpoint(sref);
// assertEquals(0, hook.getEndpoints().get(sref).size());
//
// control.verify();
// }
//
// private static class TestPublishHook extends CxfPublishHook {
//
// private boolean called;
// private TestService serviceObject;
// private Server server;
//
// public TestPublishHook(BundleContext bc, TestService serviceObject,
// Server s) {
// super(bc, null);
// this.serviceObject = serviceObject;
// this.server = s;
// }
//
// @Override
// protected ConfigurationTypeHandler getHandler(ServiceEndpointDescription sd,
// Map<String, Object> props) {
// return new ConfigurationTypeHandler() {
// public String getType() {
// return "test";
// }
//
// public Object createProxy(ServiceReference sr,
// BundleContext dswContext, BundleContext callingContext,
// Class<?> iClass, ServiceEndpointDescription sd) {
// throw new UnsupportedOperationException();
// }
//
// public Server createServer(ServiceReference sr,
// BundleContext dswContext, BundleContext callingContext,
// ServiceEndpointDescription sd, Class<?> iClass, Object serviceBean) {
// Assert.assertSame(serviceBean, serviceObject);
// TestPublishHook.this.setCalled();
// Map props = sd.getProperties();
// String address = (String)props.get(WS_ADDRESS_PROPERTY);
// if (address != null) {
// props.put(ENDPOINT_LOCATION, address);
// }
// return server;
// }
//
// };
// }
//
// public void setCalled() {
// called = true;
// }
//
// public void verify() {
// Assert.assertTrue(called);
// }
// }
//
// public interface AdditionalInterface {
// }
//
// private static class TestServiceImpl implements TestService, AdditionalInterface {
//
// }
}