blob: c5f5378474ab351b904319413fc08773a55f2a1f [file] [log] [blame]
// Copyright (c) 2014, 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.
library test.operation.analysis;
import 'package:analysis_server/src/constants.dart';
import 'package:analysis_server/src/operation/operation_analysis.dart';
import 'package:analysis_testing/mocks.dart';
import 'package:analysis_testing/reflective_tests.dart';
import 'package:analyzer/src/generated/error.dart';
import 'package:analyzer/src/generated/source.dart';
import 'package:typed_mock/typed_mock.dart';
import 'package:unittest/unittest.dart';
main() {
groupSep = ' | ';
group('errorToJson', () {
runReflectiveTests(Test_errorToJson);
});
}
class AnalysisErrorMock extends TypedMock implements AnalysisError {
noSuchMethod(Invocation invocation) => super.noSuchMethod(invocation);
}
@ReflectiveTestCase()
class Test_errorToJson {
Source source = new MockSource();
LineInfo lineInfo;
AnalysisError analysisError = new AnalysisErrorMock();
void setUp() {
// prepare Source
when(source.fullName).thenReturn('foo.dart');
// prepare LineInfo
lineInfo = new LineInfo([0, 5, 9, 20]);
// prepare AnalysisError
when(analysisError.source).thenReturn(source);
when(analysisError.errorCode).thenReturn(
CompileTimeErrorCode.AMBIGUOUS_EXPORT);
when(analysisError.message).thenReturn('my message');
when(analysisError.offset).thenReturn(10);
when(analysisError.length).thenReturn(20);
}
void tearDown() {
source = null;
analysisError = null;
}
void test_noCorrection() {
Map<String, Object> json = errorToJson(lineInfo, analysisError);
expect(json, {
ERROR_CODE: 'CompileTimeErrorCode.AMBIGUOUS_EXPORT',
SEVERITY: 'ERROR',
TYPE: 'COMPILE_TIME_ERROR',
LOCATION: {
FILE: 'foo.dart',
OFFSET: 10,
LENGTH: 20,
START_LINE: 3,
START_COLUMN: 2
},
MESSAGE: 'my message'
});
}
void test_noLineInfo() {
Map<String, Object> json = errorToJson(null, analysisError);
expect(json, {
ERROR_CODE: 'CompileTimeErrorCode.AMBIGUOUS_EXPORT',
SEVERITY: 'ERROR',
TYPE: 'COMPILE_TIME_ERROR',
LOCATION: {
FILE: 'foo.dart',
OFFSET: 10,
LENGTH: 20
},
MESSAGE: 'my message'
});
}
void test_withCorrection() {
when(analysisError.correction).thenReturn('my correction');
Map<String, Object> json = errorToJson(lineInfo, analysisError);
expect(json, {
ERROR_CODE: 'CompileTimeErrorCode.AMBIGUOUS_EXPORT',
SEVERITY: 'ERROR',
TYPE: 'COMPILE_TIME_ERROR',
LOCATION: {
FILE: 'foo.dart',
OFFSET: 10,
LENGTH: 20,
START_LINE: 3,
START_COLUMN: 2
},
MESSAGE: 'my message',
CORRECTION: 'my correction'
});
}
}