From 9c0eeab774895b3c3c9b218f82f71fd7314c388c Mon Sep 17 00:00:00 2001 From: gjoranv Date: Fri, 2 Jun 2023 12:50:17 +0200 Subject: Add test for non-PublicApi usage. --- .../plugin/NonPublicApiDetectionTest.java | 44 ++++++++++++++++++++++ 1 file changed, 44 insertions(+) create mode 100644 bundle-plugin-test/integration-test/src/test/java/com/yahoo/container/plugin/NonPublicApiDetectionTest.java (limited to 'bundle-plugin-test/integration-test/src/test/java/com/yahoo/container') diff --git a/bundle-plugin-test/integration-test/src/test/java/com/yahoo/container/plugin/NonPublicApiDetectionTest.java b/bundle-plugin-test/integration-test/src/test/java/com/yahoo/container/plugin/NonPublicApiDetectionTest.java new file mode 100644 index 00000000000..42ac99c65e5 --- /dev/null +++ b/bundle-plugin-test/integration-test/src/test/java/com/yahoo/container/plugin/NonPublicApiDetectionTest.java @@ -0,0 +1,44 @@ +package com.yahoo.container.plugin; + +import org.junit.jupiter.api.BeforeAll; +import org.junit.jupiter.api.Test; + +import java.io.File; +import java.io.IOException; +import java.util.Arrays; +import java.util.Set; +import java.util.jar.Attributes; +import java.util.jar.JarFile; +import java.util.stream.Collectors; + +import static com.yahoo.container.plugin.BundleTest.findBundleJar; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertTrue; + +/** + * @author gjoranv + */ +public class NonPublicApiDetectionTest { + + private static Set usedNonPublicApi; + + @BeforeAll + public static void setup() { + try { + File componentJar = findBundleJar("non-public-api-usage"); + Attributes mainAttributes = new JarFile(componentJar).getManifest().getMainAttributes(); + var nonPublicApiAttribute = mainAttributes.getValue("X-JDisc-Non-PublicApi-Import-Package"); + usedNonPublicApi = Arrays.stream(nonPublicApiAttribute.split(",")).collect(Collectors.toSet()); + } catch (IOException e) { + throw new RuntimeException(e); + } + } + + @Test + void usage_of_non_publicApi_packages_is_detected() { + assertEquals(2, usedNonPublicApi.size()); + assertTrue(usedNonPublicApi.contains("ai.vespa.http")); + assertTrue(usedNonPublicApi.contains("com.yahoo.io")); + } + +} -- cgit v1.2.3