blob: 9bea4b5cfe146e3f3fc9d005a8ad900ff180a394 [file] [log] [blame]
// Copyright 2019 The Flutter Authors. 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:appengine/appengine.dart';
class FakeLogRecord {
const FakeLogRecord(this.level, this.message, this.timestamp);
final LogLevel level;
final String message;
final DateTime timestamp;
@override
String toString() {
return '$timestamp: ($level) $message';
}
}
class FakeLogging implements Logging {
final List<FakeLogRecord> records = <FakeLogRecord>[];
@override
void debug(String message, {DateTime timestamp}) {
log(LogLevel.DEBUG, message, timestamp: timestamp);
}
@override
void info(String message, {DateTime timestamp}) {
log(LogLevel.INFO, message, timestamp: timestamp);
}
@override
void warning(String message, {DateTime timestamp}) {
log(LogLevel.WARNING, message, timestamp: timestamp);
}
@override
void error(String message, {DateTime timestamp}) {
log(LogLevel.ERROR, message, timestamp: timestamp);
}
@override
void critical(String message, {DateTime timestamp}) {
log(LogLevel.CRITICAL, message, timestamp: timestamp);
}
@override
void log(LogLevel level, String message, {DateTime timestamp}) {
records.add(FakeLogRecord(level, message, timestamp));
}
@override
Future<void> flush() async {}
@override
void reportError(
LogLevel level,
Object error,
StackTrace stackTrace, {
DateTime timestamp,
}) {
log(level, 'Error: $error\n$stackTrace', timestamp: timestamp);
}
}
bool Function(FakeLogRecord) hasLevel(LogLevel level) {
return (FakeLogRecord record) {
return record.level == level;
};
}