[flutter_tools] remove mocks from file system test (#74919)

This commit is contained in:
Jonah Williams 2021-01-28 12:40:20 -08:00 committed by GitHub
parent a664731a14
commit cf54d6a2f0
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
3 changed files with 39 additions and 35 deletions

View file

@ -12,7 +12,7 @@ import 'package:flutter_tools/src/base/file_system.dart';
import 'package:flutter_tools/src/base/io.dart'; import 'package:flutter_tools/src/base/io.dart';
import 'package:flutter_tools/src/base/platform.dart'; import 'package:flutter_tools/src/base/platform.dart';
import 'package:flutter_tools/src/base/signals.dart'; import 'package:flutter_tools/src/base/signals.dart';
import 'package:mockito/mockito.dart'; import 'package:test/fake.dart';
import '../../src/common.dart'; import '../../src/common.dart';
import '../../src/context.dart'; import '../../src/context.dart';
@ -147,15 +147,12 @@ void main() {
}); });
group('LocalFileSystem', () { group('LocalFileSystem', () {
MockIoProcessSignal mockSignal; FakeProcessSignal fakeSignal;
ProcessSignal signalUnderTest; ProcessSignal signalUnderTest;
StreamController<io.ProcessSignal> controller;
setUp(() { setUp(() {
mockSignal = MockIoProcessSignal(); fakeSignal = FakeProcessSignal();
signalUnderTest = ProcessSignal(mockSignal); signalUnderTest = ProcessSignal(fakeSignal);
controller = StreamController<io.ProcessSignal>();
when(mockSignal.watch()).thenAnswer((Invocation invocation) => controller.stream);
}); });
testUsingContext('deletes system temp entry on a fatal signal', () async { testUsingContext('deletes system temp entry on a fatal signal', () async {
@ -173,7 +170,7 @@ void main() {
expect(temp.existsSync(), isTrue); expect(temp.existsSync(), isTrue);
controller.add(mockSignal); fakeSignal.controller.add(fakeSignal);
await completer.future; await completer.future;
expect(temp.existsSync(), isFalse); expect(temp.existsSync(), isFalse);
@ -181,5 +178,10 @@ void main() {
}); });
} }
class MockIoProcessSignal extends Mock implements io.ProcessSignal {} class FakeProcessSignal extends Fake implements io.ProcessSignal {
class MockFile extends Mock implements File {} final StreamController<io.ProcessSignal> controller = StreamController<io.ProcessSignal>();
@override
Stream<io.ProcessSignal> watch() => controller.stream;
}
class FakeFile extends Fake implements File {}

View file

@ -9,7 +9,7 @@ import 'dart:io' as io;
import 'package:file/memory.dart'; import 'package:file/memory.dart';
import 'package:flutter_tools/src/base/io.dart'; import 'package:flutter_tools/src/base/io.dart';
import 'package:mockito/mockito.dart'; import 'package:test/fake.dart';
import '../../src/common.dart'; import '../../src/common.dart';
import '../../src/context.dart'; import '../../src/context.dart';
@ -57,12 +57,10 @@ void main() {
}, flutterIOOverrides); }, flutterIOOverrides);
}); });
testUsingContext('ProcessSignal signals are properly delegated', () async { testUsingContext('ProcessSignal signals are properly delegated', () async {
final MockIoProcessSignal mockSignal = MockIoProcessSignal(); final FakeProcessSignal signal = FakeProcessSignal();
final ProcessSignal signalUnderTest = ProcessSignal(mockSignal); final ProcessSignal signalUnderTest = ProcessSignal(signal);
final StreamController<io.ProcessSignal> controller = StreamController<io.ProcessSignal>();
when(mockSignal.watch()).thenAnswer((Invocation invocation) => controller.stream); signal.controller.add(signal);
controller.add(mockSignal);
expect(signalUnderTest, await signalUnderTest.watch().first); expect(signalUnderTest, await signalUnderTest.watch().first);
}); });
@ -104,4 +102,9 @@ void main() {
}); });
} }
class MockIoProcessSignal extends Mock implements io.ProcessSignal {} class FakeProcessSignal extends Fake implements io.ProcessSignal {
final StreamController<io.ProcessSignal> controller = StreamController<io.ProcessSignal>();
@override
Stream<io.ProcessSignal> watch() => controller.stream;
}

