Skip to content

Commit dd60978

Browse files
author
Jonah Williams
authored
[flutter_tools] remove mocks from build_aar_test (flutter#77170)
1 parent 023b269 commit dd60978

File tree

1 file changed

+34
-49
lines changed

1 file changed

+34
-49
lines changed

packages/flutter_tools/test/commands.shard/permeable/build_aar_test.dart

Lines changed: 34 additions & 49 deletions
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,6 @@
44

55
// @dart = 2.8
66

7-
import 'dart:io' show Process, ProcessResult;
8-
97
import 'package:args/command_runner.dart';
108
import 'package:flutter_tools/src/android/android_builder.dart';
119
import 'package:flutter_tools/src/android/android_sdk.dart';
@@ -16,13 +14,13 @@ import 'package:flutter_tools/src/commands/build_aar.dart';
1614
import 'package:flutter_tools/src/project.dart';
1715
import 'package:flutter_tools/src/reporting/reporting.dart';
1816
import 'package:flutter_tools/src/globals.dart' as globals;
19-
import 'package:mockito/mockito.dart';
17+
import 'package:meta/meta.dart';
2018
import 'package:process/process.dart';
19+
import 'package:test/fake.dart';
2120

2221
import '../../src/android_common.dart';
2322
import '../../src/common.dart';
2423
import '../../src/context.dart';
25-
import '../../src/mocks.dart';
2624

2725
void main() {
2826
Cache.disableLocking();
@@ -112,10 +110,10 @@ void main() {
112110

113111
group('flag parsing', () {
114112
Directory tempDir;
115-
MockAndroidBuilder mockAndroidBuilder;
113+
FakeAndroidBuilder fakeAndroidBuilder;
116114

117115
setUp(() {
118-
mockAndroidBuilder = MockAndroidBuilder();
116+
fakeAndroidBuilder = FakeAndroidBuilder();
119117
tempDir = globals.fs.systemTempDirectory.createTempSync('flutter_tools_build_aar_test.');
120118
});
121119

@@ -128,18 +126,11 @@ void main() {
128126
arguments: <String>['--no-pub']);
129127
await runCommandIn(projectPath);
130128

131-
final Set<AndroidBuildInfo> androidBuildInfos = verify(mockAndroidBuilder.buildAar(
132-
project: anyNamed('project'),
133-
target: anyNamed('target'),
134-
androidBuildInfo: captureAnyNamed('androidBuildInfo'),
135-
outputDirectoryPath: anyNamed('outputDirectoryPath'),
136-
buildNumber: '1.0',
137-
)).captured[0] as Set<AndroidBuildInfo>;
138-
139-
expect(androidBuildInfos.length, 3);
129+
expect(fakeAndroidBuilder.buildNumber, '1.0');
130+
expect(fakeAndroidBuilder.androidBuildInfo.length, 3);
140131

141132
final List<BuildMode> buildModes = <BuildMode>[];
142-
for (final AndroidBuildInfo androidBuildInfo in androidBuildInfos) {
133+
for (final AndroidBuildInfo androidBuildInfo in fakeAndroidBuilder.androidBuildInfo) {
143134
final BuildInfo buildInfo = androidBuildInfo.buildInfo;
144135
buildModes.add(buildInfo.mode);
145136
if (buildInfo.mode.isPrecompiled) {
@@ -157,7 +148,7 @@ void main() {
157148
expect(buildModes.length, 3);
158149
expect(buildModes, containsAll(<BuildMode>[BuildMode.debug, BuildMode.profile, BuildMode.release]));
159150
}, overrides: <Type, Generator>{
160-
AndroidBuilder: () => mockAndroidBuilder,
151+
AndroidBuilder: () => fakeAndroidBuilder,
161152
});
162153

163154
testUsingContext('parses flags', () async {
@@ -182,15 +173,9 @@ void main() {
182173
],
183174
);
184175

185-
final Set<AndroidBuildInfo> androidBuildInfos = verify(mockAndroidBuilder.buildAar(
186-
project: anyNamed('project'),
187-
target: anyNamed('target'),
188-
androidBuildInfo: captureAnyNamed('androidBuildInfo'),
189-
outputDirectoryPath: anyNamed('outputDirectoryPath'),
190-
buildNumber: '200',
191-
)).captured[0] as Set<AndroidBuildInfo>;
176+
expect(fakeAndroidBuilder.buildNumber, '200');
192177

193-
final AndroidBuildInfo androidBuildInfo = androidBuildInfos.single;
178+
final AndroidBuildInfo androidBuildInfo = fakeAndroidBuilder.androidBuildInfo.single;
194179
expect(androidBuildInfo.targetArchs, <AndroidArch>[AndroidArch.x86]);
195180

196181
final BuildInfo buildInfo = androidBuildInfo.buildInfo;
@@ -201,33 +186,15 @@ void main() {
201186
expect(buildInfo.dartObfuscation, isTrue);
202187
expect(buildInfo.dartDefines.contains('foo=bar'), isTrue);
203188
}, overrides: <Type, Generator>{
204-
AndroidBuilder: () => mockAndroidBuilder,
189+
AndroidBuilder: () => fakeAndroidBuilder,
205190
});
206191
});
207192

208193
group('Gradle', () {
209-
ProcessManager mockProcessManager;
210194
Directory tempDir;
211-
AndroidSdk mockAndroidSdk;
212195

213196
setUp(() {
214197
tempDir = globals.fs.systemTempDirectory.createTempSync('flutter_tools_packages_test.');
215-
216-
mockProcessManager = MockProcessManager();
217-
when(mockProcessManager.run(any,
218-
workingDirectory: anyNamed('workingDirectory'),
219-
environment: anyNamed('environment')))
220-
.thenAnswer((_) => Future<ProcessResult>.value(ProcessResult(0, 0, 'assembleRelease', '')));
221-
// Fallback with error.
222-
final Process process = createMockProcess(exitCode: 1);
223-
when(mockProcessManager.start(any,
224-
workingDirectory: anyNamed('workingDirectory'),
225-
environment: anyNamed('environment')))
226-
.thenAnswer((_) => Future<Process>.value(process));
227-
when(mockProcessManager.canRun(any)).thenReturn(false);
228-
229-
mockAndroidSdk = MockAndroidSdk();
230-
when(mockAndroidSdk.directory).thenReturn(globals.fs.directory('irrelevant'));
231198
});
232199

233200
tearDown(() {
@@ -251,7 +218,7 @@ void main() {
251218
overrides: <Type, Generator>{
252219
AndroidSdk: () => null,
253220
FlutterProjectFactory: () => FakeFlutterProjectFactory(tempDir),
254-
ProcessManager: () => mockProcessManager,
221+
ProcessManager: () => FakeProcessManager.any(),
255222
});
256223
});
257224
});
@@ -272,7 +239,25 @@ Future<BuildAarCommand> runBuildAarCommand(
272239
return command;
273240
}
274241

275-
class MockAndroidBuilder extends Mock implements AndroidBuilder {}
276-
class MockAndroidSdk extends Mock implements AndroidSdk {}
277-
class MockProcessManager extends Mock implements ProcessManager {}
278-
class MockProcess extends Mock implements Process {}
242+
class FakeAndroidBuilder extends Fake implements AndroidBuilder {
243+
FlutterProject project;
244+
Set<AndroidBuildInfo> androidBuildInfo;
245+
String target;
246+
String outputDirectoryPath;
247+
String buildNumber;
248+
249+
@override
250+
Future<void> buildAar({
251+
@required FlutterProject project,
252+
@required Set<AndroidBuildInfo> androidBuildInfo,
253+
@required String target,
254+
@required String outputDirectoryPath,
255+
@required String buildNumber,
256+
}) async {
257+
this.project = project;
258+
this.androidBuildInfo = androidBuildInfo;
259+
this.target = target;
260+
this.outputDirectoryPath = outputDirectoryPath;
261+
this.buildNumber = buildNumber;
262+
}
263+
}

0 commit comments

Comments
 (0)