// Copyright 2014 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 'dart:async'; import 'package:flutter_tools/src/base/io.dart'; import 'package:flutter_tools/src/test/coverage_collector.dart'; import 'package:flutter_tools/src/vmservice.dart'; import 'package:mockito/mockito.dart'; import '../src/common.dart'; void main() { MockVMService mockVMService; setUp(() { mockVMService = MockVMService(); }); test('Coverage collector Can handle coverage sentinenl data', () async { when(mockVMService.vm.isolates.first.invokeRpcRaw('getScripts', params: anyNamed('params'))) .thenAnswer((Invocation invocation) async { return {'type': 'Sentinel', 'kind': 'Collected', 'valueAsString': ''}; }); final Map result = await collect(null, (String predicate) => true, connector: (Uri uri) async { return mockVMService; }); expect(result, {'type': 'CodeCoverage', 'coverage': []}); }); } class MockVMService extends Mock implements VMService { @override final MockVM vm = MockVM(); } class MockVM extends Mock implements VM { @override final List isolates = [ MockIsolate() ]; } class MockIsolate extends Mock implements Isolate {} class MockProcess extends Mock implements Process { final Completercompleter = Completer(); @override Future get exitCode => completer.future; }