View file

@ -16,16 +16,13 @@ import '../../src/common.dart';
void main() { void main() {
group('Signals', () { group('Signals', () {
Signals signals; Signals signals;
MockIoProcessSignal mockSignal; FakeProcessSignal fakeSignal;
ProcessSignal signalUnderTest; ProcessSignal signalUnderTest;
StreamController<io.ProcessSignal> controller;
setUp(() { setUp(() {
signals = Signals.test(); signals = Signals.test();
mockSignal = MockIoProcessSignal(); fakeSignal = FakeProcessSignal();
signalUnderTest = ProcessSignal(mockSignal); signalUnderTest = ProcessSignal(fakeSignal);
controller = StreamController<io.ProcessSignal>();
when(mockSignal.watch()).thenAnswer((Invocation invocation) => controller.stream);
}); });
testWithoutContext('signal handler runs', () async { testWithoutContext('signal handler runs', () async {
@ -35,7 +32,7 @@ void main() {
completer.complete(); completer.complete();
}); });
controller.add(mockSignal); fakeSignal.controller.add(fakeSignal);
await completer.future; await completer.future;
}); });
@ -55,7 +52,7 @@ void main() {
completer.complete(); completer.complete();
}); });
controller.add(mockSignal); fakeSignal.controller.add(fakeSignal);
await completer.future; await completer.future;
}); });
@ -74,7 +71,7 @@ void main() {
}, },
); );
controller.add(mockSignal); fakeSignal.controller.add(fakeSignal);
await completer.future; await completer.future;
await errSub.cancel(); await errSub.cancel();
expect(errList, contains(exn)); expect(errList, contains(exn));
@ -97,7 +94,7 @@ void main() {
}, },
); );
controller.add(mockSignal); fakeSignal.controller.add(fakeSignal);
await errSub.cancel(); await errSub.cancel();
expect(errList, isEmpty); expect(errList, isEmpty);
@ -125,19 +122,16 @@ void main() {
}, },
); );
controller.add(mockSignal); fakeSignal.controller.add(fakeSignal);
await completer.future; await completer.future;
await errSub.cancel(); await errSub.cancel();
expect(errList, isEmpty); expect(errList, isEmpty);
}); });
testWithoutContext('only handlers for the correct signal run', () async { testWithoutContext('only handlers for the correct signal run', () async {
final MockIoProcessSignal mockSignal2 = MockIoProcessSignal(); final FakeProcessSignal mockSignal2 = FakeProcessSignal();
final StreamController<io.ProcessSignal> controller2 = StreamController<io.ProcessSignal>();
final ProcessSignal otherSignal = ProcessSignal(mockSignal2); final ProcessSignal otherSignal = ProcessSignal(mockSignal2);
when(mockSignal2.watch()).thenAnswer((Invocation invocation) => controller2.stream);
final Completer<void> completer = Completer<void>(); final Completer<void> completer = Completer<void>();
signals.addHandler(signalUnderTest, (ProcessSignal s) { signals.addHandler(signalUnderTest, (ProcessSignal s) {
expect(s, signalUnderTest); expect(s, signalUnderTest);
@ -155,7 +149,7 @@ void main() {
}, },
); );
controller.add(mockSignal); fakeSignal.controller.add(fakeSignal);
await completer.future; await completer.future;
await errSub.cancel(); await errSub.cancel();
expect(errList, isEmpty); expect(errList, isEmpty);
@ -192,10 +186,15 @@ void main() {
second = true; second = true;
}); });
controller.add(mockSignal); fakeSignal.controller.add(fakeSignal);
await completer.future; await completer.future;
}); });
}); });
} }
class MockIoProcessSignal extends Mock implements io.ProcessSignal {} class FakeProcessSignal extends Fake implements io.ProcessSignal {
final StreamController<io.ProcessSignal> controller = StreamController<io.ProcessSignal>();
@override
Stream<io.ProcessSignal> watch() => controller.stream;
}