Skip to content

Commit 4ea8692

Browse files
test: Fixed 4 nondeterministic flaky tests by sorting collections to make them deterministic
1 parent 7636b19 commit 4ea8692

File tree

3 files changed

+12
-2
lines changed

3 files changed

+12
-2
lines changed

src/test/java/spoon/test/imports/ImportTest.java

+3
Original file line numberDiff line numberDiff line change
@@ -89,6 +89,7 @@
8989
import java.util.ArrayList;
9090
import java.util.Arrays;
9191
import java.util.Collection;
92+
import java.util.Comparator;
9293
import java.util.HashMap;
9394
import java.util.HashSet;
9495
import java.util.List;
@@ -1877,6 +1878,7 @@ void staticImports_ofNestedTypes_shouldBeRecorded(CtModel model) {
18771878

18781879
// assert
18791880
List<CtImport> imports = mainType.getPosition().getCompilationUnit().getImports();
1881+
imports.sort(Comparator.comparing(importElement -> importElement.getReference().getSimpleName()));
18801882
assertThat(imports, hasSize(2));
18811883

18821884
CtImport import0 = imports.get(0);
@@ -1894,6 +1896,7 @@ void staticTypeAndMethodImport_importShouldAppearOnlyOnceIfTheirSimpleNamesAreEq
18941896
// assert
18951897
List<CtImport> imports = mainType.getPosition().getCompilationUnit().getImports();
18961898
assertThat(imports, hasSize(2));
1899+
imports.sort(Comparator.comparing(importElement -> importElement.getImportKind().toString()));
18971900

18981901
CtImport import0 = imports.get(0);
18991902
assertThat(import0.getImportKind(), is(CtImportKind.METHOD));

src/test/java/spoon/test/position/PositionTest.java

+3
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@
1919

2020
import java.io.File;
2121
import java.io.IOException;
22+
import java.util.Comparator;
2223
import java.util.Iterator;
2324
import java.util.List;
2425

@@ -806,6 +807,8 @@ public void testPositionOfCtImport() throws Exception {
806807
AnnonymousClassNewIface.class);
807808
String originSources = foo.getPosition().getCompilationUnit().getOriginalSourceCode();
808809
List<CtImport> imports = foo.getPosition().getCompilationUnit().getImports();
810+
// Sorting using position of import element so that they are sorted in the order they are imported
811+
imports.sort(Comparator.comparing(importElement -> importElement.getPosition().getSourceStart()));
809812
assertEquals(2, imports.size());
810813
Iterator<CtImport> iter = imports.iterator();
811814
{

src/test/java/spoon/test/template/SubstitutionTest.java

+6-2
Original file line numberDiff line numberDiff line change
@@ -176,8 +176,12 @@ public void testCreateTypeFromTemplate() {
176176
assertNotNull(genEnum);
177177
assertSame(genEnum, factory.Type().get("generated.GenEnum"));
178178
assertEquals(2, genEnum.getEnumValues().size());
179-
assertEquals("GOOD", genEnum.getEnumValues().get(0).getSimpleName());
180-
assertEquals("BETTER", genEnum.getEnumValues().get(1).getSimpleName());
179+
List<String> enumValueNames = genEnum.getEnumValues().stream()
180+
.map(CtEnumValue::getSimpleName)
181+
.sorted()
182+
.toList();
183+
assertEquals("GOOD", enumValueNames.get(1));
184+
assertEquals("BETTER", enumValueNames.get(0));
181185
}
182186

183187
@Test

0 commit comments

Comments
 (0)