blob: ffe30cdb91bfb7e511b05cae9d6a6ff319dad2bf [file] [log] [blame]
// 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:analysis_server/src/protocol/protocol_internal.dart' as server;
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';
main() {
defineReflectiveSuite(() {
defineReflectiveTests(ResultConverterTest);
});
}
@reflectiveTest
class ResultConverterTest extends ProtocolTestUtilities {
static const List<String> strings = const <String>[
'a',
'b',
'c',
'd',
'e',
'f',
'g',
'h',
'i',
'j',
'k',
'l',
'm',
'n'
];
ResultConverter converter = new ResultConverter();
void test_convertAnalysisErrorFixes() {
AnalysisError error = analysisError(0, 0);
SourceChange change = sourceChange(4, 4);
plugin.AnalysisErrorFixes initial = new plugin.AnalysisErrorFixes(error,
fixes: <plugin.PrioritizedSourceChange>[
new plugin.PrioritizedSourceChange(100, change)
]);
server.AnalysisErrorFixes expected =
new server.AnalysisErrorFixes(error, fixes: <SourceChange>[change]);
expect(converter.convertAnalysisErrorFixes(initial), expected);
}
void test_convertAnalysisNavigationParams() {
plugin.AnalysisNavigationParams initial =
new plugin.AnalysisNavigationParams('a.dart', <NavigationRegion>[
new NavigationRegion(1, 2, <int>[3, 4])
], <NavigationTarget>[
new NavigationTarget(ElementKind.FIELD, 5, 6, 7, 8, 9)
], <String>[
'a',
'b'
]);
server.AnalysisNavigationParams expected =
new server.AnalysisNavigationParams('a.dart', <NavigationRegion>[
new NavigationRegion(1, 2, <int>[3, 4])
], <NavigationTarget>[
new NavigationTarget(ElementKind.FIELD, 5, 6, 7, 8, 9)
], <String>[
'a',
'b'
]);
expect(converter.convertAnalysisNavigationParams(initial), expected);
}
void test_convertEditGetRefactoringResult_inlineMethod() {
RefactoringProblem problem1 = refactoringProblem(0, 0);
RefactoringProblem problem2 = refactoringProblem(2, 4);
RefactoringProblem problem3 = refactoringProblem(4, 8);
SourceChange change = sourceChange(6, 12);
plugin.EditGetRefactoringResult initial =
new plugin.EditGetRefactoringResult(<RefactoringProblem>[problem1],
<RefactoringProblem>[problem2], <RefactoringProblem>[problem3],
feedback:
new plugin.InlineMethodFeedback('a', true, className: 'b'),
change: change,
potentialEdits: <String>['f']);
server.EditGetRefactoringResult expected =
new server.EditGetRefactoringResult(<RefactoringProblem>[problem1],
<RefactoringProblem>[problem2], <RefactoringProblem>[problem3],
feedback:
new server.InlineMethodFeedback('a', true, className: 'b'),
change: change,
potentialEdits: <String>['f']);
expect(
converter.convertEditGetRefactoringResult(
RefactoringKind.INLINE_METHOD, initial),
expected);
}
void test_convertEditGetRefactoringResult_moveFile() {
RefactoringProblem problem1 = refactoringProblem(0, 0);
RefactoringProblem problem2 = refactoringProblem(2, 4);
RefactoringProblem problem3 = refactoringProblem(4, 8);
SourceChange change = sourceChange(6, 12);
plugin.EditGetRefactoringResult initial =
new plugin.EditGetRefactoringResult(<RefactoringProblem>[problem1],
<RefactoringProblem>[problem2], <RefactoringProblem>[problem3],
feedback: new plugin.MoveFileFeedback(),
change: change,
potentialEdits: <String>['f']);
server.EditGetRefactoringResult expected =
new server.EditGetRefactoringResult(<RefactoringProblem>[problem1],
<RefactoringProblem>[problem2], <RefactoringProblem>[problem3],
change: change, potentialEdits: <String>['f']);
expect(
converter.convertEditGetRefactoringResult(
RefactoringKind.MOVE_FILE, initial),
expected);
}
void test_convertPrioritizedSourceChange() {
SourceChange change = sourceChange(0, 0);
plugin.PrioritizedSourceChange initial =
new plugin.PrioritizedSourceChange(100, change);
expect(converter.convertPrioritizedSourceChange(initial), change);
}
}