Skip to content

Commit 7a76919

Browse files
committed
Fixed duplicated results in service completion (tests)
1 parent 46a9925 commit 7a76919

File tree

2 files changed

+37
-0
lines changed

2 files changed

+37
-0
lines changed

src/test/java/fr/adrienbrault/idea/symfony2plugin/tests/SymfonyLightCodeInsightFixtureTestCase.java

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,9 @@
4949
import org.jetbrains.annotations.NotNull;
5050

5151
import java.util.*;
52+
import java.util.stream.Collectors;
53+
54+
import static java.util.function.Function.identity;
5255

5356
/**
5457
* @author Daniel Espendiller <[email protected]>
@@ -87,6 +90,30 @@ public void assertCompletionNotContains(String filename, String configureByText,
8790
assertFalse(myFixture.getLookupElementStrings().containsAll(Arrays.asList(lookupStrings)));
8891
}
8992

93+
94+
public void assertCompletionResultsAreUnique(
95+
@NotNull LanguageFileType languageFileType,
96+
@NotNull String configureByText,
97+
@NotNull String... lookupStrings
98+
) {
99+
myFixture.configureByText(languageFileType, configureByText);
100+
myFixture.completeBasic();
101+
102+
var results = myFixture.getLookupElementStrings();
103+
if (results != null) {
104+
var duplicates = results.stream()
105+
.filter(result -> Arrays.asList(lookupStrings).contains(result))
106+
.collect(Collectors.groupingBy(identity()))
107+
.entrySet()
108+
.stream()
109+
.filter(result -> result.getValue().size() > 1)
110+
.map(Map.Entry::getKey)
111+
.collect(Collectors.toList());
112+
113+
assertTrue("The following results are duplicated: " + String.join(", ", duplicates), duplicates.isEmpty());
114+
}
115+
}
116+
90117
public void assertCompletionNotContains(LanguageFileType languageFileType, String configureByText, String... lookupStrings) {
91118

92119
myFixture.configureByText(languageFileType, configureByText);

src/test/java/fr/adrienbrault/idea/symfony2plugin/tests/dic/yaml/YamlDicCompletionContributorTest.java

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -61,6 +61,16 @@ public void testServiceCompletion() {
6161
);
6262
}
6363

64+
public void testServiceCompletionResultsAreUnique() {
65+
assertCompletionResultsAreUnique(
66+
YAMLFileType.YML,
67+
"services:\n" +
68+
" newsletter_manager:\n" +
69+
" parent: <caret>\n",
70+
"data_collector.router"
71+
);
72+
}
73+
6474
public void testServiceStaticCompletion() {
6575

6676
assertCompletionContains(YAMLFileType.YML, "services:\n" +

0 commit comments

Comments
 (0)