/*
* Copyright 2016 higherfrequencytrading.com
*
* 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 net.openhft.affinity.osgi;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.ops4j.pax.exam.Configuration;
import org.ops4j.pax.exam.Option;
import org.ops4j.pax.exam.junit.PaxExam;
import org.osgi.framework.Bundle;
import org.osgi.framework.BundleContext;
import javax.inject.Inject;
import static org.junit.Assert.*;
import static org.ops4j.pax.exam.CoreOptions.*;
//@Ignore
@RunWith(PaxExam.class)
public class OSGiBundleTest extends net.openhft.affinity.osgi.OSGiTestBase {
@Inject
BundleContext context;
@Configuration
public Option[] config() {
return options(
systemProperty("org.osgi.framework.storage.clean").value("true"),
systemProperty("org.ops4j.pax.logging.DefaultServiceLog.level").value("WARN"),
mavenBundleAsInProject("org.slf4j","slf4j-api"),
mavenBundleAsInProject("org.slf4j","slf4j-simple").noStart(),
mavenBundleAsInProject("net.openhft","affinity"),
workspaceBundle("affinity-test"),
junitBundles(),
systemPackage("sun.misc"),
systemPackage("sun.nio.ch"),
systemPackage("com.sun.jna"),
systemPackage("com.sun.jna.ptr"),
cleanCaches()
);
}
@Test
public void checkInject() {
assertNotNull(context);
}
@Test
public void checkBundleState() {
final Bundle bundle = findBundle(context, "net.openhft.affinity");
assertNotNull(bundle);
assertEquals(bundle.getState(),Bundle.ACTIVE);
}
@Test
public void checkBundleExports() {
final Bundle bundle = findBundle(context, "net.openhft.affinity");
assertNotNull(bundle);
final String exports = bundle.getHeaders().get("Export-Package");
final String[] packages = exports.split(",");
assertTrue(packages.length >= 2);
assertTrue(packages[0].startsWith("net.openhft.affinity;")
|| packages[0].startsWith("net.openhft.affinity.impl;"));
assertTrue(packages[1].startsWith("net.openhft.affinity;")
|| packages[1].startsWith("net.openhft.affinity.impl;"));
}
}