1// Copyright 2017 The Chromium Authors. All rights reserved. 2// Use of this source code is governed by a BSD-style license that can be 3// found in the LICENSE file. 4 5import 'dart:async'; 6import 'dart:io' as io; 7 8import 'package:flutter_tools/src/base/io.dart'; 9import 'package:mockito/mockito.dart'; 10 11import '../../src/common.dart'; 12import '../../src/context.dart'; 13 14void main() { 15 group('ProcessSignal', () { 16 17 testUsingContext('signals are properly delegated', () async { 18 final MockIoProcessSignal mockSignal = MockIoProcessSignal(); 19 final ProcessSignal signalUnderTest = ProcessSignal(mockSignal); 20 final StreamController<io.ProcessSignal> controller = StreamController<io.ProcessSignal>(); 21 22 when(mockSignal.watch()).thenAnswer((Invocation invocation) => controller.stream); 23 controller.add(mockSignal); 24 25 expect(signalUnderTest, await signalUnderTest.watch().first); 26 }); 27 28 testUsingContext('toString() works', () async { 29 expect(io.ProcessSignal.sigint.toString(), ProcessSignal.SIGINT.toString()); 30 }); 31 }); 32} 33 34class MockIoProcessSignal extends Mock implements io.ProcessSignal {} 35