Chromium Code Reviews| Index: pkg/analysis_server/test/services/completion/invocation_computer_test.dart |
| diff --git a/pkg/analysis_server/test/services/completion/invocation_computer_test.dart b/pkg/analysis_server/test/services/completion/invocation_computer_test.dart |
| index 97c703d0e5d26b4cef393e7d167d9e5668a751c1..8b8b30cebf381e23f4ee119086d828d865de3229 100644 |
| --- a/pkg/analysis_server/test/services/completion/invocation_computer_test.dart |
| +++ b/pkg/analysis_server/test/services/completion/invocation_computer_test.dart |
| @@ -5,6 +5,7 @@ |
| library test.services.completion.invocation; |
| +import 'package:analysis_server/src/protocol.dart'; |
| import 'package:analysis_server/src/services/completion/invocation_computer.dart'; |
| import 'package:unittest/unittest.dart'; |
| @@ -19,8 +20,157 @@ main() { |
| @ReflectiveTestCase() |
| class InvocationComputerTest extends AbstractSelectorSuggestionTest { |
| + void assertHasNoParameterInfo(CompletionSuggestion suggestion) { |
| + expect(suggestion.parameterNames, isNull); |
| + expect(suggestion.parameterTypes, isNull); |
| + expect(suggestion.requiredParameterCount, isNull); |
| + expect(suggestion.hasNamedParameters, isNull); |
| + } |
| + |
| @override |
| void setUpComputer() { |
| computer = new InvocationComputer(); |
| } |
| + |
| + test_method_parameters_mixed_required_and_named() { |
| + addTestSource(''' |
| +class C { |
|
danrubel
2015/01/06 23:49:36
I find this left justified target source very hard
Paul Berry
2015/01/07 15:39:14
Let's talk about this in the stand-up meeting. I
|
| + void m(x, {int y}) {} |
| +} |
| +void main() {new C().^}'''); |
| + return computeFull((bool result) { |
| + CompletionSuggestion suggestion = assertSuggestMethod('m', 'C', 'void'); |
| + expect(suggestion.parameterNames, hasLength(2)); |
| + expect(suggestion.parameterNames[0], 'x'); |
| + expect(suggestion.parameterTypes[0], 'dynamic'); |
| + expect(suggestion.parameterNames[1], 'y'); |
| + expect(suggestion.parameterTypes[1], 'int'); |
| + expect(suggestion.requiredParameterCount, 1); |
| + expect(suggestion.hasNamedParameters, true); |
| + }); |
| + } |
| + |
| + test_method_parameters_mixed_required_and_positional() { |
| + addTestSource(''' |
| +class C { |
| + void m(x, [int y]) {} |
| +} |
| +void main() {new C().^}'''); |
| + return computeFull((bool result) { |
| + CompletionSuggestion suggestion = assertSuggestMethod('m', 'C', 'void'); |
| + expect(suggestion.parameterNames, hasLength(2)); |
| + expect(suggestion.parameterNames[0], 'x'); |
| + expect(suggestion.parameterTypes[0], 'dynamic'); |
| + expect(suggestion.parameterNames[1], 'y'); |
| + expect(suggestion.parameterTypes[1], 'int'); |
| + expect(suggestion.requiredParameterCount, 1); |
| + expect(suggestion.hasNamedParameters, false); |
| + }); |
| + } |
| + |
| + test_method_parameters_named() { |
| + addTestSource(''' |
| +class C { |
| + void m({x, int y}) {} |
| +} |
| +void main() {new C().^}'''); |
| + return computeFull((bool result) { |
| + CompletionSuggestion suggestion = assertSuggestMethod('m', 'C', 'void'); |
| + expect(suggestion.parameterNames, hasLength(2)); |
| + expect(suggestion.parameterNames[0], 'x'); |
| + expect(suggestion.parameterTypes[0], 'dynamic'); |
| + expect(suggestion.parameterNames[1], 'y'); |
| + expect(suggestion.parameterTypes[1], 'int'); |
| + expect(suggestion.requiredParameterCount, 0); |
| + expect(suggestion.hasNamedParameters, true); |
| + }); |
| + } |
| + |
| + test_method_parameters_none() { |
| + addTestSource(''' |
| +class C { |
| + void m() {} |
| +} |
| +void main() {new C().^}'''); |
| + computeFast(); |
| + return computeFull((bool result) { |
| + CompletionSuggestion suggestion = assertSuggestMethod('m', 'C', 'void'); |
| + expect(suggestion.parameterNames, isEmpty); |
| + expect(suggestion.parameterTypes, isEmpty); |
| + expect(suggestion.requiredParameterCount, 0); |
| + expect(suggestion.hasNamedParameters, false); |
| + }); |
| + } |
| + |
| + test_method_parameters_positional() { |
| + addTestSource(''' |
| +class C { |
| + void m([x, int y]) {} |
| +} |
| +void main() {new C().^}'''); |
| + return computeFull((bool result) { |
| + CompletionSuggestion suggestion = assertSuggestMethod('m', 'C', 'void'); |
| + expect(suggestion.parameterNames, hasLength(2)); |
| + expect(suggestion.parameterNames[0], 'x'); |
| + expect(suggestion.parameterTypes[0], 'dynamic'); |
| + expect(suggestion.parameterNames[1], 'y'); |
| + expect(suggestion.parameterTypes[1], 'int'); |
| + expect(suggestion.requiredParameterCount, 0); |
| + expect(suggestion.hasNamedParameters, false); |
| + }); |
| + } |
| + |
| + test_method_parameters_required() { |
| + addTestSource(''' |
| +class C { |
| + void m(x, int y) {} |
| +} |
| +void main() {new C().^}'''); |
| + return computeFull((bool result) { |
| + CompletionSuggestion suggestion = assertSuggestMethod('m', 'C', 'void'); |
| + expect(suggestion.parameterNames, hasLength(2)); |
| + expect(suggestion.parameterNames[0], 'x'); |
| + expect(suggestion.parameterTypes[0], 'dynamic'); |
| + expect(suggestion.parameterNames[1], 'y'); |
| + expect(suggestion.parameterTypes[1], 'int'); |
| + expect(suggestion.requiredParameterCount, 2); |
| + expect(suggestion.hasNamedParameters, false); |
| + }); |
| + } |
| + |
| + test_no_parameters_field() { |
| + addTestSource(''' |
| +class C { |
| + int x; |
| +} |
| +void main() {new C().^}'''); |
| + return computeFull((bool result) { |
| + CompletionSuggestion suggestion = assertSuggestGetter('x', 'int'); |
| + assertHasNoParameterInfo(suggestion); |
| + }); |
| + } |
| + |
| + test_no_parameters_getter() { |
| + addTestSource(''' |
| +class C { |
| + int get x => null; |
| +} |
| +void main() {int y = new C().^}'''); |
| + return computeFull((bool result) { |
| + CompletionSuggestion suggestion = assertSuggestGetter('x', 'int'); |
| + assertHasNoParameterInfo(suggestion); |
| + }); |
| + } |
| + |
| + test_no_parameters_setter() { |
| + addTestSource(''' |
| +class C { |
| + set x(int value) {}; |
| +} |
| +void main() {int y = new C().^}'''); |
| + return computeFull((bool result) { |
| + CompletionSuggestion suggestion = assertSuggestSetter('x'); |
| + assertHasNoParameterInfo(suggestion); |
| + }); |
| + } |
| } |