| // Copyright (c) 2017, the Dart project authors. Please see the AUTHORS file |
| // for details. All rights reserved. Use of this source code is governed by a |
| // BSD-style license that can be found in the LICENSE file. |
| |
| import 'package:analysis_server/protocol/protocol_generated.dart' as server; |
| import 'package:analysis_server/src/plugin/result_converter.dart'; |
| import 'package:analyzer_plugin/protocol/protocol_common.dart'; |
| import 'package:analyzer_plugin/protocol/protocol_generated.dart' as plugin; |
| import 'package:test/test.dart'; |
| import 'package:test_reflective_loader/test_reflective_loader.dart'; |
| |
| import 'protocol_test_utilities.dart'; |
| |
| void main() { |
| defineReflectiveSuite(() { |
| defineReflectiveTests(ResultConverterTest); |
| }); |
| } |
| |
| @reflectiveTest |
| class ResultConverterTest extends ProtocolTestUtilities { |
| ResultConverter converter = ResultConverter(); |
| |
| void test_convertAnalysisErrorFixes() { |
| var error = analysisError(0, 0); |
| var change = sourceChange(4, 4); |
| var initial = plugin.AnalysisErrorFixes(error, fixes: <plugin |
| .PrioritizedSourceChange>[plugin.PrioritizedSourceChange(100, change)]); |
| var expected = |
| server.AnalysisErrorFixes(error, fixes: <SourceChange>[change]); |
| expect(converter.convertAnalysisErrorFixes(initial), expected); |
| } |
| |
| void test_convertAnalysisNavigationParams() { |
| var initial = plugin.AnalysisNavigationParams('a.dart', <NavigationRegion>[ |
| NavigationRegion(1, 2, <int>[3, 4]) |
| ], <NavigationTarget>[ |
| NavigationTarget(ElementKind.FIELD, 5, 6, 7, 8, 9) |
| ], <String>[ |
| 'a', |
| 'b' |
| ]); |
| var expected = server.AnalysisNavigationParams('a.dart', <NavigationRegion>[ |
| NavigationRegion(1, 2, <int>[3, 4]) |
| ], <NavigationTarget>[ |
| NavigationTarget(ElementKind.FIELD, 5, 6, 7, 8, 9) |
| ], <String>[ |
| 'a', |
| 'b' |
| ]); |
| expect(converter.convertAnalysisNavigationParams(initial), expected); |
| } |
| |
| void test_convertEditGetRefactoringResult_inlineMethod() { |
| var problem1 = refactoringProblem(0, 0); |
| var problem2 = refactoringProblem(2, 4); |
| var problem3 = refactoringProblem(4, 8); |
| var change = sourceChange(6, 12); |
| var initial = plugin.EditGetRefactoringResult( |
| <RefactoringProblem>[problem1], |
| <RefactoringProblem>[problem2], |
| <RefactoringProblem>[problem3], |
| feedback: plugin.InlineMethodFeedback('a', true, className: 'b'), |
| change: change, |
| potentialEdits: <String>['f']); |
| var expected = server.EditGetRefactoringResult( |
| <RefactoringProblem>[problem1], |
| <RefactoringProblem>[problem2], |
| <RefactoringProblem>[problem3], |
| feedback: server.InlineMethodFeedback('a', true, className: 'b'), |
| change: change, |
| potentialEdits: <String>['f']); |
| expect( |
| converter.convertEditGetRefactoringResult( |
| RefactoringKind.INLINE_METHOD, initial), |
| expected); |
| } |
| |
| void test_convertEditGetRefactoringResult_moveFile() { |
| var problem1 = refactoringProblem(0, 0); |
| var problem2 = refactoringProblem(2, 4); |
| var problem3 = refactoringProblem(4, 8); |
| var change = sourceChange(6, 12); |
| var initial = plugin.EditGetRefactoringResult( |
| <RefactoringProblem>[problem1], |
| <RefactoringProblem>[problem2], |
| <RefactoringProblem>[problem3], |
| feedback: plugin.MoveFileFeedback(), |
| change: change, |
| potentialEdits: <String>['f']); |
| var expected = server.EditGetRefactoringResult( |
| <RefactoringProblem>[problem1], |
| <RefactoringProblem>[problem2], |
| <RefactoringProblem>[problem3], |
| change: change, |
| potentialEdits: <String>['f']); |
| expect( |
| converter.convertEditGetRefactoringResult( |
| RefactoringKind.MOVE_FILE, initial), |
| expected); |
| } |
| |
| void test_convertPrioritizedSourceChange() { |
| var change = sourceChange(0, 0); |
| var initial = plugin.PrioritizedSourceChange(100, change); |
| expect(converter.convertPrioritizedSourceChange(initial), change); |
| } |
| } |