ImageTests Class — spring-boot Architecture
Architecture documentation for the ImageTests class in ImageTests.java from the spring-boot codebase.
Entity Profile
Relationship Graph
Source Code
build-plugin/spring-boot-maven-plugin/src/test/java/org/springframework/boot/maven/ImageTests.java lines 55–312
class ImageTests {
@Test
void getBuildRequestWhenNameIsNullDeducesName() {
BuildRequest request = new Image().getBuildRequest(createArtifact(), mockApplicationContent());
assertThat(request.getName()).hasToString("docker.io/library/my-app:0.0.1-SNAPSHOT");
}
@Test
void getBuildRequestWhenNameIsSetUsesName() {
Image image = new Image();
image.name = "demo";
BuildRequest request = image.getBuildRequest(createArtifact(), mockApplicationContent());
assertThat(request.getName()).hasToString("docker.io/library/demo:latest");
}
@Test
void getBuildRequestWhenNoCustomizationsUsesDefaults() {
BuildRequest request = new Image().getBuildRequest(createArtifact(), mockApplicationContent());
assertThat(request.getName()).hasToString("docker.io/library/my-app:0.0.1-SNAPSHOT");
assertThat(request.getBuilder().toString()).contains("paketobuildpacks/builder-noble-java-tiny");
assertThat(request.isTrustBuilder()).isTrue();
assertThat(request.getRunImage()).isNull();
assertThat(request.getEnv()).isEmpty();
assertThat(request.isCleanCache()).isFalse();
assertThat(request.isVerboseLogging()).isFalse();
assertThat(request.getPullPolicy()).isEqualTo(PullPolicy.ALWAYS);
assertThat(request.isPublish()).isFalse();
assertThat(request.getBuildpacks()).isEmpty();
assertThat(request.getBindings()).isEmpty();
assertThat(request.getNetwork()).isNull();
assertThat(request.getImagePlatform()).isNull();
}
@Test
void getBuildRequestWhenHasBuilderUsesBuilder() {
Image image = new Image();
image.builder = "springboot/builder:2.2.x";
BuildRequest request = image.getBuildRequest(createArtifact(), mockApplicationContent());
assertThat(request.getBuilder()).hasToString("docker.io/springboot/builder:2.2.x");
assertThat(request.isTrustBuilder()).isFalse();
}
@Test
void getBuildRequestWhenHasBuilderAndTrustBuilderUsesBuilderAndTrustBuilder() {
Image image = new Image();
image.builder = "springboot/builder:2.2.x";
image.trustBuilder = true;
BuildRequest request = image.getBuildRequest(createArtifact(), mockApplicationContent());
assertThat(request.getBuilder()).hasToString("docker.io/springboot/builder:2.2.x");
assertThat(request.isTrustBuilder()).isTrue();
}
@Test
void getBuildRequestWhenHasDefaultBuilderAndTrustBuilderUsesTrustBuilder() {
Image image = new Image();
image.trustBuilder = false;
BuildRequest request = image.getBuildRequest(createArtifact(), mockApplicationContent());
assertThat(request.getBuilder().toString()).contains("paketobuildpacks/builder-noble-java-tiny");
assertThat(request.isTrustBuilder()).isFalse();
}
@Test
void getBuildRequestWhenHasRunImageUsesRunImage() {
Image image = new Image();
image.runImage = "springboot/run:latest";
BuildRequest request = image.getBuildRequest(createArtifact(), mockApplicationContent());
assertThat(request.getRunImage()).hasToString("docker.io/springboot/run:latest");
}
@Test
void getBuildRequestWhenHasEnvUsesEnv() {
Image image = new Image();
image.env = Collections.singletonMap("test", "test");
BuildRequest request = image.getBuildRequest(createArtifact(), mockApplicationContent());
assertThat(request.getEnv()).containsExactly(entry("test", "test"));
}
@Test
void getBuildRequestWhenHasCleanCacheUsesCleanCache() {
Image image = new Image();
image.cleanCache = true;
BuildRequest request = image.getBuildRequest(createArtifact(), mockApplicationContent());
assertThat(request.isCleanCache()).isTrue();
}
@Test
void getBuildRequestWhenHasVerboseLoggingUsesVerboseLogging() {
Image image = new Image();
image.verboseLogging = true;
BuildRequest request = image.getBuildRequest(createArtifact(), mockApplicationContent());
assertThat(request.isVerboseLogging()).isTrue();
}
@Test
void getBuildRequestWhenHasPullPolicyUsesPullPolicy() {
Image image = new Image();
image.setPullPolicy(PullPolicy.NEVER);
BuildRequest request = image.getBuildRequest(createArtifact(), mockApplicationContent());
assertThat(request.getPullPolicy()).isEqualTo(PullPolicy.NEVER);
}
@Test
void getBuildRequestWhenHasPublishUsesPublish() {
Image image = new Image();
image.publish = true;
BuildRequest request = image.getBuildRequest(createArtifact(), mockApplicationContent());
assertThat(request.isPublish()).isTrue();
}
@Test
void getBuildRequestWhenHasBuildpacksUsesBuildpacks() {
Image image = new Image();
image.buildpacks = Arrays.asList("example/buildpack1@0.0.1", "example/buildpack2@0.0.2");
BuildRequest request = image.getBuildRequest(createArtifact(), mockApplicationContent());
assertThat(request.getBuildpacks()).containsExactly(BuildpackReference.of("example/buildpack1@0.0.1"),
BuildpackReference.of("example/buildpack2@0.0.2"));
}
@Test
void getBuildRequestWhenHasBindingsUsesBindings() {
Image image = new Image();
image.bindings = Arrays.asList("host-src:container-dest:ro", "volume-name:container-dest:rw");
BuildRequest request = image.getBuildRequest(createArtifact(), mockApplicationContent());
assertThat(request.getBindings()).containsExactly(Binding.of("host-src:container-dest:ro"),
Binding.of("volume-name:container-dest:rw"));
}
@Test
void getBuildRequestWhenNetworkUsesNetwork() {
Image image = new Image();
image.network = "test";
BuildRequest request = image.getBuildRequest(createArtifact(), mockApplicationContent());
assertThat(request.getNetwork()).isEqualTo("test");
}
@Test
void getBuildRequestWhenHasTagsUsesTags() {
Image image = new Image();
image.tags = Arrays.asList("my-app:latest", "example.com/my-app:0.0.1-SNAPSHOT", "example.com/my-app:latest");
BuildRequest request = image.getBuildRequest(createArtifact(), mockApplicationContent());
assertThat(request.getTags()).containsExactly(ImageReference.of("my-app:latest"),
ImageReference.of("example.com/my-app:0.0.1-SNAPSHOT"), ImageReference.of("example.com/my-app:latest"));
}
@Test
void getBuildRequestWhenHasBuildWorkspaceVolumeUsesWorkspace() {
Image image = new Image();
image.buildWorkspace = CacheInfo.fromVolume(new VolumeCacheInfo("build-work-vol"));
BuildRequest request = image.getBuildRequest(createArtifact(), mockApplicationContent());
assertThat(request.getBuildWorkspace()).isEqualTo(Cache.volume("build-work-vol"));
}
@Test
void getBuildRequestWhenHasBuildCacheVolumeUsesCache() {
Image image = new Image();
image.buildCache = CacheInfo.fromVolume(new VolumeCacheInfo("build-cache-vol"));
BuildRequest request = image.getBuildRequest(createArtifact(), mockApplicationContent());
assertThat(request.getBuildCache()).isEqualTo(Cache.volume("build-cache-vol"));
}
@Test
void getBuildRequestWhenHasLaunchCacheVolumeUsesCache() {
Image image = new Image();
image.launchCache = CacheInfo.fromVolume(new VolumeCacheInfo("launch-cache-vol"));
BuildRequest request = image.getBuildRequest(createArtifact(), mockApplicationContent());
assertThat(request.getLaunchCache()).isEqualTo(Cache.volume("launch-cache-vol"));
}
@Test
void getBuildRequestWhenHasBuildWorkspaceBindUsesWorkspace() {
Image image = new Image();
image.buildWorkspace = CacheInfo.fromBind(new BindCacheInfo("build-work-dir"));
BuildRequest request = image.getBuildRequest(createArtifact(), mockApplicationContent());
assertThat(request.getBuildWorkspace()).isEqualTo(Cache.bind("build-work-dir"));
}
@Test
void getBuildRequestWhenHasBuildCacheBindUsesCache() {
Image image = new Image();
image.buildCache = CacheInfo.fromBind(new BindCacheInfo("build-cache-dir"));
BuildRequest request = image.getBuildRequest(createArtifact(), mockApplicationContent());
assertThat(request.getBuildCache()).isEqualTo(Cache.bind("build-cache-dir"));
}
@Test
void getBuildRequestWhenHasLaunchCacheBindUsesCache() {
Image image = new Image();
image.launchCache = CacheInfo.fromBind(new BindCacheInfo("launch-cache-dir"));
BuildRequest request = image.getBuildRequest(createArtifact(), mockApplicationContent());
assertThat(request.getLaunchCache()).isEqualTo(Cache.bind("launch-cache-dir"));
}
@Test
void getBuildRequestWhenHasCreatedDateUsesCreatedDate() {
Image image = new Image();
image.createdDate = "2020-07-01T12:34:56Z";
BuildRequest request = image.getBuildRequest(createArtifact(), mockApplicationContent());
assertThat(request.getCreatedDate()).isEqualTo("2020-07-01T12:34:56Z");
}
@Test
void getBuildRequestWhenHasApplicationDirectoryUsesApplicationDirectory() {
Image image = new Image();
image.applicationDirectory = "/application";
BuildRequest request = image.getBuildRequest(createArtifact(), mockApplicationContent());
assertThat(request.getApplicationDirectory()).isEqualTo("/application");
}
@Test
void getBuildRequestWhenHasNoSecurityOptionsUsesNoSecurityOptions() {
Image image = new Image();
BuildRequest request = image.getBuildRequest(createArtifact(), mockApplicationContent());
assertThat(request.getSecurityOptions()).isNull();
}
@Test
void getBuildRequestWhenHasSecurityOptionsUsesSecurityOptions() {
Image image = new Image();
image.securityOptions = List.of("label=user:USER", "label=role:ROLE");
BuildRequest request = image.getBuildRequest(createArtifact(), mockApplicationContent());
assertThat(request.getSecurityOptions()).containsExactly("label=user:USER", "label=role:ROLE");
}
@Test
void getBuildRequestWhenHasEmptySecurityOptionsUsesSecurityOptions() {
Image image = new Image();
image.securityOptions = Collections.emptyList();
BuildRequest request = image.getBuildRequest(createArtifact(), mockApplicationContent());
assertThat(request.getSecurityOptions()).isEmpty();
}
@Test
void getBuildRequestWhenHasImagePlatformUsesImagePlatform() {
Image image = new Image();
image.imagePlatform = "linux/arm64";
BuildRequest request = image.getBuildRequest(createArtifact(), mockApplicationContent());
assertThat(request.getImagePlatform()).isEqualTo(ImagePlatform.of("linux/arm64"));
}
@Test
void getBuildRequestWhenImagePlatformIsEmptyDoesntSetImagePlatform() {
Image image = new Image();
image.imagePlatform = "";
BuildRequest request = image.getBuildRequest(createArtifact(), mockApplicationContent());
assertThat(request.getImagePlatform()).isNull();
}
private Artifact createArtifact() {
return new DefaultArtifact("com.example", "my-app", VersionRange.createFromVersion("0.0.1-SNAPSHOT"), "compile",
"jar", null, new DefaultArtifactHandler());
}
private Function<Owner, TarArchive> mockApplicationContent() {
return (owner) -> mock(TarArchive.class);
}
}
Domain
Source
Analyze Your Own Codebase
Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.
Try Supermodel Free