| // 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); | |
| } | |
| } |