51 lines
1.9 KiB
Java
51 lines
1.9 KiB
Java
package tests;
|
|
|
|
import static org.hamcrest.MatcherAssert.assertThat;
|
|
import static org.hamcrest.Matchers.hasItem;
|
|
import static org.hamcrest.Matchers.*;
|
|
import static org.junit.jupiter.api.Assumptions.assumeFalse;
|
|
import static org.junit.jupiter.api.Assumptions.assumeTrue;
|
|
|
|
import java.util.List;
|
|
import java.util.regex.Matcher;
|
|
import java.util.regex.Pattern;
|
|
import java.util.stream.Collectors;
|
|
|
|
import org.junit.jupiter.api.Disabled;
|
|
import org.junit.jupiter.api.DisplayName;
|
|
|
|
import io.kojan.javadeptools.rpm.RpmDependency;
|
|
import io.kojan.javadeptools.rpm.RpmInfo;
|
|
import io.kojan.runit.api.PackageTest;
|
|
|
|
@DisplayName("/apache-commons")
|
|
public class ApacheCommonsCheck {
|
|
|
|
private void assumeApacheCommonsPackage(RpmInfo rpm) {
|
|
assumeTrue(startsWith("apache-commons-").matches(rpm.getName()),
|
|
"This test is valid only for Apache Commons packages");
|
|
}
|
|
|
|
@PackageTest
|
|
public void saneName(RpmInfo rpm) {
|
|
assumeApacheCommonsPackage(rpm);
|
|
assertThat("Package name is sane", rpm.getName(),
|
|
either(matchesRegex("apache-commons-[a-z][a-z0-9]+(-javadoc)?"))
|
|
.or(is("apache-commons-collections-testframework")));
|
|
}
|
|
|
|
@PackageTest
|
|
@Disabled("JPMS provides are not generated for now")
|
|
public void jpmsProvides(RpmInfo rpm) {
|
|
assumeApacheCommonsPackage(rpm);
|
|
assumeFalse(rpm.isSourcePackage(), "Skip source packages");
|
|
assumeFalse(is("apache-commons-parent").matches(rpm.getName()), "Skip apache-commons-parent");
|
|
Pattern pattern = Pattern.compile("apache-commons-([a-z][a-z0-9]+)");
|
|
Matcher matcher = pattern.matcher(rpm.getName());
|
|
assumeTrue(matcher.matches(), "Skip javadoc and other binary subpackages");
|
|
String id = matcher.group(1);
|
|
List<String> prov = rpm.getProvides().stream().map(RpmDependency::getName).collect(Collectors.toList());
|
|
assertThat("Apache Commons packages should have jpms provides", prov,
|
|
hasItem("jpms(org.apache.commons." + id + ")"));
|
|
}
|
|
}
|