Skip to content

Commit 962cea7

Browse files
committed
add unit tests
1 parent 57a0ee2 commit 962cea7

File tree

2 files changed

+52
-8
lines changed

2 files changed

+52
-8
lines changed

operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/dependent/kubernetes/SSABasedGenericKubernetesResourceMatcher.java

Lines changed: 6 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -136,18 +136,17 @@ private String getDiff(Map<String, Object> prunedActualMap, Map<String, Object>
136136
}
137137

138138
@SuppressWarnings("unchecked")
139-
private Map<String, Object> sortMap(Map<String, Object> map) {
139+
Map<String, Object> sortMap(Map<String, Object> map) {
140140
List<String> sortedKeys = new ArrayList<>(map.keySet());
141141
Collections.sort(sortedKeys);
142142

143143
Map<String, Object> sortedMap = new LinkedHashMap<>();
144144
for (String key : sortedKeys) {
145145
Object value = map.get(key);
146146
if (value instanceof Map) {
147-
Map<String, Object> nestedMap = (Map<String, Object>) value;
148-
sortedMap.put(key, sortMap(nestedMap));
147+
sortedMap.put(key, sortMap((Map<String, Object>) value));
149148
} else if (value instanceof List) {
150-
sortedMap.put(key, sortList((List<?>) value));
149+
sortedMap.put(key, sortListItems((List<Object>) value));
151150
} else {
152151
sortedMap.put(key, value);
153152
}
@@ -156,14 +155,13 @@ private Map<String, Object> sortMap(Map<String, Object> map) {
156155
}
157156

158157
@SuppressWarnings("unchecked")
159-
private List<?> sortList(List<?> list) {
158+
List<Object> sortListItems(List<Object> list) {
160159
List<Object> sortedList = new ArrayList<>();
161160
for (Object item : list) {
162161
if (item instanceof Map) {
163-
Map<String, Object> mapItem = (Map<String, Object>) item;
164-
sortedList.add(sortMap(mapItem));
162+
sortedList.add(sortMap((Map<String, Object>) item));
165163
} else if (item instanceof List) {
166-
sortedList.add(sortList((List<?>) item));
164+
sortedList.add(sortListItems((List<Object>) item));
167165
} else {
168166
sortedList.add(item);
169167
}

operator-framework-core/src/test/java/io/javaoperatorsdk/operator/processing/dependent/kubernetes/SSABasedGenericKubernetesResourceMatcherTest.java

Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,8 @@
11
package io.javaoperatorsdk.operator.processing.dependent.kubernetes;
22

3+
import java.util.Arrays;
4+
import java.util.HashMap;
5+
import java.util.List;
36
import java.util.Map;
47

58
import org.junit.jupiter.api.BeforeEach;
@@ -121,4 +124,47 @@ private <R> R loadResource(String fileName, Class<R> clazz) {
121124
fileName);
122125
}
123126

127+
@Test
128+
@SuppressWarnings("unchecked")
129+
void sortListItemsTest() {
130+
Map<String, Object> nestedMap1 = new HashMap<>();
131+
nestedMap1.put("z", 26);
132+
nestedMap1.put("y", 25);
133+
134+
Map<String, Object> nestedMap2 = new HashMap<>();
135+
nestedMap2.put("b", 26);
136+
nestedMap2.put("c", 25);
137+
nestedMap2.put("a", 24);
138+
139+
List<Object> unsortedListItems = Arrays.asList(1, nestedMap1, nestedMap2);
140+
List<Object> sortedListItems = matcher.sortListItems(unsortedListItems);
141+
142+
assertThat(sortedListItems).element(0).isEqualTo(1);
143+
144+
Map<String, Object> sortedNestedMap1 = (Map<String, Object>) sortedListItems.get(1);
145+
assertThat(sortedNestedMap1.keySet()).containsExactly("y", "z");
146+
147+
Map<String, Object> sortedNestedMap2 = (Map<String, Object>) sortedListItems.get(2);
148+
assertThat(sortedNestedMap2.keySet()).containsExactly("a", "b", "c");
149+
}
150+
151+
@Test
152+
@SuppressWarnings("unchecked")
153+
void testSortMapWithNestedMap() {
154+
Map<String, Object> nestedMap = new HashMap<>();
155+
nestedMap.put("z", 26);
156+
nestedMap.put("y", 25);
157+
158+
Map<String, Object> unsortedMap = new HashMap<>();
159+
unsortedMap.put("b", nestedMap);
160+
unsortedMap.put("a", 1);
161+
unsortedMap.put("c", 2);
162+
163+
Map<String, Object> sortedMap = matcher.sortMap(unsortedMap);
164+
165+
assertThat(sortedMap.keySet()).containsExactly("a", "b", "c");
166+
167+
Map<String, Object> sortedNestedMap = (Map<String, Object>) sortedMap.get("b");
168+
assertThat(sortedNestedMap.keySet()).containsExactly("y", "z");
169+
}
124170
}

0 commit comments

Comments
 (0)