blob: a0a828a761a2fc834f71426151a028620020962c [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.aries.rsa.discovery.zookeeper;
import junit.framework.TestCase;
public class FindInZooKeeperCustomizerTest extends TestCase {
public void testDUMMY() {
assertTrue(true);
}
// public void testAddingServiceInterface() {
// DiscoveredServiceTracker dst = new DiscoveredServiceTracker() {
// public void serviceChanged(DiscoveredServiceNotification dsn) {}
// };
//
// ServiceReference sr = EasyMock.createMock(ServiceReference.class);
// EasyMock.expect(sr.getProperty(DiscoveredServiceTracker.INTERFACE_MATCH_CRITERIA))
// .andReturn(Collections.singleton(String.class.getName()));
// EasyMock.expect(sr.getProperty(DiscoveredServiceTracker.FILTER_MATCH_CRITERIA))
// .andReturn(null);
// EasyMock.replay(sr);
//
// DiscoveredServiceTracker dst2 = new DiscoveredServiceTracker() {
// public void serviceChanged(DiscoveredServiceNotification dsn) {}
// };
//
// ServiceReference sr2 = EasyMock.createMock(ServiceReference.class);
// EasyMock.expect(sr2.getProperty(DiscoveredServiceTracker.INTERFACE_MATCH_CRITERIA))
// .andReturn(Arrays.asList(Integer.class.getName(), Comparable.class.getName()));
// EasyMock.expect(sr2.getProperty(DiscoveredServiceTracker.FILTER_MATCH_CRITERIA))
// .andReturn(null);
// EasyMock.replay(sr2);
//
// BundleContext bc = EasyMock.createMock(BundleContext.class);
// EasyMock.expect(bc.getService(sr)).andReturn(dst);
// EasyMock.expect(bc.getService(sr2)).andReturn(dst2);
// EasyMock.replay(bc);
//
// ZooKeeper zk = EasyMock.createMock(ZooKeeper.class);
// zkExpectExists(zk, String.class.getName());
// zkExpectExists(zk, Integer.class.getName());
// zkExpectExists(zk, Comparable.class.getName());
// EasyMock.expectLastCall();
// EasyMock.replay(zk);
//
// FindInZooKeeperCustomizer fc = new FindInZooKeeperCustomizer(bc, zk);
//
// // ---------------------------------------------------------------
// // Test the addingService APIs
// // ---------------------------------------------------------------
//
// assertEquals("Precondition failed", 0, fc.watchers.size());
// fc.addingService(sr);
// assertEquals(1, fc.watchers.size());
//
// DiscoveredServiceTracker key = fc.watchers.keySet().iterator().next();
// assertSame(dst, key);
// List<InterfaceMonitor> dmList = fc.watchers.get(key);
// assertEquals(1, dmList.size());
// InterfaceMonitor dm = dmList.iterator().next();
// assertNotNull(dm.listener);
// assertSame(zk, dm.zookeeper);
// assertEquals(Utils.getZooKeeperPath(String.class.getName()), dm.znode);
//
// assertEquals("Precondition failed", 1, fc.watchers.size());
// fc.addingService(sr2);
// assertEquals(2, fc.watchers.size());
//
// assertTrue(fc.watchers.containsKey(dst));
// assertTrue(fc.watchers.containsKey(dst2));
// assertEquals(dmList, fc.watchers.get(dst));
// List<InterfaceMonitor> dmList2 = fc.watchers.get(dst2);
// assertEquals(2, dmList2.size());
//
// Set<String> actual = new HashSet<String>();
// for (InterfaceMonitor im : dmList2) {
// actual.add(im.znode);
// }
// Set<String> expected = new HashSet<String>(Arrays.asList(
// Utils.getZooKeeperPath(Integer.class.getName()),
// Utils.getZooKeeperPath(Comparable.class.getName())));
// assertEquals(expected, actual);
//
// EasyMock.verify(zk);
//
// // ---------------------------------------------------------------
// // Test the modifiedService APIs
// // ---------------------------------------------------------------
// EasyMock.reset(zk);
// zkExpectExists(zk, List.class.getName());
// EasyMock.replay(zk);
//
// EasyMock.reset(sr);
// EasyMock.expect(sr.getProperty(DiscoveredServiceTracker.INTERFACE_MATCH_CRITERIA))
// .andReturn(Collections.singleton(List.class.getName()));
// EasyMock.expect(sr.getProperty(DiscoveredServiceTracker.FILTER_MATCH_CRITERIA))
// .andReturn(null);
// EasyMock.replay(sr);
//
// assertEquals("Precondition failed", 2, fc.watchers.size());
// fc.modifiedService(sr, dst);
// assertEquals("Precondition failed", 2, fc.watchers.size());
//
// assertTrue(fc.watchers.containsKey(dst));
// assertTrue(fc.watchers.containsKey(dst2));
// assertEquals(dmList2, fc.watchers.get(dst2));
// List<InterfaceMonitor> dmList3 = fc.watchers.get(dst);
// assertEquals(1, dmList3.size());
// assertEquals(Utils.getZooKeeperPath(List.class.getName()), dmList3.iterator().next().znode);
//
// EasyMock.verify(zk);
//
// // ---------------------------------------------------------------
// // Test the removedService APIs
// // ---------------------------------------------------------------
// EasyMock.reset(zk);
// EasyMock.replay(zk);
//
// assertEquals("Precondition failed", 2, fc.watchers.size());
// fc.removedService(sr2, dst2);
// assertEquals("Precondition failed", 1, fc.watchers.size());
//
// assertEquals(dmList3, fc.watchers.get(dst));
// assertNull(fc.watchers.get(dst2));
//
// EasyMock.verify(zk);
// }
//
// public void testAddingServiceFilter() {
// DiscoveredServiceTracker dst = new DiscoveredServiceTracker() {
// public void serviceChanged(DiscoveredServiceNotification dsn) {}
// };
//
// ServiceReference sr = EasyMock.createMock(ServiceReference.class);
// EasyMock.expect(sr.getProperty(DiscoveredServiceTracker.INTERFACE_MATCH_CRITERIA))
// .andReturn(null);
// Set<String> stringFilter = Collections.singleton("(objectClass=java.lang.String)");
// EasyMock.expect(sr.getProperty(DiscoveredServiceTracker.FILTER_MATCH_CRITERIA))
// .andReturn(stringFilter);
// EasyMock.replay(sr);
//
// DiscoveredServiceTracker dst2 = new DiscoveredServiceTracker() {
// public void serviceChanged(DiscoveredServiceNotification dsn) {}
// };
//
// ServiceReference sr2 = EasyMock.createMock(ServiceReference.class);
// EasyMock.expect(sr2.getProperty(DiscoveredServiceTracker.INTERFACE_MATCH_CRITERIA))
// .andReturn(null);
// List<String> combinedFilter =
// Arrays.asList("(objectClass=java.lang.Integer)", "(objectClass=java.lang.Comparable)");
// EasyMock.expect(sr2.getProperty(DiscoveredServiceTracker.FILTER_MATCH_CRITERIA))
// .andReturn(combinedFilter);
// EasyMock.replay(sr2);
//
// BundleContext bc = EasyMock.createMock(BundleContext.class);
// EasyMock.expect(bc.getService(sr)).andReturn(dst);
// EasyMock.expect(bc.getService(sr2)).andReturn(dst2);
// EasyMock.replay(bc);
//
// ZooKeeper zk = EasyMock.createMock(ZooKeeper.class);
// zkExpectExists(zk, String.class.getName());
// zkExpectExists(zk, Integer.class.getName());
// zkExpectExists(zk, Comparable.class.getName());
// EasyMock.expectLastCall();
// EasyMock.replay(zk);
//
// FindInZooKeeperCustomizer fc = new FindInZooKeeperCustomizer(bc, zk);
//
// // ---------------------------------------------------------------
// // Test the addingService APIs
// // ---------------------------------------------------------------
//
// assertEquals("Precondition failed", 0, fc.watchers.size());
// fc.addingService(sr);
// assertEquals(1, fc.watchers.size());
//
// DiscoveredServiceTracker key = fc.watchers.keySet().iterator().next();
// assertSame(dst, key);
// List<InterfaceMonitor> dmList = fc.watchers.get(key);
// assertEquals(1, dmList.size());
// InterfaceMonitor dm = dmList.iterator().next();
// assertNotNull(dm.listener);
// assertSame(zk, dm.zookeeper);
// assertEquals(Utils.getZooKeeperPath(String.class.getName()), dm.znode);
//
// assertEquals("Precondition failed", 1, fc.watchers.size());
// fc.addingService(sr2);
// assertEquals(2, fc.watchers.size());
//
// assertTrue(fc.watchers.containsKey(dst));
// assertTrue(fc.watchers.containsKey(dst2));
// assertEquals(dmList, fc.watchers.get(dst));
// List<InterfaceMonitor> dmList2 = fc.watchers.get(dst2);
// assertEquals(2, dmList2.size());
// Set<String> actual = new HashSet<String>();
// for (InterfaceMonitor im : dmList2) {
// actual.add(im.znode);
// }
// Set<String> expected = new HashSet<String>(Arrays.asList(
// Utils.getZooKeeperPath(Integer.class.getName()),
// Utils.getZooKeeperPath(Comparable.class.getName())));
// assertEquals(expected, actual);
//
// EasyMock.verify(zk);
//
// // ---------------------------------------------------------------
// // Test the modifiedService APIs
// // ---------------------------------------------------------------
// EasyMock.reset(zk);
// zkExpectExists(zk, List.class.getName());
// EasyMock.replay(zk);
//
// EasyMock.reset(sr);
// Set<String> listFilter = Collections.singleton("(objectClass=java.util.List)");
// EasyMock.expect(sr.getProperty(DiscoveredServiceTracker.INTERFACE_MATCH_CRITERIA))
// .andReturn(null);
// EasyMock.expect(sr.getProperty(DiscoveredServiceTracker.FILTER_MATCH_CRITERIA))
// .andReturn(listFilter);
// EasyMock.replay(sr);
//
// assertEquals("Precondition failed", 2, fc.watchers.size());
// fc.modifiedService(sr, dst);
// assertEquals("Precondition failed", 2, fc.watchers.size());
//
// assertTrue(fc.watchers.containsKey(dst));
// assertTrue(fc.watchers.containsKey(dst2));
// assertEquals(dmList2, fc.watchers.get(dst2));
// List<InterfaceMonitor> dmList3 = fc.watchers.get(dst);
// assertEquals(1, dmList3.size());
// assertEquals(Utils.getZooKeeperPath(List.class.getName()), dmList3.iterator().next().znode);
//
// EasyMock.verify(zk);
//
// // ---------------------------------------------------------------
// // Test the removedService APIs
// // ---------------------------------------------------------------
// EasyMock.reset(zk);
// EasyMock.replay(zk);
//
// assertEquals("Precondition failed", 2, fc.watchers.size());
// fc.removedService(sr2, dst2);
// assertEquals("Precondition failed", 1, fc.watchers.size());
//
// assertEquals(dmList3, fc.watchers.get(dst));
// assertNull(fc.watchers.get(dst2));
//
// EasyMock.verify(zk);
// }
//
// public void testGetInterfacesFromFilter() {
// testGetInterfacesFromFilter("objectClass=org.apache_2.Some$FunnyClass",
// "org.apache_2.Some$FunnyClass");
// testGetInterfacesFromFilter("(&(a=b)(objectClass = org.acme.Q)",
// "org.acme.Q");
// testGetInterfacesFromFilter("(&(objectClassIdentifier=b)(objectClass = org.acme.Q)",
// "org.acme.Q");
// testGetInterfacesFromFilter("(|(OBJECTCLASS= X )(objectclass = Y)",
// "X", "Y");
// testGetInterfacesFromFilter(new String[] {"(objectClass=X)", "(objectClass=Y)"},
// "X", "Y");
// }
//
// private void testGetInterfacesFromFilter(String filter, String ... interfaces) {
// testGetInterfacesFromFilter(new String[] {filter}, interfaces);
// }
//
// private void testGetInterfacesFromFilter(String[] filters, String ... interfaces) {
// FindInZooKeeperCustomizer.getInterfacesFromFilter(Arrays.asList(filters));
// }
//
// private void zkExpectExists(ZooKeeper zk, String className) {
// zk.exists(EasyMock.eq(Utils.getZooKeeperPath(className)),
// (Watcher) EasyMock.anyObject(),
// (StatCallback) EasyMock.anyObject(), EasyMock.isNull());
// EasyMock.expectLastCall().andAnswer(new IAnswer<Object>() {
// public Object answer() throws Throwable {
// assertEquals(EasyMock.getCurrentArguments()[1],
// EasyMock.getCurrentArguments()[2]);
// return null;
// }
// });
// }
}