|
4 | 4 |
|
5 | 5 | import java.io.ByteArrayOutputStream; |
6 | 6 | import java.io.OutputStreamWriter; |
| 7 | +import java.util.Arrays; |
| 8 | +import java.util.Collections; |
7 | 9 | import org.junit.jupiter.api.Test; |
8 | 10 | import org.openapitools.openapidiff.core.OpenApiCompare; |
| 11 | +import org.openapitools.openapidiff.core.model.ChangedList; |
9 | 12 | import org.openapitools.openapidiff.core.model.ChangedOpenApi; |
10 | 13 |
|
11 | 14 | public class MarkdownRenderTest { |
@@ -40,4 +43,45 @@ public void renderDoesNotFailWhenHTTPStatusCodeIsRange() { |
40 | 43 | render.render(diff, outputStreamWriter); |
41 | 44 | assertThat(outputStream.toString()).isNotBlank(); |
42 | 45 | } |
| 46 | + |
| 47 | + @Test |
| 48 | + public void testEnumRenameDetection() { |
| 49 | + MarkdownRender render = new MarkdownRender(); |
| 50 | + |
| 51 | + // Test 1:1 rename (should show as rename) |
| 52 | + ChangedList<String> enumRename = |
| 53 | + org.openapitools.openapidiff.core.compare.ListDiff.diff( |
| 54 | + new ChangedList.SimpleChangedList<>( |
| 55 | + Collections.singletonList("OldValue"), Collections.singletonList("NewValue"))); |
| 56 | + String renameResult = render.listDiff(2, "enum", enumRename); |
| 57 | + assertThat(renameResult).contains("Renamed enum value:"); |
| 58 | + assertThat(renameResult).contains("`OldValue` -> `NewValue`"); |
| 59 | + |
| 60 | + // Test multiple additions and removals (should fall back to original behavior) |
| 61 | + ChangedList<String> enumMultiple = |
| 62 | + org.openapitools.openapidiff.core.compare.ListDiff.diff( |
| 63 | + new ChangedList.SimpleChangedList<>( |
| 64 | + Arrays.asList("OldValue1", "OldValue2"), Arrays.asList("NewValue1", "NewValue2"))); |
| 65 | + String multipleResult = render.listDiff(2, "enum", enumMultiple); |
| 66 | + assertThat(multipleResult).contains("Added enum values:"); |
| 67 | + assertThat(multipleResult).contains("Removed enum values:"); |
| 68 | + |
| 69 | + // Test single addition (should use original behavior) |
| 70 | + ChangedList<String> enumAdd = |
| 71 | + org.openapitools.openapidiff.core.compare.ListDiff.diff( |
| 72 | + new ChangedList.SimpleChangedList<>( |
| 73 | + Collections.emptyList(), Collections.singletonList("NewValue"))); |
| 74 | + String addResult = render.listDiff(2, "enum", enumAdd); |
| 75 | + assertThat(addResult).contains("Added enum value:"); |
| 76 | + assertThat(addResult).doesNotContain("Renamed"); |
| 77 | + |
| 78 | + // Test single removal (should use original behavior) |
| 79 | + ChangedList<String> enumRemove = |
| 80 | + org.openapitools.openapidiff.core.compare.ListDiff.diff( |
| 81 | + new ChangedList.SimpleChangedList<>( |
| 82 | + Collections.singletonList("OldValue"), Collections.emptyList())); |
| 83 | + String removeResult = render.listDiff(2, "enum", enumRemove); |
| 84 | + assertThat(removeResult).contains("Removed enum value:"); |
| 85 | + assertThat(removeResult).doesNotContain("Renamed"); |
| 86 | + } |
43 | 87 | } |
0 commit comments