package org.camunda.bpm.extension.osgi.fileinstall.impl.util;
import static org.hamcrest.CoreMatchers.is;
import static org.hamcrest.collection.IsArrayContainingInOrder.arrayContaining;
import static org.junit.Assert.assertThat;
import org.junit.Test;
/**
*
* @author Ronny Bräunlich
*
*/
public class NameVersionTypeExtractorTest {
@Test
public void basicJarName() {
String jarName = "foo.jar";
String[] strings = NameVersionTypeExtractor
.extractNameVersionType(jarName);
checkStrings(strings, "foo", "0.0.0", "jar");
}
@Test
public void basicJarNameWithVersion() {
String jarName = "foo-1.0.0.jar";
String[] strings = NameVersionTypeExtractor
.extractNameVersionType(jarName);
checkStrings(strings, "foo", "1.0.0", "jar");
}
@Test
public void basicJarNameWithVersionAndDashQualifier() {
String jarName = "foo-1.2.0-SNAPSHOT.bar";
String[] strings = NameVersionTypeExtractor
.extractNameVersionType(jarName);
checkStrings(strings, "foo", "1.2.0.SNAPSHOT", "bar");
}
@Test
public void basicJarNameWithVersionAndDotQualifier() {
String jarName = "foo-1.0.3.SNAPSHOT.war";
String[] strings = NameVersionTypeExtractor
.extractNameVersionType(jarName);
checkStrings(strings, "foo", "1.0.3.SNAPSHOT", "war");
}
@Test
public void packageJarName() {
String jarName = "org.camunda.bpm.bar.foo.jar";
String[] strings = NameVersionTypeExtractor
.extractNameVersionType(jarName);
checkStrings(strings, "org.camunda.bpm.bar.foo", "0.0.0", "jar");
}
@Test
public void packageJarNameWithVersionAndDashQualifier() {
String jarName = "org.camunda.bpm.bar.foo-1.2.4-RC1.ear";
String[] strings = NameVersionTypeExtractor
.extractNameVersionType(jarName);
checkStrings(strings, "org.camunda.bpm.bar.foo", "1.2.4.RC1", "ear");
}
@Test
public void packageJarNameWithVersionAndDotQualifier() {
String jarName = "org.camunda.bpm.bar.foo-1.51.67.RC1.eab";
String[] strings = NameVersionTypeExtractor
.extractNameVersionType(jarName);
checkStrings(strings, "org.camunda.bpm.bar.foo", "1.51.67.RC1" ,"eab");
}
@Test
public void packageJarNameWithVersion() {
String jarName = "org.camunda.bpm.bar.foo-1.100.1001.jar";
String[] strings = NameVersionTypeExtractor
.extractNameVersionType(jarName);
checkStrings(strings, "org.camunda.bpm.bar.foo", "1.100.1001" ,"jar");
}
@Test
public void basicJarNameWithStrangeQualifier() {
String jarName = "foo-1.0.0_$NAP§H0T.bar";
String[] strings = NameVersionTypeExtractor
.extractNameVersionType(jarName);
checkStrings(strings, "foo", "1.0.0.NAPH0T", "bar");
}
@Test
public void basicJarNameWithMediumVersion() {
String jarName = "foo-1.0.bar";
String[] strings = NameVersionTypeExtractor
.extractNameVersionType(jarName);
checkStrings(strings, "foo", "1.0", "bar");
}
@Test
public void basicJarNameWithMediumVersionAndQualifier() {
String jarName = "foo-1.0-EA.bar";
String[] strings = NameVersionTypeExtractor
.extractNameVersionType(jarName);
checkStrings(strings, "foo", "1.0.0.EA", "bar");
}
@Test
public void basicJarNameWithShortVersion() {
String jarName = "foo-1-RC2.bar";
String[] strings = NameVersionTypeExtractor
.extractNameVersionType(jarName);
checkStrings(strings, "foo", "1.0.0.RC2", "bar");
}
private void checkStrings(String[] toCheck, String expectedName,
String expectedVersion, String expectedType) {
if (expectedType == null) {
assertThat(toCheck,
is(arrayContaining(expectedName, expectedVersion)));
} else {
assertThat(
toCheck,
is(arrayContaining(expectedName, expectedVersion,
expectedType)));
}
}
}