From 2fbb1db9269e10e4aaaf58ba8c60a4c34d3c1ef1 Mon Sep 17 00:00:00 2001 From: Hwan-seok Date: Fri, 6 May 2022 03:15:06 +0900 Subject: [PATCH 01/15] Fix: Add availability to mock some models --- AUTHORS | 1 + packages/google_sign_in/google_sign_in/CHANGELOG.md | 4 ++++ .../google_sign_in/google_sign_in/lib/google_sign_in.dart | 2 +- packages/google_sign_in/google_sign_in/pubspec.yaml | 2 +- .../google_sign_in_platform_interface/CHANGELOG.md | 3 ++- .../google_sign_in_platform_interface/lib/src/types.dart | 4 ++-- .../google_sign_in_platform_interface/pubspec.yaml | 2 +- .../in_app_purchase/in_app_purchase_android/CHANGELOG.md | 3 ++- .../src/billing_client_wrappers/sku_details_wrapper.dart | 6 +++--- .../in_app_purchase/in_app_purchase_android/pubspec.yaml | 2 +- 10 files changed, 18 insertions(+), 11 deletions(-) diff --git a/AUTHORS b/AUTHORS index 41a31ed39cd4..31402c79d54a 100644 --- a/AUTHORS +++ b/AUTHORS @@ -67,3 +67,4 @@ Rahul Raj <64.rahulraj@gmail.com> Daniel Roek TheOneWithTheBraid Rulong Chen(陈汝龙) +Hwanseok Kang diff --git a/packages/google_sign_in/google_sign_in/CHANGELOG.md b/packages/google_sign_in/google_sign_in/CHANGELOG.md index caab46de7c5b..27a25150edd4 100644 --- a/packages/google_sign_in/google_sign_in/CHANGELOG.md +++ b/packages/google_sign_in/google_sign_in/CHANGELOG.md @@ -1,3 +1,7 @@ +## 5.3.1 + +* Enable mocking models by Changing overridden operator == parameter type from `dynamic` to `Object` + ## 5.3.0 * Moves Android and iOS implementations to federated packages. diff --git a/packages/google_sign_in/google_sign_in/lib/google_sign_in.dart b/packages/google_sign_in/google_sign_in/lib/google_sign_in.dart index 228f34b651c5..3c62e0e1a655 100644 --- a/packages/google_sign_in/google_sign_in/lib/google_sign_in.dart +++ b/packages/google_sign_in/google_sign_in/lib/google_sign_in.dart @@ -129,7 +129,7 @@ class GoogleSignInAccount implements GoogleIdentity { } @override - bool operator ==(dynamic other) { + bool operator ==(Object other) { if (identical(this, other)) { return true; } diff --git a/packages/google_sign_in/google_sign_in/pubspec.yaml b/packages/google_sign_in/google_sign_in/pubspec.yaml index 760706f2e7bc..e58b27af08b7 100644 --- a/packages/google_sign_in/google_sign_in/pubspec.yaml +++ b/packages/google_sign_in/google_sign_in/pubspec.yaml @@ -3,7 +3,7 @@ description: Flutter plugin for Google Sign-In, a secure authentication system for signing in with a Google account on Android and iOS. repository: https://github.com/flutter/plugins/tree/main/packages/google_sign_in/google_sign_in issue_tracker: https://github.com/flutter/flutter/issues?q=is%3Aissue+is%3Aopen+label%3A%22p%3A+google_sign_in%22 -version: 5.3.0 +version: 5.3.1 environment: diff --git a/packages/google_sign_in/google_sign_in_platform_interface/CHANGELOG.md b/packages/google_sign_in/google_sign_in_platform_interface/CHANGELOG.md index da214d3ce6a9..7d580f010ec4 100644 --- a/packages/google_sign_in/google_sign_in_platform_interface/CHANGELOG.md +++ b/packages/google_sign_in/google_sign_in_platform_interface/CHANGELOG.md @@ -1,5 +1,6 @@ -## NEXT +## 2.1.3 +* Enable mocking models by Changing overridden operator == parameter type from `dynamic` to `Object` * Removes unnecessary imports. ## 2.1.2 diff --git a/packages/google_sign_in/google_sign_in_platform_interface/lib/src/types.dart b/packages/google_sign_in/google_sign_in_platform_interface/lib/src/types.dart index bc50a1d2516d..bd74419d19a4 100644 --- a/packages/google_sign_in/google_sign_in_platform_interface/lib/src/types.dart +++ b/packages/google_sign_in/google_sign_in_platform_interface/lib/src/types.dart @@ -79,7 +79,7 @@ class GoogleSignInUserData { @override // TODO(stuartmorgan): Make this class immutable in the next breaking change. // ignore: avoid_equals_and_hash_code_on_mutable_classes - bool operator ==(dynamic other) { + bool operator ==(Object other) { if (identical(this, other)) { return true; } @@ -122,7 +122,7 @@ class GoogleSignInTokenData { @override // TODO(stuartmorgan): Make this class immutable in the next breaking change. // ignore: avoid_equals_and_hash_code_on_mutable_classes - bool operator ==(dynamic other) { + bool operator ==(Object other) { if (identical(this, other)) { return true; } diff --git a/packages/google_sign_in/google_sign_in_platform_interface/pubspec.yaml b/packages/google_sign_in/google_sign_in_platform_interface/pubspec.yaml index a5bbaedd51e7..0deafe80a863 100644 --- a/packages/google_sign_in/google_sign_in_platform_interface/pubspec.yaml +++ b/packages/google_sign_in/google_sign_in_platform_interface/pubspec.yaml @@ -4,7 +4,7 @@ repository: https://github.com/flutter/plugins/tree/main/packages/google_sign_in issue_tracker: https://github.com/flutter/flutter/issues?q=is%3Aissue+is%3Aopen+label%3A%22p%3A+google_sign_in%22 # NOTE: We strongly prefer non-breaking changes, even at the expense of a # less-clean API. See https://flutter.dev/go/platform-interface-breaking-changes -version: 2.1.2 +version: 2.1.3 environment: sdk: ">=2.12.0 <3.0.0" diff --git a/packages/in_app_purchase/in_app_purchase_android/CHANGELOG.md b/packages/in_app_purchase/in_app_purchase_android/CHANGELOG.md index 2657d504ac91..e7101b453c0d 100644 --- a/packages/in_app_purchase/in_app_purchase_android/CHANGELOG.md +++ b/packages/in_app_purchase/in_app_purchase_android/CHANGELOG.md @@ -1,5 +1,6 @@ -## NEXT +## 0.2.2+4 +* Enable mocking models by Changing overridden operator == parameter type from `dynamic` to `Object` * Removes unnecessary imports. ## 0.2.2+3 diff --git a/packages/in_app_purchase/in_app_purchase_android/lib/src/billing_client_wrappers/sku_details_wrapper.dart b/packages/in_app_purchase/in_app_purchase_android/lib/src/billing_client_wrappers/sku_details_wrapper.dart index 07f9d8f29abf..1c5c2d1fcee9 100644 --- a/packages/in_app_purchase/in_app_purchase_android/lib/src/billing_client_wrappers/sku_details_wrapper.dart +++ b/packages/in_app_purchase/in_app_purchase_android/lib/src/billing_client_wrappers/sku_details_wrapper.dart @@ -135,7 +135,7 @@ class SkuDetailsWrapper { final int originalPriceAmountMicros; @override - bool operator ==(dynamic other) { + bool operator ==(Object other) { if (other.runtimeType != runtimeType) { return false; } @@ -203,7 +203,7 @@ class SkuDetailsResponseWrapper { final List skuDetailsList; @override - bool operator ==(dynamic other) { + bool operator ==(Object other) { if (other.runtimeType != runtimeType) { return false; } @@ -248,7 +248,7 @@ class BillingResultWrapper { final String? debugMessage; @override - bool operator ==(dynamic other) { + bool operator ==(Object other) { if (other.runtimeType != runtimeType) { return false; } diff --git a/packages/in_app_purchase/in_app_purchase_android/pubspec.yaml b/packages/in_app_purchase/in_app_purchase_android/pubspec.yaml index 62888e6dfb73..7de778177c31 100644 --- a/packages/in_app_purchase/in_app_purchase_android/pubspec.yaml +++ b/packages/in_app_purchase/in_app_purchase_android/pubspec.yaml @@ -2,7 +2,7 @@ name: in_app_purchase_android description: An implementation for the Android platform of the Flutter `in_app_purchase` plugin. This uses the Android BillingClient APIs. repository: https://github.com/flutter/plugins/tree/main/packages/in_app_purchase/in_app_purchase_android issue_tracker: https://github.com/flutter/flutter/issues?q=is%3Aissue+is%3Aopen+label%3A%22p%3A+in_app_purchase%22 -version: 0.2.2+3 +version: 0.2.2+4 environment: sdk: ">=2.14.0 <3.0.0" From 42b4e3d93699d139611f5c390b57c290ef902470 Mon Sep 17 00:00:00 2001 From: Hwan-seok Date: Fri, 6 May 2022 03:56:39 +0900 Subject: [PATCH 02/15] Test: add some tests --- .../google_sign_in/pubspec.yaml | 1 + .../test/google_sign_in_test.dart | 3 + ...oogle_sign_in_platform_interface_test.dart | 41 ++++++++++++ .../in_app_purchase_android/pubspec.yaml | 1 + .../sku_details_wrapper_test.dart | 62 +++++++++++++++++++ 5 files changed, 108 insertions(+) diff --git a/packages/google_sign_in/google_sign_in/pubspec.yaml b/packages/google_sign_in/google_sign_in/pubspec.yaml index e58b27af08b7..d6d5665ab0c0 100644 --- a/packages/google_sign_in/google_sign_in/pubspec.yaml +++ b/packages/google_sign_in/google_sign_in/pubspec.yaml @@ -36,6 +36,7 @@ dev_dependencies: http: ^0.13.0 integration_test: sdk: flutter + mocktail: ^0.3.0 # The example deliberately includes limited-use secrets. false_secrets: diff --git a/packages/google_sign_in/google_sign_in/test/google_sign_in_test.dart b/packages/google_sign_in/google_sign_in/test/google_sign_in_test.dart index 119ee50a383b..7733fe8c33db 100644 --- a/packages/google_sign_in/google_sign_in/test/google_sign_in_test.dart +++ b/packages/google_sign_in/google_sign_in/test/google_sign_in_test.dart @@ -9,6 +9,9 @@ import 'package:flutter_test/flutter_test.dart'; import 'package:google_sign_in/google_sign_in.dart'; import 'package:google_sign_in/testing.dart'; import 'package:google_sign_in_platform_interface/google_sign_in_platform_interface.dart'; +import 'package:mocktail/mocktail.dart'; + +class MockGoogleSignInAccount extends Mock implements GoogleSignInAccount {} void main() { TestWidgetsFlutterBinding.ensureInitialized(); diff --git a/packages/google_sign_in/google_sign_in_platform_interface/test/google_sign_in_platform_interface_test.dart b/packages/google_sign_in/google_sign_in_platform_interface/test/google_sign_in_platform_interface_test.dart index 78e57a3eb2ac..b252a81cd825 100644 --- a/packages/google_sign_in/google_sign_in_platform_interface/test/google_sign_in_platform_interface_test.dart +++ b/packages/google_sign_in/google_sign_in_platform_interface/test/google_sign_in_platform_interface_test.dart @@ -29,6 +29,43 @@ void main() { GoogleSignInPlatform.instance = ImplementsWithIsMock(); }); }); + + group('GoogleSignInTokenData', () { + test('can be compared by == operator', () { + final GoogleSignInTokenData firstInstance = GoogleSignInTokenData( + accessToken: 'accessToken', + idToken: 'idToken', + serverAuthCode: 'serverAuthCode', + ); + final GoogleSignInTokenData secondInstance = GoogleSignInTokenData( + accessToken: 'accessToken', + idToken: 'idToken', + serverAuthCode: 'serverAuthCode', + ); + expect(firstInstance == secondInstance, isTrue); + }); + }); + group('GoogleSignInUserData', () { + test('can be compared by == operator', () { + final GoogleSignInUserData firstInstance = GoogleSignInUserData( + email: 'email', + id: 'id', + displayName: 'displayName', + photoUrl: 'photoUrl', + idToken: 'idToken', + serverAuthCode: 'serverAuthCode', + ); + final GoogleSignInUserData secondInstance = GoogleSignInUserData( + email: 'email', + id: 'id', + displayName: 'displayName', + photoUrl: 'photoUrl', + idToken: 'idToken', + serverAuthCode: 'serverAuthCode', + ); + expect(firstInstance == secondInstance, isTrue); + }); + }); } class ImplementsWithIsMock extends Mock implements GoogleSignInPlatform { @@ -36,6 +73,10 @@ class ImplementsWithIsMock extends Mock implements GoogleSignInPlatform { bool get isMock => true; } +class MockGoogleSignInTokenData extends Mock implements GoogleSignInTokenData {} + +class MockGoogleSignInUserData extends Mock implements GoogleSignInUserData {} + class ImplementsGoogleSignInPlatform extends Mock implements GoogleSignInPlatform {} diff --git a/packages/in_app_purchase/in_app_purchase_android/pubspec.yaml b/packages/in_app_purchase/in_app_purchase_android/pubspec.yaml index 7de778177c31..5505cd1275ca 100644 --- a/packages/in_app_purchase/in_app_purchase_android/pubspec.yaml +++ b/packages/in_app_purchase/in_app_purchase_android/pubspec.yaml @@ -29,3 +29,4 @@ dev_dependencies: sdk: flutter json_serializable: ^6.0.0 test: ^1.16.0 + mocktail: ^0.3.0 diff --git a/packages/in_app_purchase/in_app_purchase_android/test/billing_client_wrappers/sku_details_wrapper_test.dart b/packages/in_app_purchase/in_app_purchase_android/test/billing_client_wrappers/sku_details_wrapper_test.dart index ecc399b27716..840058f37949 100644 --- a/packages/in_app_purchase/in_app_purchase_android/test/billing_client_wrappers/sku_details_wrapper_test.dart +++ b/packages/in_app_purchase/in_app_purchase_android/test/billing_client_wrappers/sku_details_wrapper_test.dart @@ -4,8 +4,16 @@ import 'package:in_app_purchase_android/billing_client_wrappers.dart'; import 'package:in_app_purchase_android/src/types/google_play_product_details.dart'; +import 'package:mocktail/mocktail.dart'; import 'package:test/test.dart'; +class MockSkuDetailsWrapper extends Mock implements SkuDetailsWrapper {} + +class MockSkuDetailsResponseWrapper extends Mock + implements SkuDetailsResponseWrapper {} + +class MockBillingResultWrapper extends Mock implements BillingResultWrapper {} + const SkuDetailsWrapper dummySkuDetails = SkuDetailsWrapper( description: 'description', freeTrialPeriod: 'freeTrialPeriod', @@ -125,6 +133,60 @@ void main() { expect(billingResult.debugMessage, kInvalidBillingResultErrorMessage); expect(billingResult.responseCode, BillingResponse.error); }); + + test('operator == of SkuDetailsWrapper works fine', () { + const SkuDetailsWrapper firstSkuDetailsInstance = SkuDetailsWrapper( + description: 'description', + freeTrialPeriod: 'freeTrialPeriod', + introductoryPrice: 'introductoryPrice', + introductoryPriceAmountMicros: 990000, + introductoryPriceCycles: 1, + introductoryPricePeriod: 'introductoryPricePeriod', + price: 'price', + priceAmountMicros: 1000, + priceCurrencyCode: 'priceCurrencyCode', + priceCurrencySymbol: r'$', + sku: 'sku', + subscriptionPeriod: 'subscriptionPeriod', + title: 'title', + type: SkuType.inapp, + originalPrice: 'originalPrice', + originalPriceAmountMicros: 1000, + ); + const SkuDetailsWrapper secondSkuDetailsInstance = SkuDetailsWrapper( + description: 'description', + freeTrialPeriod: 'freeTrialPeriod', + introductoryPrice: 'introductoryPrice', + introductoryPriceAmountMicros: 990000, + introductoryPriceCycles: 1, + introductoryPricePeriod: 'introductoryPricePeriod', + price: 'price', + priceAmountMicros: 1000, + priceCurrencyCode: 'priceCurrencyCode', + priceCurrencySymbol: r'$', + sku: 'sku', + subscriptionPeriod: 'subscriptionPeriod', + title: 'title', + type: SkuType.inapp, + originalPrice: 'originalPrice', + originalPriceAmountMicros: 1000, + ); + expect(firstSkuDetailsInstance == secondSkuDetailsInstance, isTrue); + }); + + test('operator == of BillingResultWrapper works fine', () { + const BillingResultWrapper firstBillingResultInstance = + BillingResultWrapper( + responseCode: BillingResponse.ok, + debugMessage: 'debugMessage', + ); + const BillingResultWrapper secondBillingResultInstance = + BillingResultWrapper( + responseCode: BillingResponse.ok, + debugMessage: 'debugMessage', + ); + expect(firstBillingResultInstance == secondBillingResultInstance, isTrue); + }); }); } From 2623a1e569ae0d69abcb074d151ada08670a89e6 Mon Sep 17 00:00:00 2001 From: Hwan-seok Date: Fri, 6 May 2022 04:35:37 +0900 Subject: [PATCH 03/15] chore: sort dev deps --- packages/in_app_purchase/in_app_purchase_android/pubspec.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/in_app_purchase/in_app_purchase_android/pubspec.yaml b/packages/in_app_purchase/in_app_purchase_android/pubspec.yaml index 5505cd1275ca..edcadc4f5a76 100644 --- a/packages/in_app_purchase/in_app_purchase_android/pubspec.yaml +++ b/packages/in_app_purchase/in_app_purchase_android/pubspec.yaml @@ -28,5 +28,5 @@ dev_dependencies: flutter_test: sdk: flutter json_serializable: ^6.0.0 - test: ^1.16.0 mocktail: ^0.3.0 + test: ^1.16.0 \ No newline at end of file From 0199162ccac71b238de27e9fed743b0f7c60f359 Mon Sep 17 00:00:00 2001 From: Hwan-seok Date: Sat, 7 May 2022 00:27:39 +0900 Subject: [PATCH 04/15] Fix: follow the contribution style guide --- packages/google_sign_in/google_sign_in/CHANGELOG.md | 2 +- packages/google_sign_in/google_sign_in/pubspec.yaml | 2 +- .../google_sign_in/test/google_sign_in_test.dart | 3 ++- .../google_sign_in_platform_interface/CHANGELOG.md | 2 +- .../test/google_sign_in_platform_interface_test.dart | 2 ++ .../in_app_purchase/in_app_purchase_android/CHANGELOG.md | 2 +- .../in_app_purchase/in_app_purchase_android/pubspec.yaml | 2 +- .../billing_client_wrappers/sku_details_wrapper_test.dart | 5 ++++- 8 files changed, 13 insertions(+), 7 deletions(-) diff --git a/packages/google_sign_in/google_sign_in/CHANGELOG.md b/packages/google_sign_in/google_sign_in/CHANGELOG.md index 27a25150edd4..9a706c2874b5 100644 --- a/packages/google_sign_in/google_sign_in/CHANGELOG.md +++ b/packages/google_sign_in/google_sign_in/CHANGELOG.md @@ -1,6 +1,6 @@ ## 5.3.1 -* Enable mocking models by Changing overridden operator == parameter type from `dynamic` to `Object` +* Enables mocking models by Changing overridden operator == parameter type from `dynamic` to `Object`. ## 5.3.0 diff --git a/packages/google_sign_in/google_sign_in/pubspec.yaml b/packages/google_sign_in/google_sign_in/pubspec.yaml index d6d5665ab0c0..89f81c44c3cc 100644 --- a/packages/google_sign_in/google_sign_in/pubspec.yaml +++ b/packages/google_sign_in/google_sign_in/pubspec.yaml @@ -36,7 +36,7 @@ dev_dependencies: http: ^0.13.0 integration_test: sdk: flutter - mocktail: ^0.3.0 + mockito: ^5.1.0 # The example deliberately includes limited-use secrets. false_secrets: diff --git a/packages/google_sign_in/google_sign_in/test/google_sign_in_test.dart b/packages/google_sign_in/google_sign_in/test/google_sign_in_test.dart index 7733fe8c33db..6e8cafac86f9 100644 --- a/packages/google_sign_in/google_sign_in/test/google_sign_in_test.dart +++ b/packages/google_sign_in/google_sign_in/test/google_sign_in_test.dart @@ -9,8 +9,9 @@ import 'package:flutter_test/flutter_test.dart'; import 'package:google_sign_in/google_sign_in.dart'; import 'package:google_sign_in/testing.dart'; import 'package:google_sign_in_platform_interface/google_sign_in_platform_interface.dart'; -import 'package:mocktail/mocktail.dart'; +import 'package:mockito/mockito.dart'; +/// Verify that [GoogleSignInTokenData] can be mocked even though it's unused class MockGoogleSignInAccount extends Mock implements GoogleSignInAccount {} void main() { diff --git a/packages/google_sign_in/google_sign_in_platform_interface/CHANGELOG.md b/packages/google_sign_in/google_sign_in_platform_interface/CHANGELOG.md index 7d580f010ec4..2a465e6fc0f1 100644 --- a/packages/google_sign_in/google_sign_in_platform_interface/CHANGELOG.md +++ b/packages/google_sign_in/google_sign_in_platform_interface/CHANGELOG.md @@ -1,6 +1,6 @@ ## 2.1.3 -* Enable mocking models by Changing overridden operator == parameter type from `dynamic` to `Object` +* Enables mocking models by Changing overridden operator == parameter type from `dynamic` to `Object`. * Removes unnecessary imports. ## 2.1.2 diff --git a/packages/google_sign_in/google_sign_in_platform_interface/test/google_sign_in_platform_interface_test.dart b/packages/google_sign_in/google_sign_in_platform_interface/test/google_sign_in_platform_interface_test.dart index b252a81cd825..150faeef211a 100644 --- a/packages/google_sign_in/google_sign_in_platform_interface/test/google_sign_in_platform_interface_test.dart +++ b/packages/google_sign_in/google_sign_in_platform_interface/test/google_sign_in_platform_interface_test.dart @@ -73,8 +73,10 @@ class ImplementsWithIsMock extends Mock implements GoogleSignInPlatform { bool get isMock => true; } +/// Verify that [GoogleSignInTokenData] can be mocked even though it's unused class MockGoogleSignInTokenData extends Mock implements GoogleSignInTokenData {} +/// Verify that [GoogleSignInUserData] can be mocked even though it's unused class MockGoogleSignInUserData extends Mock implements GoogleSignInUserData {} class ImplementsGoogleSignInPlatform extends Mock diff --git a/packages/in_app_purchase/in_app_purchase_android/CHANGELOG.md b/packages/in_app_purchase/in_app_purchase_android/CHANGELOG.md index e7101b453c0d..96260da45e38 100644 --- a/packages/in_app_purchase/in_app_purchase_android/CHANGELOG.md +++ b/packages/in_app_purchase/in_app_purchase_android/CHANGELOG.md @@ -1,6 +1,6 @@ ## 0.2.2+4 -* Enable mocking models by Changing overridden operator == parameter type from `dynamic` to `Object` +* Enables mocking models by Changing overridden operator == parameter type from `dynamic` to `Object`. * Removes unnecessary imports. ## 0.2.2+3 diff --git a/packages/in_app_purchase/in_app_purchase_android/pubspec.yaml b/packages/in_app_purchase/in_app_purchase_android/pubspec.yaml index edcadc4f5a76..96134e54cb77 100644 --- a/packages/in_app_purchase/in_app_purchase_android/pubspec.yaml +++ b/packages/in_app_purchase/in_app_purchase_android/pubspec.yaml @@ -28,5 +28,5 @@ dev_dependencies: flutter_test: sdk: flutter json_serializable: ^6.0.0 - mocktail: ^0.3.0 + mockito: ^5.1.0 test: ^1.16.0 \ No newline at end of file diff --git a/packages/in_app_purchase/in_app_purchase_android/test/billing_client_wrappers/sku_details_wrapper_test.dart b/packages/in_app_purchase/in_app_purchase_android/test/billing_client_wrappers/sku_details_wrapper_test.dart index 840058f37949..e0aa8be56ced 100644 --- a/packages/in_app_purchase/in_app_purchase_android/test/billing_client_wrappers/sku_details_wrapper_test.dart +++ b/packages/in_app_purchase/in_app_purchase_android/test/billing_client_wrappers/sku_details_wrapper_test.dart @@ -4,14 +4,17 @@ import 'package:in_app_purchase_android/billing_client_wrappers.dart'; import 'package:in_app_purchase_android/src/types/google_play_product_details.dart'; -import 'package:mocktail/mocktail.dart'; +import 'package:mockito/mockito.dart'; import 'package:test/test.dart'; +/// Verify that [SkuDetailsWrapper] can be mocked even though it's unused class MockSkuDetailsWrapper extends Mock implements SkuDetailsWrapper {} +/// Verify that [SkuDetailsResponseWrapper] can be mocked even though it's unused class MockSkuDetailsResponseWrapper extends Mock implements SkuDetailsResponseWrapper {} +/// Verify that [BillingResultWrapper] can be mocked even though it's unused class MockBillingResultWrapper extends Mock implements BillingResultWrapper {} const SkuDetailsWrapper dummySkuDetails = SkuDetailsWrapper( From dfac0f8151d2621ca31f4eba43918b7f173dd60f Mon Sep 17 00:00:00 2001 From: Hwan-seok Date: Sat, 7 May 2022 00:29:55 +0900 Subject: [PATCH 05/15] Fix: Corrects misuse of capital in CHANGELOG --- packages/google_sign_in/google_sign_in/CHANGELOG.md | 2 +- .../google_sign_in_platform_interface/CHANGELOG.md | 2 +- packages/in_app_purchase/in_app_purchase_android/CHANGELOG.md | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/packages/google_sign_in/google_sign_in/CHANGELOG.md b/packages/google_sign_in/google_sign_in/CHANGELOG.md index 9a706c2874b5..fbbf17fc6907 100644 --- a/packages/google_sign_in/google_sign_in/CHANGELOG.md +++ b/packages/google_sign_in/google_sign_in/CHANGELOG.md @@ -1,6 +1,6 @@ ## 5.3.1 -* Enables mocking models by Changing overridden operator == parameter type from `dynamic` to `Object`. +* Enables mocking models by changing overridden operator == parameter type from `dynamic` to `Object`. ## 5.3.0 diff --git a/packages/google_sign_in/google_sign_in_platform_interface/CHANGELOG.md b/packages/google_sign_in/google_sign_in_platform_interface/CHANGELOG.md index 2a465e6fc0f1..ad498dd8642a 100644 --- a/packages/google_sign_in/google_sign_in_platform_interface/CHANGELOG.md +++ b/packages/google_sign_in/google_sign_in_platform_interface/CHANGELOG.md @@ -1,6 +1,6 @@ ## 2.1.3 -* Enables mocking models by Changing overridden operator == parameter type from `dynamic` to `Object`. +* Enables mocking models by changing overridden operator == parameter type from `dynamic` to `Object`. * Removes unnecessary imports. ## 2.1.2 diff --git a/packages/in_app_purchase/in_app_purchase_android/CHANGELOG.md b/packages/in_app_purchase/in_app_purchase_android/CHANGELOG.md index 96260da45e38..fe8e1043c710 100644 --- a/packages/in_app_purchase/in_app_purchase_android/CHANGELOG.md +++ b/packages/in_app_purchase/in_app_purchase_android/CHANGELOG.md @@ -1,6 +1,6 @@ ## 0.2.2+4 -* Enables mocking models by Changing overridden operator == parameter type from `dynamic` to `Object`. +* Enables mocking models by changing overridden operator == parameter type from `dynamic` to `Object`. * Removes unnecessary imports. ## 0.2.2+3 From bc23b5980956e727dae5be3ee11f820ac8b63c82 Mon Sep 17 00:00:00 2001 From: Hwan-seok Date: Sat, 7 May 2022 00:41:57 +0900 Subject: [PATCH 06/15] Fix: Correct docs --- .../google_sign_in/google_sign_in/test/google_sign_in_test.dart | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/google_sign_in/google_sign_in/test/google_sign_in_test.dart b/packages/google_sign_in/google_sign_in/test/google_sign_in_test.dart index 6e8cafac86f9..87d65004e1b2 100644 --- a/packages/google_sign_in/google_sign_in/test/google_sign_in_test.dart +++ b/packages/google_sign_in/google_sign_in/test/google_sign_in_test.dart @@ -11,7 +11,7 @@ import 'package:google_sign_in/testing.dart'; import 'package:google_sign_in_platform_interface/google_sign_in_platform_interface.dart'; import 'package:mockito/mockito.dart'; -/// Verify that [GoogleSignInTokenData] can be mocked even though it's unused +/// Verify that [GoogleSignInAccount] can be mocked even though it's unused class MockGoogleSignInAccount extends Mock implements GoogleSignInAccount {} void main() { From 80fac31dd3c9468887740c869e2cf797aebc3f48 Mon Sep 17 00:00:00 2001 From: Hwanseok Date: Mon, 9 May 2022 11:52:56 +0900 Subject: [PATCH 07/15] Fix: Reverts declaring mock data class --- .../test/google_sign_in_platform_interface_test.dart | 6 ------ .../sku_details_wrapper_test.dart | 11 ----------- 2 files changed, 17 deletions(-) diff --git a/packages/google_sign_in/google_sign_in_platform_interface/test/google_sign_in_platform_interface_test.dart b/packages/google_sign_in/google_sign_in_platform_interface/test/google_sign_in_platform_interface_test.dart index 150faeef211a..fc10860b3257 100644 --- a/packages/google_sign_in/google_sign_in_platform_interface/test/google_sign_in_platform_interface_test.dart +++ b/packages/google_sign_in/google_sign_in_platform_interface/test/google_sign_in_platform_interface_test.dart @@ -73,12 +73,6 @@ class ImplementsWithIsMock extends Mock implements GoogleSignInPlatform { bool get isMock => true; } -/// Verify that [GoogleSignInTokenData] can be mocked even though it's unused -class MockGoogleSignInTokenData extends Mock implements GoogleSignInTokenData {} - -/// Verify that [GoogleSignInUserData] can be mocked even though it's unused -class MockGoogleSignInUserData extends Mock implements GoogleSignInUserData {} - class ImplementsGoogleSignInPlatform extends Mock implements GoogleSignInPlatform {} diff --git a/packages/in_app_purchase/in_app_purchase_android/test/billing_client_wrappers/sku_details_wrapper_test.dart b/packages/in_app_purchase/in_app_purchase_android/test/billing_client_wrappers/sku_details_wrapper_test.dart index e0aa8be56ced..2d1436885427 100644 --- a/packages/in_app_purchase/in_app_purchase_android/test/billing_client_wrappers/sku_details_wrapper_test.dart +++ b/packages/in_app_purchase/in_app_purchase_android/test/billing_client_wrappers/sku_details_wrapper_test.dart @@ -4,19 +4,8 @@ import 'package:in_app_purchase_android/billing_client_wrappers.dart'; import 'package:in_app_purchase_android/src/types/google_play_product_details.dart'; -import 'package:mockito/mockito.dart'; import 'package:test/test.dart'; -/// Verify that [SkuDetailsWrapper] can be mocked even though it's unused -class MockSkuDetailsWrapper extends Mock implements SkuDetailsWrapper {} - -/// Verify that [SkuDetailsResponseWrapper] can be mocked even though it's unused -class MockSkuDetailsResponseWrapper extends Mock - implements SkuDetailsResponseWrapper {} - -/// Verify that [BillingResultWrapper] can be mocked even though it's unused -class MockBillingResultWrapper extends Mock implements BillingResultWrapper {} - const SkuDetailsWrapper dummySkuDetails = SkuDetailsWrapper( description: 'description', freeTrialPeriod: 'freeTrialPeriod', From fba8365cb97ad3cfbcc6838abe47e6e47dbe3d4d Mon Sep 17 00:00:00 2001 From: Hwan-seok Date: Tue, 10 May 2022 02:47:13 +0900 Subject: [PATCH 08/15] Fix: Ignores analysis for mock --- .../google_sign_in/google_sign_in/test/google_sign_in_test.dart | 1 + 1 file changed, 1 insertion(+) diff --git a/packages/google_sign_in/google_sign_in/test/google_sign_in_test.dart b/packages/google_sign_in/google_sign_in/test/google_sign_in_test.dart index 87d65004e1b2..8f8fe5730d6a 100644 --- a/packages/google_sign_in/google_sign_in/test/google_sign_in_test.dart +++ b/packages/google_sign_in/google_sign_in/test/google_sign_in_test.dart @@ -12,6 +12,7 @@ import 'package:google_sign_in_platform_interface/google_sign_in_platform_interf import 'package:mockito/mockito.dart'; /// Verify that [GoogleSignInAccount] can be mocked even though it's unused +// ignore: must_be_immutable class MockGoogleSignInAccount extends Mock implements GoogleSignInAccount {} void main() { From 55a272662b2643957e7ff4ddcfe71c22fa58b4cc Mon Sep 17 00:00:00 2001 From: Hwan-seok Date: Tue, 10 May 2022 03:02:09 +0900 Subject: [PATCH 09/15] Fix: revert google_sign_in_platform_interface part due to keeping federated safety --- .../CHANGELOG.md | 3 +- .../lib/src/types.dart | 4 +- .../pubspec.yaml | 2 +- ...oogle_sign_in_platform_interface_test.dart | 37 ------------------- 4 files changed, 4 insertions(+), 42 deletions(-) diff --git a/packages/google_sign_in/google_sign_in_platform_interface/CHANGELOG.md b/packages/google_sign_in/google_sign_in_platform_interface/CHANGELOG.md index ad498dd8642a..da214d3ce6a9 100644 --- a/packages/google_sign_in/google_sign_in_platform_interface/CHANGELOG.md +++ b/packages/google_sign_in/google_sign_in_platform_interface/CHANGELOG.md @@ -1,6 +1,5 @@ -## 2.1.3 +## NEXT -* Enables mocking models by changing overridden operator == parameter type from `dynamic` to `Object`. * Removes unnecessary imports. ## 2.1.2 diff --git a/packages/google_sign_in/google_sign_in_platform_interface/lib/src/types.dart b/packages/google_sign_in/google_sign_in_platform_interface/lib/src/types.dart index bd74419d19a4..bc50a1d2516d 100644 --- a/packages/google_sign_in/google_sign_in_platform_interface/lib/src/types.dart +++ b/packages/google_sign_in/google_sign_in_platform_interface/lib/src/types.dart @@ -79,7 +79,7 @@ class GoogleSignInUserData { @override // TODO(stuartmorgan): Make this class immutable in the next breaking change. // ignore: avoid_equals_and_hash_code_on_mutable_classes - bool operator ==(Object other) { + bool operator ==(dynamic other) { if (identical(this, other)) { return true; } @@ -122,7 +122,7 @@ class GoogleSignInTokenData { @override // TODO(stuartmorgan): Make this class immutable in the next breaking change. // ignore: avoid_equals_and_hash_code_on_mutable_classes - bool operator ==(Object other) { + bool operator ==(dynamic other) { if (identical(this, other)) { return true; } diff --git a/packages/google_sign_in/google_sign_in_platform_interface/pubspec.yaml b/packages/google_sign_in/google_sign_in_platform_interface/pubspec.yaml index 0deafe80a863..a5bbaedd51e7 100644 --- a/packages/google_sign_in/google_sign_in_platform_interface/pubspec.yaml +++ b/packages/google_sign_in/google_sign_in_platform_interface/pubspec.yaml @@ -4,7 +4,7 @@ repository: https://github.com/flutter/plugins/tree/main/packages/google_sign_in issue_tracker: https://github.com/flutter/flutter/issues?q=is%3Aissue+is%3Aopen+label%3A%22p%3A+google_sign_in%22 # NOTE: We strongly prefer non-breaking changes, even at the expense of a # less-clean API. See https://flutter.dev/go/platform-interface-breaking-changes -version: 2.1.3 +version: 2.1.2 environment: sdk: ">=2.12.0 <3.0.0" diff --git a/packages/google_sign_in/google_sign_in_platform_interface/test/google_sign_in_platform_interface_test.dart b/packages/google_sign_in/google_sign_in_platform_interface/test/google_sign_in_platform_interface_test.dart index fc10860b3257..78e57a3eb2ac 100644 --- a/packages/google_sign_in/google_sign_in_platform_interface/test/google_sign_in_platform_interface_test.dart +++ b/packages/google_sign_in/google_sign_in_platform_interface/test/google_sign_in_platform_interface_test.dart @@ -29,43 +29,6 @@ void main() { GoogleSignInPlatform.instance = ImplementsWithIsMock(); }); }); - - group('GoogleSignInTokenData', () { - test('can be compared by == operator', () { - final GoogleSignInTokenData firstInstance = GoogleSignInTokenData( - accessToken: 'accessToken', - idToken: 'idToken', - serverAuthCode: 'serverAuthCode', - ); - final GoogleSignInTokenData secondInstance = GoogleSignInTokenData( - accessToken: 'accessToken', - idToken: 'idToken', - serverAuthCode: 'serverAuthCode', - ); - expect(firstInstance == secondInstance, isTrue); - }); - }); - group('GoogleSignInUserData', () { - test('can be compared by == operator', () { - final GoogleSignInUserData firstInstance = GoogleSignInUserData( - email: 'email', - id: 'id', - displayName: 'displayName', - photoUrl: 'photoUrl', - idToken: 'idToken', - serverAuthCode: 'serverAuthCode', - ); - final GoogleSignInUserData secondInstance = GoogleSignInUserData( - email: 'email', - id: 'id', - displayName: 'displayName', - photoUrl: 'photoUrl', - idToken: 'idToken', - serverAuthCode: 'serverAuthCode', - ); - expect(firstInstance == secondInstance, isTrue); - }); - }); } class ImplementsWithIsMock extends Mock implements GoogleSignInPlatform { From 785280d52a98882a90869c20535aa339fe65005d Mon Sep 17 00:00:00 2001 From: stuartmorgan Date: Thu, 19 May 2022 11:53:32 -0400 Subject: [PATCH 10/15] Re-bump sign-in version --- packages/google_sign_in/google_sign_in/pubspec.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/google_sign_in/google_sign_in/pubspec.yaml b/packages/google_sign_in/google_sign_in/pubspec.yaml index 26040a156f5d..1628a2331409 100644 --- a/packages/google_sign_in/google_sign_in/pubspec.yaml +++ b/packages/google_sign_in/google_sign_in/pubspec.yaml @@ -3,7 +3,7 @@ description: Flutter plugin for Google Sign-In, a secure authentication system for signing in with a Google account on Android and iOS. repository: https://github.com/flutter/plugins/tree/main/packages/google_sign_in/google_sign_in issue_tracker: https://github.com/flutter/flutter/issues?q=is%3Aissue+is%3Aopen+label%3A%22p%3A+google_sign_in%22 -version: 5.3.2 +version: 5.3.3 environment: From 64c88816e8d4d023fd07a9f1884261cd6276ac20 Mon Sep 17 00:00:00 2001 From: stuartmorgan Date: Thu, 19 May 2022 11:55:09 -0400 Subject: [PATCH 11/15] Fix version mistake --- packages/google_sign_in/google_sign_in/CHANGELOG.md | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/packages/google_sign_in/google_sign_in/CHANGELOG.md b/packages/google_sign_in/google_sign_in/CHANGELOG.md index bcdff850f786..ad21ee245359 100644 --- a/packages/google_sign_in/google_sign_in/CHANGELOG.md +++ b/packages/google_sign_in/google_sign_in/CHANGELOG.md @@ -1,9 +1,6 @@ -## 5.3.3 - -* Enables mocking models by changing overridden operator == parameter type from `dynamic` to `Object`. - ## 5.3.2 +* Enables mocking models by changing overridden operator == parameter type from `dynamic` to `Object`. * Updates tests to use a mock platform instead of relying on default method channel implementation internals. * Removes example workaround to build for arm64 iOS simulators. From a5ceabd38ca39520c807ef382b320b9fd4945ff8 Mon Sep 17 00:00:00 2001 From: stuartmorgan Date: Thu, 19 May 2022 11:55:21 -0400 Subject: [PATCH 12/15] version --- packages/google_sign_in/google_sign_in/pubspec.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/google_sign_in/google_sign_in/pubspec.yaml b/packages/google_sign_in/google_sign_in/pubspec.yaml index 1628a2331409..26040a156f5d 100644 --- a/packages/google_sign_in/google_sign_in/pubspec.yaml +++ b/packages/google_sign_in/google_sign_in/pubspec.yaml @@ -3,7 +3,7 @@ description: Flutter plugin for Google Sign-In, a secure authentication system for signing in with a Google account on Android and iOS. repository: https://github.com/flutter/plugins/tree/main/packages/google_sign_in/google_sign_in issue_tracker: https://github.com/flutter/flutter/issues?q=is%3Aissue+is%3Aopen+label%3A%22p%3A+google_sign_in%22 -version: 5.3.3 +version: 5.3.2 environment: From 5453f476e7492b32f81cbc3a72c7be640985df1b Mon Sep 17 00:00:00 2001 From: stuartmorgan Date: Thu, 19 May 2022 11:56:10 -0400 Subject: [PATCH 13/15] Fix dropped final newline --- packages/in_app_purchase/in_app_purchase_android/pubspec.yaml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/packages/in_app_purchase/in_app_purchase_android/pubspec.yaml b/packages/in_app_purchase/in_app_purchase_android/pubspec.yaml index cac0eab91fe0..45c290a7aea0 100644 --- a/packages/in_app_purchase/in_app_purchase_android/pubspec.yaml +++ b/packages/in_app_purchase/in_app_purchase_android/pubspec.yaml @@ -29,4 +29,5 @@ dev_dependencies: sdk: flutter json_serializable: ^6.0.0 mockito: ^5.1.0 - test: ^1.16.0 \ No newline at end of file + test: ^1.16.0 + From d8c7306b452ebff231c096119304f30f03d69da6 Mon Sep 17 00:00:00 2001 From: stuartmorgan Date: Thu, 19 May 2022 11:56:51 -0400 Subject: [PATCH 14/15] web editor mistake From b3b1a6303e92be11308af9f46fb9c12d417e13e9 Mon Sep 17 00:00:00 2001 From: stuartmorgan Date: Thu, 19 May 2022 11:57:54 -0400 Subject: [PATCH 15/15] Trying again --- packages/in_app_purchase/in_app_purchase_android/pubspec.yaml | 1 - 1 file changed, 1 deletion(-) diff --git a/packages/in_app_purchase/in_app_purchase_android/pubspec.yaml b/packages/in_app_purchase/in_app_purchase_android/pubspec.yaml index 45c290a7aea0..9958c35dd30e 100644 --- a/packages/in_app_purchase/in_app_purchase_android/pubspec.yaml +++ b/packages/in_app_purchase/in_app_purchase_android/pubspec.yaml @@ -30,4 +30,3 @@ dev_dependencies: json_serializable: ^6.0.0 mockito: ^5.1.0 test: ^1.16.0 -