Skip to content

Commit

Permalink
refactor (jkube-kit-build-api): Migrate tests from JUnit4 to JUnit5 (#…
Browse files Browse the repository at this point in the history
…1554)

Signed-off-by: Anurag Rajawat <anuragsinghrajawat22@gmail.com>
  • Loading branch information
anurag-rajawat authored and manusa committed Oct 10, 2022
1 parent caecf6e commit 4e24f9a
Show file tree
Hide file tree
Showing 14 changed files with 398 additions and 382 deletions.
13 changes: 11 additions & 2 deletions jkube-kit/build/api/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -55,10 +55,19 @@
<scope>test</scope>
<type>test-jar</type>
</dependency>

<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter-engine</artifactId>
<scope>test</scope>
</dependency>

<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter-params</artifactId>
<scope>test</scope>
</dependency>

<dependency>
<groupId>org.assertj</groupId>
<artifactId>assertj-core</artifactId>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,70 +14,68 @@
package org.eclipse.jkube.kit.build.api.assembly;

import java.io.File;
import java.nio.file.Files;
import java.nio.file.Path;
import java.util.Arrays;

import org.eclipse.jkube.kit.common.JavaProject;
import org.eclipse.jkube.kit.common.AssemblyConfiguration;
import org.eclipse.jkube.kit.common.JKubeConfiguration;
import org.junit.Before;
import org.junit.Rule;
import org.junit.Test;
import org.junit.rules.TemporaryFolder;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.io.TempDir;

import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertSame;
import static org.junit.Assert.assertTrue;
import static org.assertj.core.api.Assertions.assertThat;
import static org.assertj.core.api.Assertions.assertThatIllegalArgumentException;

