blob: dd96e6236478a1ffe7146df43fbae5cc0fe17067 [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 {
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);
}
}