/* * #%L * JBossOSGi Resolver API * %% * Copyright (C) 2010 - 2012 JBoss by Red Hat * %% * Licensed 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. * #L% */ package org.jboss.test.osgi.resolver.spi; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertSame; import java.util.List; import org.jboss.osgi.resolver.XEnvironment; import org.jboss.osgi.resolver.XRequirement; import org.jboss.osgi.resolver.XResource; import org.jboss.osgi.resolver.XResourceBuilder; import org.jboss.osgi.resolver.XResourceBuilderFactory; import org.junit.Test; import org.osgi.framework.namespace.IdentityNamespace; import org.osgi.framework.namespace.PackageNamespace; import org.osgi.resource.Capability; import org.osgi.resource.Requirement; /** * Unit tests for the {@link org.osgi.service.resolver.Environment} class * * @author Thomas.Diesler@jboss.com */ public class XEnvironmentTestCase extends AbstractTestBase { @Test public void testFindProviders() throws Exception { XResourceBuilder<XResource> builderA = XResourceBuilderFactory.create(); builderA.addCapability(IdentityNamespace.IDENTITY_NAMESPACE, "testA"); builderA.addRequirement(PackageNamespace.PACKAGE_NAMESPACE, "org.jboss.foo"); XResource resourceA = builderA.getResource(); XResourceBuilder<XResource> builderB = XResourceBuilderFactory.create(); builderB.addCapability(IdentityNamespace.IDENTITY_NAMESPACE, "testB"); builderB.addCapability(PackageNamespace.PACKAGE_NAMESPACE, "org.jboss.foo"); XResource resourceB = builderB.getResource(); XResourceBuilder<XResource> builderC = XResourceBuilderFactory.create(); builderC.addCapability(IdentityNamespace.IDENTITY_NAMESPACE, "testB"); builderC.addCapability(PackageNamespace.PACKAGE_NAMESPACE, "org.jboss.foo"); XResource resourceC = builderC.getResource(); XEnvironment env = installResources(resourceA, resourceB, resourceC); List<Requirement> reqs = resourceA.getRequirements(PackageNamespace.PACKAGE_NAMESPACE); assertEquals(1, reqs.size()); XRequirement req = (XRequirement) reqs.get(0); List<Capability> providers = env.findProviders(req); assertEquals(2, providers.size()); assertSame(resourceB, providers.get(0).getResource()); assertSame(resourceC, providers.get(1).getResource()); } }