diff --git a/src/main/java/fr/ariouz/gkit/build/image/arg/NativeBuildArgParser.java b/src/main/java/fr/ariouz/gkit/build/image/arg/NativeBuildArgParser.java index 27bfc2e..4e149c4 100644 --- a/src/main/java/fr/ariouz/gkit/build/image/arg/NativeBuildArgParser.java +++ b/src/main/java/fr/ariouz/gkit/build/image/arg/NativeBuildArgParser.java @@ -1,5 +1,6 @@ package fr.ariouz.gkit.build.image.arg; +import fr.ariouz.gkit.config.ConfigException; import fr.ariouz.gkit.config.models.NativeConfig; import java.util.ArrayList; @@ -12,6 +13,7 @@ public class NativeBuildArgParser { public NativeBuildArgParser() {} public List parseBuildArgs(NativeConfig config) { + if (config == null) throw new ConfigException("Native config is null"); List normalizedArgs = normalize(config.getBuildArgs()); normalizedArgs.sort(Comparator.comparing(NormalizedArg::arg)); return renderArgs(normalizedArgs); diff --git a/src/test/java/fr/ariouz/gkit/test/build/image/NativeBuildArgParserTest.java b/src/test/java/fr/ariouz/gkit/test/build/image/NativeBuildArgParserTest.java new file mode 100644 index 0000000..ded452d --- /dev/null +++ b/src/test/java/fr/ariouz/gkit/test/build/image/NativeBuildArgParserTest.java @@ -0,0 +1,32 @@ +package fr.ariouz.gkit.test.build.image; + +import fr.ariouz.gkit.build.image.arg.NativeBuildArg; +import fr.ariouz.gkit.build.image.arg.NativeBuildArgParser; +import fr.ariouz.gkit.config.models.NativeConfig; +import org.junit.jupiter.api.Test; + +import java.util.List; +import java.util.Map; + +import static org.assertj.core.api.Assertions.assertThat; + +public class NativeBuildArgParserTest { + + + @Test + void parseBuildArgs_isValid() { + NativeConfig nativeConfig = new NativeConfig(); + nativeConfig.setBuildArgs(List.of( + Map.of(NativeBuildArg.FALLBACK_IMAGE.getConfigKey(), false), + Map.of(NativeBuildArg.OPTIMIZATION_LEVEL.getConfigKey(), 2) + )); + + List args = new NativeBuildArgParser() + .parseBuildArgs(nativeConfig); + + assertThat(args).containsExactly( + "--no-fallback", + "-O2" + ); + } +}