package org.ops4j.pax.exam.karaf.container.internal;
import static org.ops4j.pax.exam.CoreOptions.mavenBundle;
import static org.ops4j.pax.exam.CoreOptions.wrappedBundle;
import java.io.StringWriter;
import org.hamcrest.core.StringContains;
import org.junit.Assert;
import org.junit.Test;
import org.ops4j.pax.exam.options.MavenArtifactProvisionOption;
import org.ops4j.pax.exam.options.WrappedUrlProvisionOption;
import org.ops4j.pax.exam.options.WrappedUrlProvisionOption.OverwriteMode;
public class DependenciesDeployerTest {
/**
* See https://ops4j1.jira.com/browse/PAXEXAM-572
*/
@Test
public void testEncoding() {
WrappedUrlProvisionOption option = wrappedBundle(mavenBundle("mygroup", "myArtifactId", "1.0"));
option.instructions("Export-Package=my.package.*");
option.overwriteManifest(OverwriteMode.MERGE);
StringWriter wr = new StringWriter();
DependenciesDeployer.writeDependenciesFeature(wr, option);
Assert.assertThat(wr.toString(), StringContains.containsString("<bundle>wrap:mvn:mygroup/myArtifactId/1.0$overwrite=MERGE&Export-Package=my.package.*</bundle>"));
}
@Test
public void testDependencyFeature() {
MavenArtifactProvisionOption option = mavenBundle().groupId("mygroup").artifactId("myArtifactId").version("1.0");
StringWriter wr = new StringWriter();
DependenciesDeployer.writeDependenciesFeature(wr, option);
Assert.assertEquals(
"<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n" +
"<features xmlns=\"http://karaf.apache.org/xmlns/features/v1.0.0\" name=\"test-dependencies\">\n" +
"<feature name=\"test-dependencies\">\n" +
"<bundle>mvn:mygroup/myArtifactId/1.0</bundle>\n" +
"</feature>\n" +
"</features>\n", wr.toString());
}
@Test
public void testDependencyFeatureWithBundleStartLevel() {
MavenArtifactProvisionOption option = mavenBundle().groupId("mygroup").artifactId("myArtifactId").version("1.0").startLevel(42);
StringWriter wr = new StringWriter();
DependenciesDeployer.writeDependenciesFeature(wr, option);
Assert.assertEquals(
"<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n" +
"<features xmlns=\"http://karaf.apache.org/xmlns/features/v1.0.0\" name=\"test-dependencies\">\n" +
"<feature name=\"test-dependencies\">\n" +
"<bundle start-level=\"42\">mvn:mygroup/myArtifactId/1.0</bundle>\n" +
"</feature>\n" +
"</features>\n", wr.toString());
}
}