Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(331)

Unified Diff: pkg/analysis_server/test/edit/refactoring_test.dart

Issue 591083003: Integrate CONVERT_METHOD_TO_GETTER into the server. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Created 6 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « pkg/analysis_server/lib/src/edit/edit_domain.dart ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: pkg/analysis_server/test/edit/refactoring_test.dart
diff --git a/pkg/analysis_server/test/edit/refactoring_test.dart b/pkg/analysis_server/test/edit/refactoring_test.dart
index c6133b89113b2bf6cf6e556b9f98e857967319ea..d23dff3f29ba6c3368facd573505b22d9e2edca5 100644
--- a/pkg/analysis_server/test/edit/refactoring_test.dart
+++ b/pkg/analysis_server/test/edit/refactoring_test.dart
@@ -18,6 +18,7 @@ import '../reflective_tests.dart';
main() {
groupSep = ' | ';
+ runReflectiveTests(ConvertMethodToGetterTest);
runReflectiveTests(ExtractLocalVariableTest);
runReflectiveTests(ExtractMethodTest);
runReflectiveTests(GetAvailableRefactoringsTest);
@@ -29,6 +30,120 @@ main() {
@ReflectiveTestCase()
+class ConvertMethodToGetterTest extends _AbstractGetRefactoring_Test {
+ test_function() {
+ addTestFile('''
+int test() => 42;
+main() {
+ var a = 1 + test();
+ var b = 2 + test();
+}
+''');
+ return assertSuccessfulRefactoring(() {
+ return _sendConvertRequest('test() =>');
+ }, '''
+int get test => 42;
+main() {
+ var a = 1 + test;
+ var b = 2 + test;
+}
+''');
+ }
+
+ test_init_fatalError_hasParameters() {
+ addTestFile('''
+int test(p) => p + 1;
+main() {
+ var v = test(2);
+}
+''');
+ return getRefactoringResult(() {
+ return _sendConvertRequest('test(p)');
+ }).then((result) {
+ assertResultProblemsFatal(
+ result.initialProblems,
+ 'Only methods without parameters can be converted to getters.');
+ // ...there is no any change
+ expect(result.change, isNull);
+ });
+ }
+
+ test_init_fatalError_notExecutableElement() {
+ addTestFile('''
+main() {
+ int abc = 1;
+ print(abc);
+}
+''');
+ return getRefactoringResult(() {
+ return _sendConvertRequest('abc');
+ }).then((result) {
+ assertResultProblemsFatal(
+ result.initialProblems,
+ 'Unable to create a refactoring');
+ // ...there is no any change
+ expect(result.change, isNull);
+ });
+ }
+
+ test_method() {
+ addTestFile('''
+class A {
+ int test() => 1;
+}
+class B extends A {
+ int test() => 2;
+}
+class C extends B {
+ int test() => 3;
+}
+class D extends A {
+ int test() => 4;
+}
+main(A a, B b, C c, D d) {
+ var va = a.test();
+ var vb = b.test();
+ var vc = c.test();
+ var vd = d.test();
+}
+''');
+ return assertSuccessfulRefactoring(() {
+ return _sendConvertRequest('test() => 2');
+ }, '''
+class A {
+ int get test => 1;
+}
+class B extends A {
+ int get test => 2;
+}
+class C extends B {
+ int get test => 3;
+}
+class D extends A {
+ int get test => 4;
+}
+main(A a, B b, C c, D d) {
+ var va = a.test;
+ var vb = b.test;
+ var vc = c.test;
+ var vd = d.test;
+}
+''');
+ }
+
+ Future<Response> _sendConvertRequest(String search) {
+ Request request = new EditGetRefactoringParams(
+ RefactoringKind.CONVERT_METHOD_TO_GETTER,
+ testFile,
+ findOffset(search),
+ 0,
+ false).toRequest('0');
+ return serverChannel.sendRequest(request);
+ }
+}
+
+
+@ReflectiveTestCase()
class ExtractLocalVariableTest extends _AbstractGetRefactoring_Test {
Future<Response> sendExtractRequest(int offset, int length, String name,
bool extractAll) {
« no previous file with comments | « pkg/analysis_server/lib/src/edit/edit_domain.dart ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698