diff --git a/jib-plugins-common/src/test/java/com/google/cloud/tools/jib/plugins/common/PluginConfigurationProcessorTest.java b/jib-plugins-common/src/test/java/com/google/cloud/tools/jib/plugins/common/PluginConfigurationProcessorTest.java index 51c92927fa..484dd60ae4 100644 --- a/jib-plugins-common/src/test/java/com/google/cloud/tools/jib/plugins/common/PluginConfigurationProcessorTest.java +++ b/jib-plugins-common/src/test/java/com/google/cloud/tools/jib/plugins/common/PluginConfigurationProcessorTest.java @@ -18,11 +18,12 @@ import static com.google.common.truth.Truth.assertThat; import static com.google.common.truth.Truth8.assertThat; -import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertThrows; -import static org.junit.Assert.fail; import static org.mockito.ArgumentMatchers.any; +import static org.mockito.ArgumentMatchers.argThat; +import static org.mockito.Mockito.never; import static org.mockito.Mockito.verify; +import static org.mockito.Mockito.verifyNoInteractions; import static org.mockito.Mockito.when; import com.google.cloud.tools.jib.api.CacheDirectoryCreationException; @@ -46,8 +47,8 @@ import com.google.common.collect.ImmutableMap; import com.google.common.collect.ImmutableSet; import com.google.common.io.Resources; +import com.google.common.truth.Correspondence; import java.io.File; -import java.io.FileNotFoundException; import java.io.IOException; import java.net.URISyntaxException; import java.nio.file.Files; @@ -60,10 +61,7 @@ import java.util.List; import java.util.Optional; import java.util.function.Consumer; -import java.util.function.Function; -import java.util.stream.Collectors; import javax.annotation.Nullable; -import org.junit.Assert; import org.junit.Before; import org.junit.Rule; import org.junit.Test; @@ -80,30 +78,18 @@ @RunWith(MockitoJUnitRunner.class) public class PluginConfigurationProcessorTest { + private static final Correspondence SOURCE_FILE_OF = + Correspondence.transforming(FileEntry::getSourceFile, "has sourceFile of"); + private static final Correspondence EXTRACTION_PATH_OF = + Correspondence.transforming( + entry -> entry.getExtractionPath().toString(), "has extractionPath of"); + private static BuildContext getBuildContext(JibContainerBuilder jibContainerBuilder) throws InvalidImageReferenceException, CacheDirectoryCreationException { return JibContainerBuilderTestHelper.toBuildContext( jibContainerBuilder, Containerizer.to(RegistryImage.named("ignored"))); } - private static void assertLayerEntriesUnordered( - List expectedPaths, List entries, Function fieldSelector) { - List expected = expectedPaths.stream().sorted().collect(Collectors.toList()); - List actual = entries.stream().map(fieldSelector).sorted().collect(Collectors.toList()); - assertEquals(expected, actual); - } - - private static void assertSourcePathsUnordered( - List expectedPaths, List entries) { - assertLayerEntriesUnordered(expectedPaths, entries, FileEntry::getSourceFile); - } - - private static void assertExtractionPathsUnordered( - List expectedPaths, List entries) { - assertLayerEntriesUnordered( - expectedPaths, entries, layerEntry -> layerEntry.getExtractionPath().toString()); - } - @Rule public final RestoreSystemProperties systemPropertyRestorer = new RestoreSystemProperties(); @Rule public final TemporaryFolder temporaryFolder = new TemporaryFolder(); @@ -170,15 +156,16 @@ public void testPluginConfigurationProcessor_defaults() InvalidCreationTimeException { BuildContext buildContext = getBuildContext(processCommonConfiguration()); - assertEquals( - Arrays.asList("java", "-cp", "/app/resources:/app/classes:/app/libs/*", "java.lang.Object"), - buildContext.getContainerConfiguration().getEntrypoint()); + assertThat(buildContext.getContainerConfiguration().getEntrypoint()) + .containsExactly( + "java", "-cp", "/app/resources:/app/classes:/app/libs/*", "java.lang.Object") + .inOrder(); verify(containerizer).setBaseImageLayersCache(Containerizer.DEFAULT_BASE_CACHE_DIRECTORY); verify(containerizer).setApplicationLayersCache(Paths.get("cache")); ArgumentMatcher isLogWarn = logEvent -> logEvent.getLevel() == LogEvent.Level.WARN; - verify(logger, Mockito.never()).accept(Mockito.argThat(isLogWarn)); + verify(logger, never()).accept(argThat(isLogWarn)); } @Test @@ -201,28 +188,28 @@ public void testPluginConfigurationProcessor_extraDirectory() .getLayerConfigurations() .stream() .filter(layer -> layer.getName().equals("extra files")) - .collect(Collectors.toList()) - .get(0) + .findFirst() + .get() .getEntries(); - assertSourcePathsUnordered( - Arrays.asList( + assertThat(extraFiles) + .comparingElementsUsing(SOURCE_FILE_OF) + .containsExactly( extraDirectory.resolve("a"), extraDirectory.resolve("a/b"), extraDirectory.resolve("a/b/bar"), extraDirectory.resolve("c"), extraDirectory.resolve("c/cat"), - extraDirectory.resolve("foo")), - extraFiles); - assertExtractionPathsUnordered( - Arrays.asList( + extraDirectory.resolve("foo")); + assertThat(extraFiles) + .comparingElementsUsing(EXTRACTION_PATH_OF) + .containsExactly( "/target/dir/a", "/target/dir/a/b", "/target/dir/a/b/bar", "/target/dir/c", "/target/dir/c/cat", - "/target/dir/foo"), - extraFiles); + "/target/dir/foo"); Optional fooEntry = extraFiles @@ -232,7 +219,7 @@ public void testPluginConfigurationProcessor_extraDirectory() layerEntry.getExtractionPath().equals(AbsoluteUnixPath.get("/target/dir/foo"))) .findFirst(); assertThat(fooEntry).isPresent(); - assertEquals("123", fooEntry.get().getPermissions().toOctalString()); + assertThat(fooEntry.get().getPermissions().toOctalString()).isEqualTo("123"); } @Test @@ -264,10 +251,10 @@ public void testEntrypoint() BuildContext buildContext = getBuildContext(processCommonConfiguration()); - assertEquals( - Arrays.asList("custom", "entrypoint"), - buildContext.getContainerConfiguration().getEntrypoint()); - Mockito.verifyNoInteractions(logger); + assertThat(buildContext.getContainerConfiguration().getEntrypoint()) + .containsExactly("custom", "entrypoint") + .inOrder(); + verifyNoInteractions(logger); } @Test @@ -277,8 +264,8 @@ public void testComputeEntrypoint_inheritKeyword() when(rawConfiguration.getEntrypoint()) .thenReturn(Optional.of(Collections.singletonList("INHERIT"))); - Assert.assertNull( - PluginConfigurationProcessor.computeEntrypoint(rawConfiguration, projectProperties)); + assertThat(PluginConfigurationProcessor.computeEntrypoint(rawConfiguration, projectProperties)) + .isNull(); } @Test @@ -287,17 +274,18 @@ public void testComputeEntrypoint_inheritKeywordInNonSingletonList() InvalidContainerizingModeException { when(rawConfiguration.getEntrypoint()).thenReturn(Optional.of(Arrays.asList("INHERIT", ""))); - Assert.assertNotNull( - PluginConfigurationProcessor.computeEntrypoint(rawConfiguration, projectProperties)); + assertThat(PluginConfigurationProcessor.computeEntrypoint(rawConfiguration, projectProperties)) + .isNotNull(); } @Test public void testComputeEntrypoint_default() throws MainClassInferenceException, InvalidAppRootException, IOException, InvalidContainerizingModeException { - assertEquals( - Arrays.asList("java", "-cp", "/app/resources:/app/classes:/app/libs/*", "java.lang.Object"), - PluginConfigurationProcessor.computeEntrypoint(rawConfiguration, projectProperties)); + assertThat(PluginConfigurationProcessor.computeEntrypoint(rawConfiguration, projectProperties)) + .containsExactly( + "java", "-cp", "/app/resources:/app/classes:/app/libs/*", "java.lang.Object") + .inOrder(); } @Test @@ -305,9 +293,9 @@ public void testComputeEntrypoint_packaged() throws MainClassInferenceException, InvalidAppRootException, IOException, InvalidContainerizingModeException { when(rawConfiguration.getContainerizingMode()).thenReturn("packaged"); - assertEquals( - Arrays.asList("java", "-cp", "/app/classpath/*:/app/libs/*", "java.lang.Object"), - PluginConfigurationProcessor.computeEntrypoint(rawConfiguration, projectProperties)); + assertThat(PluginConfigurationProcessor.computeEntrypoint(rawConfiguration, projectProperties)) + .containsExactly("java", "-cp", "/app/classpath/*:/app/libs/*", "java.lang.Object") + .inOrder(); } @Test @@ -315,13 +303,13 @@ public void testComputeEntrypoint_expandClasspathDependencies() throws MainClassInferenceException, InvalidAppRootException, IOException, InvalidContainerizingModeException { when(rawConfiguration.getExpandClasspathDependencies()).thenReturn(true); - assertEquals( - Arrays.asList( + assertThat(PluginConfigurationProcessor.computeEntrypoint(rawConfiguration, projectProperties)) + .containsExactly( "java", "-cp", "/app/resources:/app/classes:/app/libs/foo-1.jar:/app/libs/bar-2.jar", - "java.lang.Object"), - PluginConfigurationProcessor.computeEntrypoint(rawConfiguration, projectProperties)); + "java.lang.Object") + .inOrder(); } @Test @@ -337,8 +325,8 @@ public void testEntrypoint_defaultWarPackaging() BuildContext buildContext = getBuildContext(processCommonConfiguration()); - Assert.assertNull(buildContext.getContainerConfiguration().getEntrypoint()); - Mockito.verifyNoInteractions(logger); + assertThat(buildContext.getContainerConfiguration().getEntrypoint()).isNull(); + verifyNoInteractions(logger); } @Test @@ -354,12 +342,13 @@ public void testEntrypoint_defaultNonWarPackaging() BuildContext buildContext = getBuildContext(processCommonConfiguration()); - assertEquals( - Arrays.asList("java", "-cp", "/app/resources:/app/classes:/app/libs/*", "java.lang.Object"), - buildContext.getContainerConfiguration().getEntrypoint()); + assertThat(buildContext.getContainerConfiguration().getEntrypoint()) + .containsExactly( + "java", "-cp", "/app/resources:/app/classes:/app/libs/*", "java.lang.Object") + .inOrder(); ArgumentMatcher isLogWarn = logEvent -> logEvent.getLevel() == LogEvent.Level.WARN; - verify(logger, Mockito.never()).accept(Mockito.argThat(isLogWarn)); + verify(logger, never()).accept(argThat(isLogWarn)); } @Test @@ -376,13 +365,13 @@ public void testEntrypoint_extraClasspathNonWarPackaging() BuildContext buildContext = getBuildContext(processCommonConfiguration()); - assertEquals( - Arrays.asList( - "java", "-cp", "/foo:/app/resources:/app/classes:/app/libs/*", "java.lang.Object"), - buildContext.getContainerConfiguration().getEntrypoint()); + assertThat(buildContext.getContainerConfiguration().getEntrypoint()) + .containsExactly( + "java", "-cp", "/foo:/app/resources:/app/classes:/app/libs/*", "java.lang.Object") + .inOrder(); ArgumentMatcher isLogWarn = logEvent -> logEvent.getLevel() == LogEvent.Level.WARN; - verify(logger, Mockito.never()).accept(Mockito.argThat(isLogWarn)); + verify(logger, never()).accept(argThat(isLogWarn)); } @Test @@ -397,7 +386,7 @@ public void testUser() BuildContext buildContext = getBuildContext(processCommonConfiguration()); - assertEquals("customUser", buildContext.getContainerConfiguration().getUser()); + assertThat(buildContext.getContainerConfiguration().getUser()).isEqualTo("customUser"); } @Test @@ -410,7 +399,7 @@ public void testUser_null() InvalidCreationTimeException { BuildContext buildContext = getBuildContext(processCommonConfiguration()); - Assert.assertNull(buildContext.getContainerConfiguration().getUser()); + assertThat(buildContext.getContainerConfiguration().getUser()).isNull(); } @Test @@ -427,9 +416,9 @@ public void testEntrypoint_warningOnJvmFlags() BuildContext buildContext = getBuildContext(processCommonConfiguration()); - assertEquals( - Arrays.asList("custom", "entrypoint"), - buildContext.getContainerConfiguration().getEntrypoint()); + assertThat(buildContext.getContainerConfiguration().getEntrypoint()) + .containsExactly("custom", "entrypoint") + .inOrder(); verify(projectProperties) .log( LogEvent.warn( @@ -451,9 +440,9 @@ public void testEntrypoint_warningOnMainclass() BuildContext buildContext = getBuildContext(processCommonConfiguration()); - assertEquals( - Arrays.asList("custom", "entrypoint"), - buildContext.getContainerConfiguration().getEntrypoint()); + assertThat(buildContext.getContainerConfiguration().getEntrypoint()) + .containsExactly("custom", "entrypoint") + .inOrder(); verify(projectProperties) .log( LogEvent.warn( @@ -475,9 +464,9 @@ public void testEntrypoint_warningOnExpandClasspathDependencies() BuildContext buildContext = getBuildContext(processCommonConfiguration()); - assertEquals( - Arrays.asList("custom", "entrypoint"), - buildContext.getContainerConfiguration().getEntrypoint()); + assertThat(buildContext.getContainerConfiguration().getEntrypoint()) + .containsExactly("custom", "entrypoint") + .inOrder(); verify(projectProperties) .log( LogEvent.warn( @@ -497,7 +486,7 @@ public void testEntrypoint_warningOnMainclassForWar() BuildContext buildContext = getBuildContext(processCommonConfiguration()); - Assert.assertNull(buildContext.getContainerConfiguration().getEntrypoint()); + assertThat(buildContext.getContainerConfiguration().getEntrypoint()).isNull(); verify(projectProperties) .log( LogEvent.warn( @@ -517,7 +506,7 @@ public void testEntrypoint_warningOnExpandClasspathDependenciesForWar() BuildContext buildContext = getBuildContext(processCommonConfiguration()); - Assert.assertNull(buildContext.getContainerConfiguration().getEntrypoint()); + assertThat(buildContext.getContainerConfiguration().getEntrypoint()).isNull(); verify(projectProperties) .log( LogEvent.warn( @@ -537,10 +526,10 @@ public void testEntrypointClasspath_nonDefaultAppRoot() BuildContext buildContext = getBuildContext(processCommonConfiguration()); - assertEquals( - Arrays.asList( - "java", "-cp", "/my/app/resources:/my/app/classes:/my/app/libs/*", "java.lang.Object"), - buildContext.getContainerConfiguration().getEntrypoint()); + assertThat(buildContext.getContainerConfiguration().getEntrypoint()) + .containsExactly( + "java", "-cp", "/my/app/resources:/my/app/classes:/my/app/libs/*", "java.lang.Object") + .inOrder(); } @Test @@ -555,16 +544,15 @@ public void testWebAppEntrypoint_inheritedFromBaseImage() BuildContext buildContext = getBuildContext(processCommonConfiguration()); - Assert.assertNull(buildContext.getContainerConfiguration().getEntrypoint()); + assertThat(buildContext.getContainerConfiguration().getEntrypoint()).isNull(); } @Test public void testGetAppRootChecked() throws InvalidAppRootException { when(rawConfiguration.getAppRoot()).thenReturn("/some/root"); - assertEquals( - AbsoluteUnixPath.get("/some/root"), - PluginConfigurationProcessor.getAppRootChecked(rawConfiguration, projectProperties)); + assertThat(PluginConfigurationProcessor.getAppRootChecked(rawConfiguration, projectProperties)) + .isEqualTo(AbsoluteUnixPath.get("/some/root")); } @Test @@ -611,9 +599,8 @@ public void testGetAppRootChecked_defaultNonWarProject() throws InvalidAppRootEx when(rawConfiguration.getAppRoot()).thenReturn(""); when(projectProperties.isWarProject()).thenReturn(false); - assertEquals( - AbsoluteUnixPath.get("/app"), - PluginConfigurationProcessor.getAppRootChecked(rawConfiguration, projectProperties)); + assertThat(PluginConfigurationProcessor.getAppRootChecked(rawConfiguration, projectProperties)) + .isEqualTo(AbsoluteUnixPath.get("/app")); } @Test @@ -621,9 +608,8 @@ public void testGetAppRootChecked_defaultWarProject() throws InvalidAppRootExcep when(rawConfiguration.getAppRoot()).thenReturn(""); when(projectProperties.isWarProject()).thenReturn(true); - assertEquals( - AbsoluteUnixPath.get("/jetty/webapps/ROOT"), - PluginConfigurationProcessor.getAppRootChecked(rawConfiguration, projectProperties)); + assertThat(PluginConfigurationProcessor.getAppRootChecked(rawConfiguration, projectProperties)) + .isEqualTo(AbsoluteUnixPath.get("/jetty/webapps/ROOT")); } @Test @@ -648,8 +634,7 @@ public void testGetWorkingDirectoryChecked() throws InvalidWorkingDirectoryExcep Optional checkedPath = PluginConfigurationProcessor.getWorkingDirectoryChecked(rawConfiguration); - assertThat(checkedPath).isPresent(); - assertEquals(AbsoluteUnixPath.get("/valid/path"), checkedPath.get()); + assertThat(checkedPath).hasValue(AbsoluteUnixPath.get("/valid/path")); } @Test @@ -675,9 +660,8 @@ public void testGetDefaultBaseImage_nonWarPackaging() throws IncompatibleBaseImageJavaVersionException { when(projectProperties.isWarProject()).thenReturn(false); - assertEquals( - "gcr.io/distroless/java:8", - PluginConfigurationProcessor.getDefaultBaseImage(projectProperties)); + assertThat(PluginConfigurationProcessor.getDefaultBaseImage(projectProperties)) + .isEqualTo("gcr.io/distroless/java:8"); } @Test @@ -685,47 +669,40 @@ public void testGetDefaultBaseImage_warProject() throws IncompatibleBaseImageJavaVersionException { when(projectProperties.isWarProject()).thenReturn(true); - assertEquals( - "gcr.io/distroless/java/jetty:java8", - PluginConfigurationProcessor.getDefaultBaseImage(projectProperties)); + assertThat(PluginConfigurationProcessor.getDefaultBaseImage(projectProperties)) + .isEqualTo("gcr.io/distroless/java/jetty:java8"); } @Test public void testGetDefaultBaseImage_chooseJava8Distroless() throws IncompatibleBaseImageJavaVersionException { when(projectProperties.getMajorJavaVersion()).thenReturn(6); - assertEquals( - "gcr.io/distroless/java:8", - PluginConfigurationProcessor.getDefaultBaseImage(projectProperties)); + assertThat(PluginConfigurationProcessor.getDefaultBaseImage(projectProperties)) + .isEqualTo("gcr.io/distroless/java:8"); when(projectProperties.getMajorJavaVersion()).thenReturn(7); - assertEquals( - "gcr.io/distroless/java:8", - PluginConfigurationProcessor.getDefaultBaseImage(projectProperties)); + assertThat(PluginConfigurationProcessor.getDefaultBaseImage(projectProperties)) + .isEqualTo("gcr.io/distroless/java:8"); when(projectProperties.getMajorJavaVersion()).thenReturn(8); - assertEquals( - "gcr.io/distroless/java:8", - PluginConfigurationProcessor.getDefaultBaseImage(projectProperties)); + assertThat(PluginConfigurationProcessor.getDefaultBaseImage(projectProperties)) + .isEqualTo("gcr.io/distroless/java:8"); } @Test public void testGetDefaultBaseImage_chooseJava11Distroless() throws IncompatibleBaseImageJavaVersionException { when(projectProperties.getMajorJavaVersion()).thenReturn(9); - assertEquals( - "gcr.io/distroless/java:11", - PluginConfigurationProcessor.getDefaultBaseImage(projectProperties)); + assertThat(PluginConfigurationProcessor.getDefaultBaseImage(projectProperties)) + .isEqualTo("gcr.io/distroless/java:11"); when(projectProperties.getMajorJavaVersion()).thenReturn(10); - assertEquals( - "gcr.io/distroless/java:11", - PluginConfigurationProcessor.getDefaultBaseImage(projectProperties)); + assertThat(PluginConfigurationProcessor.getDefaultBaseImage(projectProperties)) + .isEqualTo("gcr.io/distroless/java:11"); when(projectProperties.getMajorJavaVersion()).thenReturn(11); - assertEquals( - "gcr.io/distroless/java:11", - PluginConfigurationProcessor.getDefaultBaseImage(projectProperties)); + assertThat(PluginConfigurationProcessor.getDefaultBaseImage(projectProperties)) + .isEqualTo("gcr.io/distroless/java:11"); } @Test @@ -733,19 +710,16 @@ public void testGetDefaultBaseImage_chooseJava8JettyDistroless() throws IncompatibleBaseImageJavaVersionException { when(projectProperties.getMajorJavaVersion()).thenReturn(6); when(projectProperties.isWarProject()).thenReturn(true); - assertEquals( - "gcr.io/distroless/java/jetty:java8", - PluginConfigurationProcessor.getDefaultBaseImage(projectProperties)); + assertThat(PluginConfigurationProcessor.getDefaultBaseImage(projectProperties)) + .isEqualTo("gcr.io/distroless/java/jetty:java8"); when(projectProperties.getMajorJavaVersion()).thenReturn(7); - assertEquals( - "gcr.io/distroless/java/jetty:java8", - PluginConfigurationProcessor.getDefaultBaseImage(projectProperties)); + assertThat(PluginConfigurationProcessor.getDefaultBaseImage(projectProperties)) + .isEqualTo("gcr.io/distroless/java/jetty:java8"); when(projectProperties.getMajorJavaVersion()).thenReturn(8); - assertEquals( - "gcr.io/distroless/java/jetty:java8", - PluginConfigurationProcessor.getDefaultBaseImage(projectProperties)); + assertThat(PluginConfigurationProcessor.getDefaultBaseImage(projectProperties)) + .isEqualTo("gcr.io/distroless/java/jetty:java8"); } @Test @@ -753,19 +727,16 @@ public void testGetDefaultBaseImage_chooseJava11JettyDistroless() throws IncompatibleBaseImageJavaVersionException { when(projectProperties.getMajorJavaVersion()).thenReturn(9); when(projectProperties.isWarProject()).thenReturn(true); - assertEquals( - "gcr.io/distroless/java/jetty:java11", - PluginConfigurationProcessor.getDefaultBaseImage(projectProperties)); + assertThat(PluginConfigurationProcessor.getDefaultBaseImage(projectProperties)) + .isEqualTo("gcr.io/distroless/java/jetty:java11"); when(projectProperties.getMajorJavaVersion()).thenReturn(10); - assertEquals( - "gcr.io/distroless/java/jetty:java11", - PluginConfigurationProcessor.getDefaultBaseImage(projectProperties)); + assertThat(PluginConfigurationProcessor.getDefaultBaseImage(projectProperties)) + .isEqualTo("gcr.io/distroless/java/jetty:java11"); when(projectProperties.getMajorJavaVersion()).thenReturn(11); - assertEquals( - "gcr.io/distroless/java/jetty:java11", - PluginConfigurationProcessor.getDefaultBaseImage(projectProperties)); + assertThat(PluginConfigurationProcessor.getDefaultBaseImage(projectProperties)) + .isEqualTo("gcr.io/distroless/java/jetty:java11"); } @Test @@ -787,7 +758,7 @@ public void testGetJavaContainerBuilderWithBaseImage_dockerBase() CacheDirectoryCreationException { when(rawConfiguration.getFromImage()).thenReturn(Optional.of("docker://ima.ge/name")); ImageConfiguration result = getCommonImageConfiguration(); - assertEquals("ima.ge/name", result.getImage().toString()); + assertThat(result.getImage().toString()).isEqualTo("ima.ge/name"); assertThat(result.getDockerClient()).isPresent(); assertThat(result.getTarPath()).isEmpty(); } @@ -798,7 +769,7 @@ public void testGetJavaContainerBuilderWithBaseImage_tarBase() CacheDirectoryCreationException { when(rawConfiguration.getFromImage()).thenReturn(Optional.of("tar:///path/to.tar")); ImageConfiguration result = getCommonImageConfiguration(); - assertEquals(Paths.get("/path/to.tar"), result.getTarPath().get()); + assertThat(result.getTarPath()).hasValue(Paths.get("/path/to.tar")); assertThat(result.getDockerClient()).isEmpty(); } @@ -808,7 +779,7 @@ public void testGetJavaContainerBuilderWithBaseImage_registry() CacheDirectoryCreationException { when(rawConfiguration.getFromImage()).thenReturn(Optional.of("ima.ge/name")); ImageConfiguration result = getCommonImageConfiguration(); - assertEquals("ima.ge/name", result.getImage().toString()); + assertThat(result.getImage().toString()).isEqualTo("ima.ge/name"); assertThat(result.getDockerClient()).isEmpty(); assertThat(result.getTarPath()).isEmpty(); } @@ -819,85 +790,81 @@ public void testGetJavaContainerBuilderWithBaseImage_registryWithPrefix() CacheDirectoryCreationException { when(rawConfiguration.getFromImage()).thenReturn(Optional.of("registry://ima.ge/name")); ImageConfiguration result = getCommonImageConfiguration(); - assertEquals("ima.ge/name", result.getImage().toString()); + assertThat(result.getImage().toString()).isEqualTo("ima.ge/name"); assertThat(result.getDockerClient()).isEmpty(); assertThat(result.getTarPath()).isEmpty(); } @Test - public void testGetJavaContainerBuilderWithBaseImage_incompatibleJava8BaseImage() - throws InvalidImageReferenceException, FileNotFoundException { + public void testGetJavaContainerBuilderWithBaseImage_incompatibleJava8BaseImage() { when(projectProperties.getMajorJavaVersion()).thenReturn(11); when(rawConfiguration.getFromImage()).thenReturn(Optional.of("gcr.io/distroless/java:8")); - try { - PluginConfigurationProcessor.getJavaContainerBuilderWithBaseImage( - rawConfiguration, projectProperties, inferredAuthProvider); - fail(); - } catch (IncompatibleBaseImageJavaVersionException ex) { - assertEquals(8, ex.getBaseImageMajorJavaVersion()); - assertEquals(11, ex.getProjectMajorJavaVersion()); - } + IncompatibleBaseImageJavaVersionException exception1 = + assertThrows( + IncompatibleBaseImageJavaVersionException.class, + () -> + PluginConfigurationProcessor.getJavaContainerBuilderWithBaseImage( + rawConfiguration, projectProperties, inferredAuthProvider)); + assertThat(exception1.getBaseImageMajorJavaVersion()).isEqualTo(8); + assertThat(exception1.getProjectMajorJavaVersion()).isEqualTo(11); when(rawConfiguration.getFromImage()).thenReturn(Optional.of("gcr.io/distroless/java:latest")); - try { - PluginConfigurationProcessor.getJavaContainerBuilderWithBaseImage( - rawConfiguration, projectProperties, inferredAuthProvider); - fail(); - } catch (IncompatibleBaseImageJavaVersionException ex) { - assertEquals(8, ex.getBaseImageMajorJavaVersion()); - assertEquals(11, ex.getProjectMajorJavaVersion()); - } + IncompatibleBaseImageJavaVersionException exception2 = + assertThrows( + IncompatibleBaseImageJavaVersionException.class, + () -> + PluginConfigurationProcessor.getJavaContainerBuilderWithBaseImage( + rawConfiguration, projectProperties, inferredAuthProvider)); + assertThat(exception2.getBaseImageMajorJavaVersion()).isEqualTo(8); + assertThat(exception2.getProjectMajorJavaVersion()).isEqualTo(11); } @Test - public void testGetJavaContainerBuilderWithBaseImage_incompatibleJava11BaseImage() - throws InvalidImageReferenceException, FileNotFoundException { + public void testGetJavaContainerBuilderWithBaseImage_incompatibleJava11BaseImage() { when(projectProperties.getMajorJavaVersion()).thenReturn(15); when(rawConfiguration.getFromImage()).thenReturn(Optional.of("gcr.io/distroless/java:11")); - try { - PluginConfigurationProcessor.getJavaContainerBuilderWithBaseImage( - rawConfiguration, projectProperties, inferredAuthProvider); - fail(); - } catch (IncompatibleBaseImageJavaVersionException ex) { - assertEquals(11, ex.getBaseImageMajorJavaVersion()); - assertEquals(15, ex.getProjectMajorJavaVersion()); - } + IncompatibleBaseImageJavaVersionException exception = + assertThrows( + IncompatibleBaseImageJavaVersionException.class, + () -> + PluginConfigurationProcessor.getJavaContainerBuilderWithBaseImage( + rawConfiguration, projectProperties, inferredAuthProvider)); + assertThat(exception.getBaseImageMajorJavaVersion()).isEqualTo(11); + assertThat(exception.getProjectMajorJavaVersion()).isEqualTo(15); } @Test - public void testGetJavaContainerBuilderWithBaseImage_incompatibleJava8JettyBaseImage() - throws InvalidImageReferenceException, FileNotFoundException { + public void testGetJavaContainerBuilderWithBaseImage_incompatibleJava8JettyBaseImage() { when(projectProperties.getMajorJavaVersion()).thenReturn(11); when(rawConfiguration.getFromImage()) .thenReturn(Optional.of("gcr.io/distroless/java/jetty:java8")); - try { - PluginConfigurationProcessor.getJavaContainerBuilderWithBaseImage( - rawConfiguration, projectProperties, inferredAuthProvider); - fail(); - } catch (IncompatibleBaseImageJavaVersionException ex) { - assertEquals(8, ex.getBaseImageMajorJavaVersion()); - assertEquals(11, ex.getProjectMajorJavaVersion()); - } + IncompatibleBaseImageJavaVersionException exception = + assertThrows( + IncompatibleBaseImageJavaVersionException.class, + () -> + PluginConfigurationProcessor.getJavaContainerBuilderWithBaseImage( + rawConfiguration, projectProperties, inferredAuthProvider)); + assertThat(exception.getBaseImageMajorJavaVersion()).isEqualTo(8); + assertThat(exception.getProjectMajorJavaVersion()).isEqualTo(11); } @Test - public void testGetJavaContainerBuilderWithBaseImage_incompatibleJava11JettyBaseImage() - throws InvalidImageReferenceException, FileNotFoundException { + public void testGetJavaContainerBuilderWithBaseImage_incompatibleJava11JettyBaseImage() { when(projectProperties.getMajorJavaVersion()).thenReturn(15); when(rawConfiguration.getFromImage()) .thenReturn(Optional.of("gcr.io/distroless/java/jetty:java11")); - try { - PluginConfigurationProcessor.getJavaContainerBuilderWithBaseImage( - rawConfiguration, projectProperties, inferredAuthProvider); - fail(); - } catch (IncompatibleBaseImageJavaVersionException ex) { - assertEquals(11, ex.getBaseImageMajorJavaVersion()); - assertEquals(15, ex.getProjectMajorJavaVersion()); - } + IncompatibleBaseImageJavaVersionException exception = + assertThrows( + IncompatibleBaseImageJavaVersionException.class, + () -> + PluginConfigurationProcessor.getJavaContainerBuilderWithBaseImage( + rawConfiguration, projectProperties, inferredAuthProvider)); + assertThat(exception.getBaseImageMajorJavaVersion()).isEqualTo(11); + assertThat(exception.getProjectMajorJavaVersion()).isEqualTo(15); } // https://github.com/GoogleContainerTools/jib/issues/1995 @@ -908,23 +875,22 @@ public void testGetJavaContainerBuilderWithBaseImage_java12BaseImage() when(projectProperties.getMajorJavaVersion()).thenReturn(12); when(rawConfiguration.getFromImage()).thenReturn(Optional.of("regis.try/java12image")); ImageConfiguration imageConfiguration = getCommonImageConfiguration(); - assertEquals("regis.try", imageConfiguration.getImageRegistry()); - assertEquals("java12image", imageConfiguration.getImageRepository()); + assertThat(imageConfiguration.getImageRegistry()).isEqualTo("regis.try"); + assertThat(imageConfiguration.getImageRepository()).isEqualTo("java12image"); } @Test - public void testGetJavaContainerBuilderWithBaseImage_java12NoBaseImage() - throws InvalidImageReferenceException, IOException { + public void testGetJavaContainerBuilderWithBaseImage_java12NoBaseImage() { when(projectProperties.getMajorJavaVersion()).thenReturn(12); when(rawConfiguration.getFromImage()).thenReturn(Optional.empty()); - try { - PluginConfigurationProcessor.getJavaContainerBuilderWithBaseImage( - rawConfiguration, projectProperties, inferredAuthProvider); - fail(); - } catch (IncompatibleBaseImageJavaVersionException ex) { - assertEquals(11, ex.getBaseImageMajorJavaVersion()); - assertEquals(12, ex.getProjectMajorJavaVersion()); - } + IncompatibleBaseImageJavaVersionException exception = + assertThrows( + IncompatibleBaseImageJavaVersionException.class, + () -> + PluginConfigurationProcessor.getJavaContainerBuilderWithBaseImage( + rawConfiguration, projectProperties, inferredAuthProvider)); + assertThat(exception.getBaseImageMajorJavaVersion()).isEqualTo(11); + assertThat(exception.getProjectMajorJavaVersion()).isEqualTo(12); } @Test @@ -932,9 +898,8 @@ public void testGetPlatformsSet() throws InvalidPlatformException { Mockito.>when(rawConfiguration.getPlatforms()) .thenReturn(Arrays.asList(new TestPlatformConfiguration("testArchitecture", "testOs"))); - assertEquals( - ImmutableSet.of(new Platform("testArchitecture", "testOs")), - PluginConfigurationProcessor.getPlatformsSet(rawConfiguration)); + assertThat(PluginConfigurationProcessor.getPlatformsSet(rawConfiguration)) + .containsExactly(new Platform("testArchitecture", "testOs")); } @Test @@ -942,13 +907,14 @@ public void testGetPlatformsSet_architectureMissing() { TestPlatformConfiguration platform = new TestPlatformConfiguration(null, "testOs"); Mockito.>when(rawConfiguration.getPlatforms()).thenReturn(Arrays.asList(platform)); - try { - PluginConfigurationProcessor.getPlatformsSet(rawConfiguration); - fail(); - } catch (InvalidPlatformException ex) { - assertEquals("platform configuration is missing an architecture value", ex.getMessage()); - assertEquals("architecture=, os=testOs", ex.getInvalidPlatform()); - } + InvalidPlatformException exception = + assertThrows( + InvalidPlatformException.class, + () -> PluginConfigurationProcessor.getPlatformsSet(rawConfiguration)); + assertThat(exception) + .hasMessageThat() + .isEqualTo("platform configuration is missing an architecture value"); + assertThat(exception.getInvalidPlatform()).isEqualTo("architecture=, os=testOs"); } @Test @@ -960,17 +926,19 @@ public void testGetPlatformsSet_osMissing() { assertThrows( InvalidPlatformException.class, () -> PluginConfigurationProcessor.getPlatformsSet(rawConfiguration)); - assertEquals("platform configuration is missing an OS value", exception.getMessage()); - assertEquals("architecture=testArchitecture, os=", exception.getInvalidPlatform()); + assertThat(exception) + .hasMessageThat() + .isEqualTo("platform configuration is missing an OS value"); + assertThat(exception.getInvalidPlatform()) + .isEqualTo("architecture=testArchitecture, os="); } @Test public void testGetValidVolumesList() throws InvalidContainerVolumeException { when(rawConfiguration.getVolumes()).thenReturn(Collections.singletonList("/some/root")); - assertEquals( - ImmutableSet.of(AbsoluteUnixPath.get("/some/root")), - PluginConfigurationProcessor.getVolumesSet(rawConfiguration)); + assertThat(PluginConfigurationProcessor.getVolumesSet(rawConfiguration)) + .containsExactly(AbsoluteUnixPath.get("/some/root")); } @Test @@ -1025,7 +993,6 @@ public void testGetCreationTime_useCurrentTimestamp() throws InvalidCreationTime Instant now = Instant.now().minusSeconds(2); Instant time = PluginConfigurationProcessor.getCreationTime("USE_CURRENT_TIMESTAMP", projectProperties); - assertThat(time.isAfter(now)).isTrue(); assertThat(time).isGreaterThan(now); } @@ -1111,17 +1078,16 @@ public void getAllFiles_expandsDirectories() throws IOException { File rootFile = temporaryFolder.newFile("file"); File folder = temporaryFolder.newFolder("folder"); File folderFile = temporaryFolder.newFile("folder/file2"); - assertEquals( - ImmutableSet.of(rootFile.toPath().toAbsolutePath(), folderFile.toPath().toAbsolutePath()), - PluginConfigurationProcessor.getAllFiles( - ImmutableSet.of(rootFile.toPath(), folder.toPath()))); + assertThat( + PluginConfigurationProcessor.getAllFiles( + ImmutableSet.of(rootFile.toPath(), folder.toPath()))) + .containsExactly(rootFile.toPath().toAbsolutePath(), folderFile.toPath().toAbsolutePath()); } @Test public void getAllFiles_doesntBreakForNonExistentFiles() throws IOException { Path testPath = Paths.get("/a/file/that/doesnt/exist"); - Assert.assertFalse(Files.exists(testPath)); - assertEquals( - ImmutableSet.of(), PluginConfigurationProcessor.getAllFiles(ImmutableSet.of(testPath))); + assertThat(Files.exists(testPath)).isFalse(); + assertThat(PluginConfigurationProcessor.getAllFiles(ImmutableSet.of(testPath))).isEmpty(); } }