blob: c03057435aca773e9c51bdc35370a7af566623bb [file] [edit]
// Copyright (c) 2026, 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:collection';
import 'package:dart_runtime_service/dart_runtime_service.dart';
import 'package:test/fake.dart';
/// Fake implementation of [DartRuntimeServiceBackend] that throws when
/// accessed.
///
/// Use when testing functionality of [DartRuntimeService] that does not require
/// a backend implementation.
base class FakeDartRuntimeServiceBackend extends Fake
implements DartRuntimeServiceBackend {
FakeDartRuntimeServiceBackend({required this.frontend});
@override
Future<void> initialize() async {}
@override
Future<void> onServiceReady(DartRuntimeService service) async {}
@override
Future<void> shutdown() async {}
@override
Future<void> clearState() async {}
@override
Future<void> onServerStarted({
required Uri httpUri,
required Uri wsUri,
}) async {}
@override
Future<void> onServerShutdown() async {}
@override
UnmodifiableListView<ServiceRpcHandler> get rpcs =>
UnmodifiableListView(const []);
@override
UnmodifiableListView<RpcHandlerWithParameters> get fallbacks =>
UnmodifiableListView(const []);
@override
final DartRuntimeService frontend;
@override
IsolateManager get isolateManager => throw UnimplementedError();
@override
ExpressionEvaluator? get expressionEvaluator => null;
@override
ClientManager<DartRuntimeServiceBackend> clientManagerBuilder() {
return ClientManager(
backend: this,
eventStreamMethods: frontend.eventStreams,
);
}
@override
void onStreamCancel({required String streamId}) {}
@override
bool onStreamListen({
required String streamId,
required Map<String, Object?> params,
}) {
return true;
}
}