Unverified Commit c3d0f604 authored by Jenn Magder's avatar Jenn Magder Committed by GitHub

Remove mock from cocoapods_validator_test (#77991)

parent e7f95b4a
...@@ -71,6 +71,9 @@ enum CocoaPodsStatus { ...@@ -71,6 +71,9 @@ enum CocoaPodsStatus {
brokenInstall, brokenInstall,
} }
String get cocoaPodsMinimumVersion => '1.9.0';
String get cocoaPodsRecommendedVersion => '1.10.0';
/// Cocoapods is a dependency management solution for iOS and macOS applications. /// Cocoapods is a dependency management solution for iOS and macOS applications.
/// ///
/// Cocoapods is generally installed via ruby gems and interacted with via /// Cocoapods is generally installed via ruby gems and interacted with via
...@@ -111,9 +114,6 @@ class CocoaPods { ...@@ -111,9 +114,6 @@ class CocoaPods {
Future<String> _versionText; Future<String> _versionText;
String get cocoaPodsMinimumVersion => '1.9.0';
String get cocoaPodsRecommendedVersion => '1.10.0';
Future<bool> get isInstalled => Future<bool> get isInstalled =>
_processUtils.exitsHappy(<String>['which', 'pod']); _processUtils.exitsHappy(<String>['which', 'pod']);
......
...@@ -52,7 +52,7 @@ class CocoaPodsValidator extends DoctorValidator { ...@@ -52,7 +52,7 @@ class CocoaPodsValidator extends DoctorValidator {
status = ValidationType.partial; status = ValidationType.partial;
final String currentVersionText = await _cocoaPods.cocoaPodsVersionText; final String currentVersionText = await _cocoaPods.cocoaPodsVersionText;
messages.add(ValidationMessage.hint( messages.add(ValidationMessage.hint(
_userMessages.cocoaPodsOutdated(currentVersionText, _cocoaPods.cocoaPodsRecommendedVersion, noCocoaPodsConsequence, cocoaPodsInstallInstructions))); _userMessages.cocoaPodsOutdated(currentVersionText, cocoaPodsRecommendedVersion, noCocoaPodsConsequence, cocoaPodsInstallInstructions)));
} }
} }
......
...@@ -8,62 +8,53 @@ import 'package:flutter_tools/src/base/user_messages.dart'; ...@@ -8,62 +8,53 @@ import 'package:flutter_tools/src/base/user_messages.dart';
import 'package:flutter_tools/src/doctor.dart'; import 'package:flutter_tools/src/doctor.dart';
import 'package:flutter_tools/src/macos/cocoapods.dart'; import 'package:flutter_tools/src/macos/cocoapods.dart';
import 'package:flutter_tools/src/macos/cocoapods_validator.dart'; import 'package:flutter_tools/src/macos/cocoapods_validator.dart';
import 'package:mockito/mockito.dart'; import 'package:test/fake.dart';
import '../../src/common.dart'; import '../../src/common.dart';
void main() { void main() {
group('CocoaPods validation', () { group('CocoaPods validation', () {
MockCocoaPods cocoaPods;
setUp(() {
cocoaPods = MockCocoaPods();
when(cocoaPods.evaluateCocoaPodsInstallation)
.thenAnswer((_) async => CocoaPodsStatus.recommended);
when(cocoaPods.cocoaPodsVersionText).thenAnswer((_) async => '1.8.0');
});
testWithoutContext('Emits installed status when CocoaPods is installed', () async { testWithoutContext('Emits installed status when CocoaPods is installed', () async {
final CocoaPodsValidator workflow = CocoaPodsValidator(cocoaPods, UserMessages()); final CocoaPodsValidator workflow = CocoaPodsValidator(FakeCocoaPods(CocoaPodsStatus.recommended), UserMessages());
final ValidationResult result = await workflow.validate(); final ValidationResult result = await workflow.validate();
expect(result.type, ValidationType.installed); expect(result.type, ValidationType.installed);
}); });
testWithoutContext('Emits missing status when CocoaPods is not installed', () async { testWithoutContext('Emits missing status when CocoaPods is not installed', () async {
when(cocoaPods.evaluateCocoaPodsInstallation) final CocoaPodsValidator workflow = CocoaPodsValidator(FakeCocoaPods(CocoaPodsStatus.notInstalled), UserMessages());
.thenAnswer((_) async => CocoaPodsStatus.notInstalled);
final CocoaPodsValidator workflow = CocoaPodsValidator(cocoaPods, UserMessages());
final ValidationResult result = await workflow.validate(); final ValidationResult result = await workflow.validate();
expect(result.type, ValidationType.missing); expect(result.type, ValidationType.missing);
}); });
testWithoutContext('Emits partial status when CocoaPods is installed with unknown version', () async { testWithoutContext('Emits partial status when CocoaPods is installed with unknown version', () async {
when(cocoaPods.evaluateCocoaPodsInstallation) final CocoaPodsValidator workflow = CocoaPodsValidator(FakeCocoaPods(CocoaPodsStatus.unknownVersion), UserMessages());
.thenAnswer((_) async => CocoaPodsStatus.unknownVersion);
final CocoaPodsValidator workflow = CocoaPodsValidator(cocoaPods, UserMessages());
final ValidationResult result = await workflow.validate(); final ValidationResult result = await workflow.validate();
expect(result.type, ValidationType.partial); expect(result.type, ValidationType.partial);
}); });
testWithoutContext('Emits partial status when CocoaPods version is too low', () async { testWithoutContext('Emits partial status when CocoaPods version is too low', () async {
when(cocoaPods.evaluateCocoaPodsInstallation)
.thenAnswer((_) async => CocoaPodsStatus.belowRecommendedVersion);
const String currentVersion = '1.4.0'; const String currentVersion = '1.4.0';
when(cocoaPods.cocoaPodsVersionText) final CocoaPods fakeCocoaPods = FakeCocoaPods(CocoaPodsStatus.belowRecommendedVersion, currentVersion);
.thenAnswer((_) async => currentVersion); final CocoaPodsValidator workflow = CocoaPodsValidator(fakeCocoaPods, UserMessages());
const String recommendedVersion = '1.8.0';
when(cocoaPods.cocoaPodsRecommendedVersion)
.thenAnswer((_) => recommendedVersion);
final CocoaPodsValidator workflow = CocoaPodsValidator(cocoaPods, UserMessages());
final ValidationResult result = await workflow.validate(); final ValidationResult result = await workflow.validate();
expect(result.type, ValidationType.partial); expect(result.type, ValidationType.partial);
expect(result.messages.length, 1); expect(result.messages.length, 1);
final ValidationMessage message = result.messages.first; final ValidationMessage message = result.messages.first;
expect(message.type, ValidationMessageType.hint); expect(message.type, ValidationMessageType.hint);
expect(message.message, contains('CocoaPods $currentVersion out of date')); expect(message.message, contains('CocoaPods $currentVersion out of date'));
expect(message.message, contains('($recommendedVersion is recommended)')); expect(message.message, contains('(1.10.0 is recommended)'));
}); });
}); });
} }
class MockCocoaPods extends Mock implements CocoaPods {} class FakeCocoaPods extends Fake implements CocoaPods {
FakeCocoaPods(this._evaluateCocoaPodsInstallation, [this._cocoaPodsVersionText]);
@override
Future<CocoaPodsStatus> get evaluateCocoaPodsInstallation async => _evaluateCocoaPodsInstallation;
final CocoaPodsStatus _evaluateCocoaPodsInstallation;
@override
Future<String> get cocoaPodsVersionText async => _cocoaPodsVersionText;
final String _cocoaPodsVersionText;
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment