package org.osmorc.facet.maven; import org.jetbrains.annotations.NotNull; import org.jetbrains.idea.maven.importing.FacetImporter; import org.jetbrains.idea.maven.importing.FacetImporterTestCase; import org.junit.Test; import org.osmorc.facet.OsmorcFacet; import org.osmorc.facet.OsmorcFacetConfiguration; import org.osmorc.facet.OsmorcFacetType; import java.io.IOException; /** * Test case for testing the osmorc facet importer. */ public class OsmorcMavenFacetImporterTest extends FacetImporterTestCase<OsmorcFacet, OsmorcFacetType> { @Override protected FacetImporter<OsmorcFacet, ?, OsmorcFacetType> createImporter() { return new OsmorcFacetImporter(); } protected String pluginCoordinates() { return "<groupId>" + "org.apache.felix" + "</groupId>" + "<artifactId>" + "maven-bundle-plugin" + "</artifactId>" + "<version>" + "2.3.4" + "</version>"; } @Test public void testSimpleImport() throws IOException { importProject(pomContents("simple", "", "")); assertModules("simple"); OsmorcFacet simple = getFacet("simple"); OsmorcFacetConfiguration configuration = simple.getConfiguration(); assertNotNull(configuration); assertEquals("org.osmorc.simple", configuration.getBundleSymbolicName()); assertTrue(configuration.isOsmorcControlsManifest()); } @Test public void testSymbolicNameInference() throws IOException { importProject(pomContents("osmorc-simple", "", "")); assertModules("osmorc-simple"); OsmorcFacet simple = getFacet("osmorc-simple"); OsmorcFacetConfiguration configuration = simple.getConfiguration(); assertNotNull(configuration); assertEquals("org.osmorc.simple", configuration.getBundleSymbolicName()); assertTrue(configuration.isOsmorcControlsManifest()); } @Test public void testUseExistingManifest() throws IOException { importProject(pomContents("simple", "<configuration>"+ "<instructions>"+ "<_include>${project.basedir}/foo/Manifest.MF</_include>"+ "</instructions>"+ "</configuration>", "")); assertModules("simple"); OsmorcFacet simple = getFacet("simple"); OsmorcFacetConfiguration configuration = simple.getConfiguration(); assertNotNull(configuration); assertEquals("org.osmorc.simple", configuration.getBundleSymbolicName()); assertFalse(configuration.isOsmorcControlsManifest()); assertFalse(configuration.isUseProjectDefaultManifestFileLocation()); assertTrue(configuration.getManifestLocation().contains("foo/Manifest.MF")); } @Test public void testDefaultOutputPath() throws IOException { importProject(pomContents("simple","", "")); assertModules("simple"); OsmorcFacet simple = getFacet("simple"); OsmorcFacetConfiguration configuration = simple.getConfiguration(); assertNotNull(configuration); assertTrue(configuration.getJarFileLocation().endsWith("simple-1.0.1.jar")); } @Test public void testSpecificOutputPath() throws IOException { importProject(pomContents("simple","", "<finalName>${artifactId}-special-${version}</finalName>")); assertModules("simple"); OsmorcFacet simple = getFacet("simple"); OsmorcFacetConfiguration configuration = simple.getConfiguration(); assertNotNull(configuration); assertTrue(configuration.getJarFileLocation().endsWith("simple-special-1.0.1.jar")); } private String pomContents(@NotNull String artifactId, @NotNull String pluginInstructions, @NotNull String buildInstructions) { return "<groupId>org.osmorc</groupId>" + "<artifactId>"+artifactId+"</artifactId>" + "<version>1.0.1</version>" + "<packaging>bundle</packaging>"+ "<build>" + buildInstructions+ " <plugins>" + " <plugin>" + pluginCoordinates() + pluginInstructions+ " </plugin>" + " </plugins>" + "</build>"; } }