/****************************************************************************** * Copyright (c) 2006, 2010 VMware Inc. * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * and Apache License v2.0 which accompanies this distribution. * The Eclipse Public License is available at * http://www.eclipse.org/legal/epl-v10.html and the Apache License v2.0 * is available at http://www.opensource.org/licenses/apache2.0.php. * You may elect to redistribute this code under either of these licenses. * * Contributors: * VMware Inc. *****************************************************************************/ package org.eclipse.gemini.blueprint.blueprint.metadata; import java.util.Collection; import java.util.Iterator; import org.osgi.service.blueprint.reflect.ComponentMetadata; import org.osgi.service.blueprint.reflect.RefMetadata; import org.osgi.service.blueprint.reflect.ReferenceListMetadata; import org.osgi.service.blueprint.reflect.ReferenceListener; import org.osgi.service.blueprint.reflect.ServiceReferenceMetadata; import org.osgi.service.blueprint.reflect.Target; /** * @author Costin Leau */ public class ImporterCollectionsMetadataTest extends BaseMetadataTest { @Override protected String getConfig() { return "/org/eclipse/gemini/blueprint/blueprint/config/importer-collections-elements.xml"; } private ServiceReferenceMetadata getReferenceMetadata(String name) { ComponentMetadata metadata = blueprintContainer.getComponentMetadata(name); assertTrue(metadata instanceof ServiceReferenceMetadata); ServiceReferenceMetadata referenceMetadata = (ServiceReferenceMetadata) metadata; assertEquals("the registered name doesn't match the component name", name, referenceMetadata.getId()); return referenceMetadata; } public void testSimpleList() throws Exception { ReferenceListMetadata metadata = (ReferenceListMetadata) getReferenceMetadata("simpleList"); } public void testListeners() throws Exception { ReferenceListMetadata metadata = (ReferenceListMetadata) getReferenceMetadata("listeners"); Collection<ReferenceListener> listeners = metadata.getReferenceListeners(); assertEquals(3, listeners.size()); Iterator<ReferenceListener> iterator = listeners.iterator(); ReferenceListener listener = iterator.next(); assertEquals("bindM", listener.getBindMethod()); assertEquals("unbindM", listener.getUnbindMethod()); assertTrue(listener.getListenerComponent() instanceof RefMetadata); listener = iterator.next(); assertTrue(listener.getListenerComponent() instanceof Target); listener = iterator.next(); assertTrue(listener.getListenerComponent() instanceof RefMetadata); } }