blob: 220ca9adac366dd49539deb811b9615b16bba34c [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: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 {
static const List<String> strings = <String>[
'a',
'b',
'c',
'd',
'e',
'f',
'g',
'h',
'i',
'j',
'k',
'l',
'm',
'n'
];
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);
}
}