/* * 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. */ package org.apache.aries.subsystem.core.archive; import static org.junit.Assert.assertEquals; import java.io.IOException; import org.junit.Test; public class SubsystemManifestEqualityTest { @Test public void testSubsystemContentEquality() { String headerStr = "org.aries.bundle;start-order:=0;type=osgi.bundle;version=\"1.8.4\";resolution:=mandatory"; SubsystemContentHeader header1 = new SubsystemContentHeader(headerStr); SubsystemContentHeader header2 = new SubsystemContentHeader(headerStr); assertEquals(header1, header2); String headerStr1 = "org.aries.bundle;start-order:=0;type=osgi.bundle;version=\"1.8.4\";resolution:=mandatory"; String headerStr2 = "org.aries.bundle;type=osgi.bundle;resolution:=mandatory;version=\"1.8.4\";start-order:=0"; header1 = new SubsystemContentHeader(headerStr1); header2 = new SubsystemContentHeader(headerStr2); assertEquals(header1, header2); } @Test public void testDynamicImportHeaderEquality() { String headerStr1 = "org.eclipse.jetty.*;version=\"[9.0,10.0)\",*;JavaServlet=contract"; String headerStr2 = "*;JavaServlet=contract,org.eclipse.jetty.*;version=\"[9.0,10.0)\""; DynamicImportPackageHeader header1 = new DynamicImportPackageHeader( headerStr1); DynamicImportPackageHeader header2 = new DynamicImportPackageHeader( headerStr2); assertEquals(header1, header2); } @Test public void testExportPackageHeaderEquality() { String headerStr1 = "javax.servlet;version=\"2.5\",javax.servlet.http; version=\"2.5\""; String headerStr2 = "javax.servlet.http; version=\"2.5\",javax.servlet;version=\"2.5\""; ExportPackageHeader header1 = new ExportPackageHeader(headerStr1); ExportPackageHeader header2 = new ExportPackageHeader(headerStr2); assertEquals(header1, header2); } @Test public void testFragmentHostHeaderEquality() { String headerStr1 = "the.parent.bundle;bundle-version=1.2.3"; String headerStr2 = "the.parent.bundle;bundle-version=1.2.3"; FragmentHostHeader header1 = new FragmentHostHeader(headerStr1); FragmentHostHeader header2 = new FragmentHostHeader(headerStr2); assertEquals(header1, header2); } @Test public void testImportPackageHeaderEquality() { String headerStr1 = "javax.servlet;version=\"2.6.0\", javax.servlet.resources;version=\"2.6.0\""; String headerStr2 = "javax.servlet.resources;version=\"2.6.0\",javax.servlet;version=\"2.6.0\""; ImportPackageHeader header1 = new ImportPackageHeader(headerStr1); ImportPackageHeader header2 = new ImportPackageHeader(headerStr2); assertEquals(header1, header2); } @Test public void testPreferredProviderHeaderEquality() { String headerStr1 = "org.aries.kernel;version=\"1.0.4\";type=osgi.subsystem.composite"; String headerStr2 = "org.aries.kernel;type=osgi.subsystem.composite;version=\"1.0.4\""; PreferredProviderHeader header1 = new PreferredProviderHeader( headerStr1); PreferredProviderHeader header2 = new PreferredProviderHeader( headerStr2); assertEquals(header1, header2); } @Test public void testProvideCapabilityHeaderEquality() { String headerStr1 = "osgi.contract;osgi.contract=JavaServlet;version:Version=2.5;uses:=\"javax.servlet,javax.servlet.http\""; String headerStr2 = "osgi.contract;uses:=\"javax.servlet,javax.servlet.http\";osgi.contract=JavaServlet;version:Version=2.5"; ProvideCapabilityHeader header1 = new ProvideCapabilityHeader( headerStr1); ProvideCapabilityHeader header2 = new ProvideCapabilityHeader( headerStr2); assertEquals(header1, header2); } @Test public void testProvisionResourceHeaderEquality() { String headerStr1 = "com.acme.logging;type=osgi.bundle;deployed-version=1.0.0"; String headerStr2 = "com.acme.logging;deployed-version=1.0.0;type=osgi.bundle"; ProvisionResourceHeader header1 = new ProvisionResourceHeader( headerStr1); ProvisionResourceHeader header2 = new ProvisionResourceHeader( headerStr2); assertEquals(header1, header2); } @Test public void testRequireBundleHeaderEquality() { String headerStr1 = "com.example.acme,com.acme.logging;bundle-version=\"[1.0, 1.1)\""; String headerStr2 = "com.acme.logging;bundle-version=\"[1.0, 1.1)\",com.example.acme"; RequireBundleHeader header1 = new RequireBundleHeader(headerStr1); RequireBundleHeader header2 = new RequireBundleHeader(headerStr2); assertEquals(header1, header2); } @Test public void testRequireCapabilityHeaderEquality() { String headerStr1 = "osgi.ee; filter:=\"(osgi.ee=*)\",screen.size; filter:=\"(&(width>=800)(height>=600))\""; String headerStr2 = "screen.size; filter:=\"(&(width>=800)(height>=600))\",osgi.ee; filter:=\"(osgi.ee=*)\""; RequireCapabilityHeader header1 = new RequireCapabilityHeader( headerStr1); RequireCapabilityHeader header2 = new RequireCapabilityHeader( headerStr2); assertEquals(header1, header2); } @Test public void testSubsystemExportServiceHeaderEquality() { String headerStr1 = "com.acme.service.Logging"; String headerStr2 = "com.acme.service.Logging"; SubsystemExportServiceHeader header1 = new SubsystemExportServiceHeader( headerStr1); SubsystemExportServiceHeader header2 = new SubsystemExportServiceHeader( headerStr2); assertEquals(header1, header2); } @Test public void testSubsystemImportServiceHeaderEquality() { String headerStr1 = "com.acme.service.Logging"; String headerStr2 = "com.acme.service.Logging"; SubsystemImportServiceHeader header1 = new SubsystemImportServiceHeader( headerStr1); SubsystemImportServiceHeader header2 = new SubsystemImportServiceHeader( headerStr2); assertEquals(header1, header2); } @Test public void testSubsystemManifestEquality() throws IOException { SubsystemManifest subsystemManifest1 = new SubsystemManifest(getClass() .getResourceAsStream("/files/SUBSYSTEM.MF.1")); SubsystemManifest subsystemManifest2 = new SubsystemManifest(getClass() .getResourceAsStream("/files/SUBSYSTEM.MF.2")); assertEquals(subsystemManifest1, subsystemManifest2); } @Test public void testSubsystemTypeHeaderEquality() { String headerStr1 = "osgi.subsystem.composite"; String headerStr2 = "osgi.subsystem.composite"; SubsystemTypeHeader header1 = new SubsystemTypeHeader(headerStr1); SubsystemTypeHeader header2 = new SubsystemTypeHeader(headerStr2); assertEquals(header1, header2); } @Test public void testSubsystemVersionHeaderEquality() { String headerStr1 = "1.0.0"; String headerStr2 = "1.0.0"; SubsystemVersionHeader header1 = new SubsystemVersionHeader(headerStr1); SubsystemVersionHeader header2 = new SubsystemVersionHeader(headerStr2); assertEquals(header1, header2); headerStr2 = "1"; header2 = new SubsystemVersionHeader(headerStr2); assertEquals("Equivalent versions should be equal", header1, header2); } @Test public void testBundleSymbolicNameHeaderEquality() { String headerStr1 = "com.example.acme;singleton:=true"; String headerStr2 = "com.example.acme;singleton:=true"; SymbolicNameHeader header1 = new BundleSymbolicNameHeader(headerStr1); SymbolicNameHeader header2 = new BundleSymbolicNameHeader(headerStr2); assertEquals(header1, header2); headerStr1 = "com.example.acme;fragment-attachment:=never;singleton:=true"; headerStr2 = "com.example.acme;singleton:=true;fragment-attachment:=never"; header1 = new BundleSymbolicNameHeader(headerStr1); header2 = new BundleSymbolicNameHeader(headerStr2); assertEquals("Equivalent clauses should be equal", header1, header2); } @Test public void testSubsystemSymbolicNameHeaderEquality() { String headerStr1 = "org.acme.billing;category=banking"; String headerStr2 = "org.acme.billing;category=banking"; SymbolicNameHeader header1 = new SubsystemSymbolicNameHeader( headerStr1); SymbolicNameHeader header2 = new SubsystemSymbolicNameHeader( headerStr2); assertEquals(header1, header2); } @Test public void testDeployedContentHeaderEquality() { String headerStr1 = "com.acme.logging;type=osgi.bundle;deployed-version=1.0.0"; String headerStr2 = "com.acme.logging;type=osgi.bundle;deployed-version=1.0.0"; DeployedContentHeader header1 = new DeployedContentHeader(headerStr1); DeployedContentHeader header2 = new DeployedContentHeader(headerStr2); assertEquals(header1, header2); } }