package org.elixir_lang.code_insight.completion.contributor;
import com.intellij.codeInsight.completion.CompletionType;
import com.intellij.testFramework.fixtures.LightPlatformCodeInsightFixtureTestCase;
import org.jetbrains.annotations.NotNull;
import java.util.List;
public class CallDefinitionClauseTest extends LightPlatformCodeInsightFixtureTestCase {
/*
* Tests
*/
public void testPrivateFunction() {
myFixture.configureByFiles("private_function_usage.ex", "private_function_declaration.ex");
myFixture.complete(CompletionType.BASIC, 1);
List<String> strings = myFixture.getLookupElementStrings();
assertNotNull("Completion lookup not shown", strings);
assertCompletion("private_function1", strings);
assertCompletion("private_function2", strings);
assertEquals("Wrong number of completions", 2, strings.size());
}
public void testPublicFunction() {
myFixture.configureByFiles("public_function_usage.ex", "public_function_declaration.ex");
myFixture.complete(CompletionType.BASIC, 1);
List<String> strings = myFixture.getLookupElementStrings();
assertNotNull("Completion lookup not shown", strings);
assertCompletion("public_function1", strings);
assertCompletion("public_function2", strings);
assertEquals("Wrong number of completions", 2, strings.size());
}
public void testPrivateMacroFunction() {
myFixture.configureByFiles("private_macro_usage.ex", "private_macro_declaration.ex");
myFixture.complete(CompletionType.BASIC, 1);
List<String> strings = myFixture.getLookupElementStrings();
assertNotNull("Completion lookup not shown", strings);
assertCompletion("private_macro1", strings);
assertCompletion("private_macro2", strings);
assertEquals("Wrong number of completions", 2, strings.size());
}
public void testPublicMacroFunction() {
myFixture.configureByFiles("public_macro_usage.ex", "public_macro_declaration.ex");
myFixture.complete(CompletionType.BASIC, 1);
List<String> strings = myFixture.getLookupElementStrings();
assertNotNull("Completion lookup not shown", strings);
assertCompletion("public_macro1", strings);
assertCompletion("public_macro2", strings);
assertEquals("Wrong number of completions", 2, strings.size());
}
public void testMixesWithNestedModules() {
myFixture.configureByFiles("mixed_usage.ex", "mixed_declaration.ex");
myFixture.complete(CompletionType.BASIC, 1);
List<String> strings = myFixture.getLookupElementStrings();
assertNotNull("Completion lookup not shown", strings);
assertCompletion("public_macro", strings);
assertCompletion("private_macro", strings);
assertCompletion("public_function", strings);
assertCompletion("private_function", strings);
assertCompletion("MixedDeclaration.Nested", strings);
assertCompletion("Prefix.MixedDeclaration.Nested", strings);
assertEquals("Wrong number of completions", 6, strings.size());
}
/*
* Protected Instance Methods
*/
@Override
protected String getTestDataPath() {
return "testData/org/elixir_lang/code_insight/completion/contributor/call_definition_clause";
}
/*
* Private Instance Methods
*/
void assertCompletion(@NotNull String expectedCompletion, @NotNull List<String> actualCompletions) {
assertTrue("Did not complete with \"" + expectedCompletion + "\"", actualCompletions.contains(expectedCompletion));
}
}