public class AssemblyConfigurationSourceTest {
class AssemblyConfigurationSourceTest {

@Rule
public TemporaryFolder temporaryFolder = new TemporaryFolder();
private File buildDirectory;

private AssemblyConfiguration assemblyConfig;

@Before
public void setup() throws Exception {
buildDirectory = temporaryFolder.newFolder("build");
@BeforeEach
void setup(@TempDir Path temporaryFolder) throws Exception {
buildDirectory = Files.createDirectory(temporaryFolder.resolve("build")).toFile();
// set 'ignorePermissions' to something other than default
this.assemblyConfig = AssemblyConfiguration.builder()
.permissionsString("keep")
.build();
.permissionsString("keep")
.build();
}

@Test
void permissionMode_invalid() {
assertThatIllegalArgumentException()
.isThrownBy(() -> AssemblyConfiguration.builder().permissionsString("blub").build())
.withMessageContaining("blub");
}

@Test
public void permissionMode() {
try {
AssemblyConfiguration.builder().permissionsString("blub").build();
} catch (IllegalArgumentException exp) {
assertTrue(exp.getMessage().contains("blub"));
}

AssemblyConfiguration config = AssemblyConfiguration.builder().permissionsString("ignore").build();
assertSame(AssemblyConfiguration.PermissionMode.ignore, config.getPermissions());
void permissionsMode_ignore() {
AssemblyConfiguration config = AssemblyConfiguration.builder().permissionsString("ignore").build();
assertThat(config.getPermissions()).isSameAs(AssemblyConfiguration.PermissionMode.ignore);
}

@Test
public void testCreateSourceAbsolute() {
void testCreateSourceAbsolute() {
testCreateSource(buildBuildContext("/src/docker".replace("/", File.separator), "/output/docker".replace("/", File.separator)));
}

@Test
public void testCreateSourceRelative() {
void testCreateSourceRelative() {
testCreateSource(buildBuildContext("src/docker".replace("/", File.separator), "output/docker".replace("/", File.separator)));
}

@Test
public void testOutputDirHasImage() {
void testOutputDirHasImage() {
String image = "image";
JKubeConfiguration context = buildBuildContext("src/docker", "output/docker");
AssemblyConfigurationSource source = new AssemblyConfigurationSource(context,
new BuildDirs(image, context), assemblyConfig);

assertTrue(containsDir(image, source.getOutputDirectory()));
assertTrue(containsDir(image, source.getWorkingDirectory()));
assertTrue(containsDir(image, source.getTemporaryRootDirectory()));
assertThat(containsDir(image, source.getOutputDirectory())).isTrue();
assertThat(containsDir(image, source.getWorkingDirectory())).isTrue();
assertThat(containsDir(image, source.getTemporaryRootDirectory())).isTrue();
}

private JKubeConfiguration buildBuildContext(String sourceDir, String outputDir) {
Expand All @@ -92,7 +90,7 @@ private void testCreateSource(JKubeConfiguration context) {
AssemblyConfigurationSource source =
new AssemblyConfigurationSource(context, new BuildDirs("image", context), assemblyConfig);

assertFalse("we must not ignore permissions when creating the archive", source.isIgnorePermissions());
assertThat(source.isIgnorePermissions()).isFalse();

String outputDir = context.getOutputDirectory();

Expand All @@ -108,11 +106,11 @@ private boolean containsDir(String outputDir, File path) {
private void assertStartsWithDir(String outputDir, File path) {
String expectedStartsWith = outputDir + File.separator;
int length = expectedStartsWith.length();
assertEquals(expectedStartsWith, path.toString().substring(0, length));
assertThat(path.toString().substring(0, length)).isEqualTo(expectedStartsWith);
}

@Test
public void testReactorProjects() {
void testReactorProjects() {

JavaProject project1 = JavaProject.builder().build();
JavaProject project2 = JavaProject.builder().build();
Expand All @@ -123,7 +121,7 @@ public void testReactorProjects() {
.reactorProjects(Arrays.asList(project1, project2))
.build();
AssemblyConfigurationSource source = new AssemblyConfigurationSource(buildContext,null,null);
assertEquals(2, source.getReactorProjects().size());
assertThat(source.getReactorProjects()).hasSize(2);
}
}

Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,8 @@
import org.eclipse.jkube.kit.common.AssemblyFileSet;
import org.eclipse.jkube.kit.config.image.build.Arguments;
import org.eclipse.jkube.kit.config.image.build.BuildConfiguration;
import org.junit.Test;
import org.junit.jupiter.api.Test;

import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.when;
import static org.assertj.core.api.Assertions.assertThat;
Expand All @@ -36,11 +37,10 @@
import static org.eclipse.jkube.kit.build.api.assembly.AssemblyConfigurationUtils.getJKubeAssemblyFileSets;
import static org.eclipse.jkube.kit.build.api.assembly.AssemblyConfigurationUtils.getJKubeAssemblyFiles;


public class AssemblyConfigurationUtilsTest {
class AssemblyConfigurationUtilsTest {

@Test
public void getAssemblyConfigurationOrCreateDefaultNoConfigurationShouldReturnDefault() {
void getAssemblyConfigurationOrCreateDefault_withNoConfiguration_shouldReturnDefault() {
// Given
BuildConfiguration mockedBuildConfiguration = mock(BuildConfiguration.class);
when(mockedBuildConfiguration.getAssembly()).thenReturn(null);
Expand All @@ -54,7 +54,7 @@ public void getAssemblyConfigurationOrCreateDefaultNoConfigurationShouldReturnDe
}

@Test
public void getAssemblyConfigurationOrCreateDefaultWithConfigurationShouldReturnConfiguration() {
void getAssemblyConfigurationOrCreateDefault_withConfiguration_shouldReturnConfiguration() {
// Given
BuildConfiguration mockedBuildConfiguration = mock(BuildConfiguration.class);
final AssemblyConfiguration configuration = AssemblyConfiguration.builder().user("OtherUser").name("ImageName").build();
Expand All @@ -69,15 +69,15 @@ public void getAssemblyConfigurationOrCreateDefaultWithConfigurationShouldReturn
}

@Test
public void getJKubeAssemblyFileSetsNullShouldReturnEmptyList() {
void getJKubeAssemblyFileSets_withNull_shouldReturnEmptyList() {
// When
final List<AssemblyFileSet> result = getJKubeAssemblyFileSets(null);
// Then
assertThat(result).isNotNull().isEmpty();
}

@Test
public void getJKubeAssemblyFileSetsNullFileSetsShouldReturnEmptyList() {
void getJKubeAssemblyFileSets_withNullFileSets_shouldReturnEmptyList() {
// Given
final Assembly assembly = new Assembly();
// When
Expand All @@ -87,7 +87,7 @@ public void getJKubeAssemblyFileSetsNullFileSetsShouldReturnEmptyList() {
}

@Test
public void getJKubeAssemblyFileSetsNotNullShouldReturnFileSets() {
void getJKubeAssemblyFileSets_withNotNullFileSets_shouldReturnFileSets() {
// Given
Assembly assembly = mock(Assembly.class);
AssemblyFileSet fileSet = mock(AssemblyFileSet.class);
Expand All @@ -98,20 +98,20 @@ public void getJKubeAssemblyFileSetsNotNullShouldReturnFileSets() {
// Then
assertThat(result)
.isNotNull()
.hasSize(1).first()
.singleElement()
.hasFieldOrPropertyWithValue("directory.name", "1337");
}

@Test
public void getJKubeAssemblyFilesNullShouldReturnEmptyList() {
void getJKubeAssemblyFiles_withNull_shouldReturnEmptyList() {
// When
final List<AssemblyFile> result = getJKubeAssemblyFiles(null);
// Then
assertThat(result).isNotNull().isEmpty();
}

@Test
public void getJKubeAssemblyFilesNullFilesShouldReturnEmptyList() {
void getJKubeAssemblyFiles_withNullFiles_shouldReturnEmptyList() {
// Given
final Assembly assembly = new Assembly();
// When
Expand All @@ -121,9 +121,9 @@ public void getJKubeAssemblyFilesNullFilesShouldReturnEmptyList() {
}

@Test
public void getJKubeAssemblyFilesNotNullShouldReturnFiles() {
void getJKubeAssemblyFiles_withNotNull_shouldReturnFiles() {
// Given
AssemblyFile file = mock(AssemblyFile.class);
AssemblyFile file = mock(AssemblyFile.class);
Assembly assembly = mock(Assembly.class);
when(assembly.getFiles()).thenReturn(Collections.singletonList(file));
when(file.getSource()).thenReturn(new File("1337"));
Expand All @@ -132,12 +132,12 @@ public void getJKubeAssemblyFilesNotNullShouldReturnFiles() {
// Then
assertThat(result)
.isNotNull()
.hasSize(1).first()
.singleElement()
.hasFieldOrPropertyWithValue("source.name", "1337");
}

@Test
public void createDockerFileBuilder_withEmptyBuildConfigurationNoAssembly_shouldReturnOnlyBase() {
void createDockerFileBuilder_withEmptyBuildConfigurationNoAssembly_shouldReturnOnlyBase() {
// Given
final BuildConfiguration buildConfig = BuildConfiguration.builder().build();
// When
Expand All @@ -149,7 +149,7 @@ public void createDockerFileBuilder_withEmptyBuildConfigurationNoAssembly_should
}

@Test
public void createDockerFileBuilder_withNoAssembly_shouldReturnTransformedContent() {
void createDockerFileBuilder_withNoAssembly_shouldReturnTransformedContent() {
// Given
final BuildConfiguration buildConfig = BuildConfiguration.builder()
.putEnv("ENV_VAR", "VALUE")
Expand All @@ -172,12 +172,12 @@ public void createDockerFileBuilder_withNoAssembly_shouldReturnTransformedConten
"EXPOSE 8080\n" +
"RUN chown -R 1000:1000 /opt\n" +
"VOLUME [\"VOLUME\"]\n" +
"CMD [\"sh\",\"-c\",\"server\"]\n"+
"CMD [\"sh\",\"-c\",\"server\"]\n" +
"USER 1000\n");
}

@Test
public void createDockerFileBuilder_withAssemblyAndFiles_shouldReturnTransformedContent() {
void createDockerFileBuilder_withAssemblyAndFiles_shouldReturnTransformedContent() {
// Given
final BuildConfiguration buildConfig = BuildConfiguration.builder()
.putEnv("ENV_VAR", "VALUE")
Expand All @@ -195,7 +195,7 @@ public void createDockerFileBuilder_withAssemblyAndFiles_shouldReturnTransformed
.layer(Assembly.builder().build())
.build();
final Map<Assembly, List<AssemblyFileEntry>> layers = assemblyConfiguration.getLayers().stream().collect(
Collectors.toMap(Function.identity(), a ->Collections.singletonList(
Collectors.toMap(Function.identity(), a -> Collections.singletonList(
new AssemblyFileEntry(new File(""), new File(""), null))));
// When
final String result = createDockerFileBuilder(buildConfig, assemblyConfiguration, layers).content();
Expand All @@ -216,7 +216,7 @@ public void createDockerFileBuilder_withAssemblyAndFiles_shouldReturnTransformed
}

@Test
public void createDockerFileBuilder_withAssemblyAndFilesInSingleLayer_shouldReturnTransformedContent() {
void createDockerFileBuilder_withAssemblyAndFilesInSingleLayer_shouldReturnTransformedContent() {
// Given
final BuildConfiguration buildConfig = BuildConfiguration.builder()
.user("1000")
Expand All @@ -228,7 +228,7 @@ public void createDockerFileBuilder_withAssemblyAndFilesInSingleLayer_shouldRetu
.layer(new Assembly())
.build();
final Map<Assembly, List<AssemblyFileEntry>> layers = assemblyConfiguration.getLayers().stream().collect(
Collectors.toMap(Function.identity(), a ->Collections.singletonList(
Collectors.toMap(Function.identity(), a -> Collections.singletonList(
new AssemblyFileEntry(new File(""), new File(""), null))));
layers.put(new Assembly(), Collections.emptyList());
// When
Expand Down
Loading

0 comments on commit 4e24f9a

Please sign in to comment.