Skip to content

Commit 298d005

Browse files
[fix] handle empty map in each kind of import
1 parent 3ec9cab commit 298d005

File tree

6 files changed

+50
-0
lines changed

6 files changed

+50
-0
lines changed

consul-populate-core/src/main/java/com/frogdevelopment/consul/populate/files/JsonFilesImporter.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
import java.util.List;
88
import java.util.Map;
99
import java.util.SequencedMap;
10+
1011
import jakarta.inject.Singleton;
1112

1213
import com.fasterxml.jackson.core.JsonProcessingException;
@@ -61,6 +62,9 @@ protected SequencedMap<String, Object> readFile(@NonNull final File file) throws
6162
@NonNull
6263
@Override
6364
protected String writeValueAsString(@NonNull final Map<String, Object> map) throws JsonProcessingException {
65+
if (map == null || map.isEmpty()) {
66+
return "";
67+
}
6468
return objectMapper.writerWithDefaultPrettyPrinter().writeValueAsString(map);
6569
}
6670
}

consul-populate-core/src/main/java/com/frogdevelopment/consul/populate/files/PropertiesFilesImporter.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99
import java.util.Properties;
1010
import java.util.SequencedMap;
1111
import java.util.stream.Collectors;
12+
1213
import jakarta.inject.Singleton;
1314

1415
import io.micronaut.context.annotation.Requires;
@@ -57,6 +58,9 @@ protected SequencedMap<String, Object> readFile(@NonNull final File file) throws
5758
@NonNull
5859
@Override
5960
protected String writeValueAsString(@NonNull final Map<String, Object> map) {
61+
if (map == null || map.isEmpty()) {
62+
return "";
63+
}
6064
return map.entrySet()
6165
.stream()
6266
.map(entry -> entry.getKey() + "=" + entry.getValue())

consul-populate-core/src/main/java/com/frogdevelopment/consul/populate/files/YamlFilesImporter.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
import java.util.List;
77
import java.util.Map;
88
import java.util.SequencedMap;
9+
910
import jakarta.inject.Singleton;
1011

1112
import org.yaml.snakeyaml.Yaml;
@@ -54,6 +55,9 @@ protected SequencedMap<String, Object> readFile(@NonNull final File file) throws
5455
@NonNull
5556
@Override
5657
protected String writeValueAsString(@NonNull final Map<String, Object> map) {
58+
if (map == null || map.isEmpty()) {
59+
return "";
60+
}
5761
return yaml.dumpAsMap(map);
5862
}
5963
}

consul-populate-core/src/test/java/com/frogdevelopment/consul/populate/files/JsonFilesImporterTest.java

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,13 +2,17 @@
22

33
import static org.assertj.core.api.Assertions.assertThat;
44

5+
import java.util.TreeMap;
6+
57
import jakarta.inject.Inject;
68

79
import org.intellij.lang.annotations.Language;
810
import org.junit.jupiter.api.Test;
911
import org.junit.jupiter.params.ParameterizedTest;
1012
import org.junit.jupiter.params.provider.CsvSource;
1113

14+
import com.fasterxml.jackson.core.JsonProcessingException;
15+
1216
import io.micronaut.context.annotation.Property;
1317

1418
@Property(name = "consul.files.format", value = "JSON")
@@ -76,4 +80,14 @@ void should_mergeJson() {
7680
.hasSize(1)
7781
.containsEntry("application", EXPECTED);
7882
}
83+
84+
@Test
85+
void should_handle_empty() throws JsonProcessingException {
86+
// given
87+
// when
88+
final var value = filesImporter.writeValueAsString(new TreeMap<>());
89+
90+
// then
91+
assertThat(value).isBlank();
92+
}
7993
}

consul-populate-core/src/test/java/com/frogdevelopment/consul/populate/files/PropertiesFilesImporterTest.java

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,8 @@
22

33
import static org.assertj.core.api.Assertions.assertThat;
44

5+
import java.util.TreeMap;
6+
57
import jakarta.inject.Inject;
68

79
import org.intellij.lang.annotations.Language;
@@ -53,4 +55,14 @@ void should_mergeProperties() {
5355
.containsEntry("application", EXPECTED);
5456
}
5557

58+
@Test
59+
void should_handle_empty() {
60+
// given
61+
// when
62+
final var value = filesImporter.writeValueAsString(new TreeMap<>());
63+
64+
// then
65+
assertThat(value).isBlank();
66+
}
67+
5668
}

consul-populate-core/src/test/java/com/frogdevelopment/consul/populate/files/YamlFilesImporterTest.java

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,8 @@
22

33
import static org.assertj.core.api.Assertions.assertThat;
44

5+
import java.util.TreeMap;
6+
57
import jakarta.inject.Inject;
68

79
import org.intellij.lang.annotations.Language;
@@ -70,4 +72,14 @@ void should_mergeYaml() {
7072
.hasSize(1)
7173
.containsEntry("application", EXPECTED);
7274
}
75+
76+
@Test
77+
void should_handle_empty() {
78+
// given
79+
// when
80+
final var value = filesImporter.writeValueAsString(new TreeMap<>());
81+
82+
// then
83+
assertThat(value).isBlank();
84+
}
7385
}

0 commit comments

Comments
 (0)