|
12 | 12 | import org.opensearch.dataprepper.model.event.EventKey; |
13 | 13 | import org.opensearch.dataprepper.model.event.EventKeyFactory; |
14 | 14 | import org.opensearch.dataprepper.model.event.JacksonEvent; |
| 15 | +import org.opensearch.dataprepper.common.TransformOption; |
15 | 16 | import org.opensearch.dataprepper.model.plugin.InvalidPluginConfigurationException; |
16 | 17 | import org.opensearch.dataprepper.model.record.Record; |
17 | 18 | import org.junit.jupiter.api.Test; |
@@ -224,7 +225,53 @@ public void testNoRename_when_RenameWhen_returns_false() { |
224 | 225 | assertThat(editedRecords.get(0).getData().get("message", Object.class), equalTo("thisisamessage")); |
225 | 226 | } |
226 | 227 |
|
| 228 | + @Test |
| 229 | + public void test_transformKey_converting_allkeys_lowercase() { |
| 230 | + Map<String, Object> data = Map.of("KeY1", 1, "kEy2", Map.of("keY3", Map.of("key4", "value4", "KEY5", 5.555))); |
| 231 | + when(mockConfig.getEntries()).thenReturn(null); |
| 232 | + when(mockConfig.getTransformOption()).thenReturn(TransformOption.LOWERCASE); |
| 233 | + Record<Event> record = buildRecordWithEvent(data); |
| 234 | + final RenameKeyProcessor processor = createObjectUnderTest(); |
| 235 | + final List<Record<Event>> editedRecords = (List<Record<Event>>) processor.doExecute(Collections.singletonList(record)); |
| 236 | + assertThat(editedRecords.size(), equalTo(1)); |
| 237 | + assertThat(editedRecords.get(0).getData().containsKey("key1"), is(true)); |
| 238 | + assertThat(editedRecords.get(0).getData().containsKey("key2"), is(true)); |
| 239 | + assertThat(editedRecords.get(0).getData().containsKey("key2/key3"), is(true)); |
| 240 | + assertThat(editedRecords.get(0).getData().containsKey("key2/key3/key4"), is(true)); |
| 241 | + assertThat(editedRecords.get(0).getData().containsKey("key2/key3/key5"), is(true)); |
| 242 | + } |
227 | 243 |
|
| 244 | + @Test |
| 245 | + public void test_transformKey_converting_allkeys_uppercase() { |
| 246 | + Map<String, Object> data = Map.of("KeY1", 1, "kEy2", Map.of("keY3", Map.of("key4", "value4", "KEY5", 5.555))); |
| 247 | + when(mockConfig.getEntries()).thenReturn(null); |
| 248 | + when(mockConfig.getTransformOption()).thenReturn(TransformOption.UPPERCASE); |
| 249 | + Record<Event> record = buildRecordWithEvent(data); |
| 250 | + final RenameKeyProcessor processor = createObjectUnderTest(); |
| 251 | + final List<Record<Event>> editedRecords = (List<Record<Event>>) processor.doExecute(Collections.singletonList(record)); |
| 252 | + assertThat(editedRecords.size(), equalTo(1)); |
| 253 | + assertThat(editedRecords.get(0).getData().containsKey("KEY1"), is(true)); |
| 254 | + assertThat(editedRecords.get(0).getData().containsKey("KEY2"), is(true)); |
| 255 | + assertThat(editedRecords.get(0).getData().containsKey("KEY2/KEY3"), is(true)); |
| 256 | + assertThat(editedRecords.get(0).getData().containsKey("KEY2/KEY3/KEY4"), is(true)); |
| 257 | + assertThat(editedRecords.get(0).getData().containsKey("KEY2/KEY3/KEY5"), is(true)); |
| 258 | + } |
| 259 | + |
| 260 | + @Test |
| 261 | + public void test_transformKey_converting_allkeys_capitalize() { |
| 262 | + Map<String, Object> data = Map.of("key1", 1, "key2", Map.of("key3", Map.of("key4", "value4", "Key5", 5.555))); |
| 263 | + when(mockConfig.getEntries()).thenReturn(null); |
| 264 | + when(mockConfig.getTransformOption()).thenReturn(TransformOption.CAPITALIZE); |
| 265 | + Record<Event> record = buildRecordWithEvent(data); |
| 266 | + final RenameKeyProcessor processor = createObjectUnderTest(); |
| 267 | + final List<Record<Event>> editedRecords = (List<Record<Event>>) processor.doExecute(Collections.singletonList(record)); |
| 268 | + assertThat(editedRecords.size(), equalTo(1)); |
| 269 | + assertThat(editedRecords.get(0).getData().containsKey("Key1"), is(true)); |
| 270 | + assertThat(editedRecords.get(0).getData().containsKey("Key2"), is(true)); |
| 271 | + assertThat(editedRecords.get(0).getData().containsKey("Key2/Key3"), is(true)); |
| 272 | + assertThat(editedRecords.get(0).getData().containsKey("Key2/Key3/Key4"), is(true)); |
| 273 | + assertThat(editedRecords.get(0).getData().containsKey("Key2/Key3/Key5"), is(true)); |
| 274 | + } |
228 | 275 |
|
229 | 276 | private RenameKeyProcessor createObjectUnderTest() { |
230 | 277 | return new RenameKeyProcessor(pluginMetrics, mockConfig, expressionEvaluator); |
|
0 commit comments