blob: 1fb7c7ec8ed23ed3d6a81e7ab5be55d0879ee11a [file] [log] [blame]
// Copyright (c) 2015, 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 'dart:convert';
import 'dart:io';
import 'package:analyzer/error/error.dart';
import 'package:analyzer/src/generated/engine.dart';
import 'package:analyzer/src/generated/source.dart';
import 'package:analyzer/src/lint/linter.dart';
class CollectingSink extends MockIOSink {
final StringBuffer buffer = StringBuffer();
@override
String toString() => buffer.toString();
String trim() => toString().trim();
@override
void write(obj) {
buffer.write(obj);
}
@override
void writeln([Object? obj = '']) {
buffer.writeln(obj);
}
}
class MockErrorType implements ErrorType {
@override
late String displayName;
@override
late String name;
@override
late int ordinal;
@override
late ErrorSeverity severity;
@override
int compareTo(ErrorType other) => 0;
@override
String toString() => 'MockErrorType';
}
class MockIOSink implements IOSink {
@override
late Encoding encoding;
@override
Future get done => Future.value();
@override
void add(List<int> data) {}
@override
void addError(Object error, [StackTrace? stackTrace]) {}
@override
Future addStream(Stream<List<int>> stream) => Future.value();
@override
Future close() => Future.value();
@override
Future flush() => Future.value();
@override
void write(Object? obj) {}
@override
void writeAll(Iterable objects, [String separator = '']) {}
@override
void writeCharCode(int charCode) {}
@override
void writeln([Object? obj = '']) {}
}
class MockReporter extends Reporter {
List<LinterException> exceptions = <LinterException>[];
List<String> warnings = <String>[];
MockReporter();
@override
void exception(LinterException exception) {
exceptions.add(exception);
}
@override
void warn(String message) {
warnings.add(message);
}
}
class MockSource extends BasicSource {
@override
final String fullName;
MockSource(this.fullName) : super(Uri.file(fullName));
@override
TimestampedData<String> get contents => TimestampedData<String>(0, '');
@override
bool exists() => false;
@override
dynamic noSuchMethod(Invocation invocation) => super.noSuchMethod(invocation);
}
class TestErrorCode extends ErrorCode {
@override
late ErrorSeverity errorSeverity;
@override
late ErrorType type;
TestErrorCode(String name, String message)
: super(
problemMessage: message,
name: name,
uniqueName: 'TestErrorCode.$name',
);
}