Skip to content
This repository was archived by the owner on Feb 22, 2023. It is now read-only.

Commit 9bf96ec

Browse files
committed
Remove NoopInAppPurchase implementation
1 parent b283153 commit 9bf96ec

File tree

3 files changed

+12
-16
lines changed

3 files changed

+12
-16
lines changed

packages/in_app_purchase/in_app_purchase_platform_interface/lib/src/in_app_purchase_platform.dart

+10-3
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,6 @@ import 'dart:async';
66

77
import 'package:plugin_platform_interface/plugin_platform_interface.dart';
88

9-
import 'noop_in_app_purchase.dart';
109
import 'types/types.dart';
1110

1211
/// The interface that implementations of in_app_purchase must implement.
@@ -22,10 +21,18 @@ abstract class InAppPurchasePlatform extends PlatformInterface {
2221

2322
static final Object _token = Object();
2423

25-
static InAppPurchasePlatform _instance = NoopInAppPurchase();
24+
static InAppPurchasePlatform? _instance;
2625

2726
/// The default instance of [InAppPurchasePlatform] to use.
28-
static InAppPurchasePlatform get instance => _instance;
27+
static InAppPurchasePlatform get instance {
28+
final InAppPurchasePlatform? platform = _instance;
29+
if (platform == null) {
30+
throw UnimplementedError(
31+
'No platform specific implementation set. Please make sure you set the `instance` with a valid platform specific implementation of the `InAppPurchasePlatform` class.');
32+
}
33+
34+
return platform;
35+
}
2936

3037
/// Platform-specific plugins should set this with their own platform-specific
3138
/// class that extends [InAppPurchasePlatform] when they register themselves.

packages/in_app_purchase/in_app_purchase_platform_interface/lib/src/noop_in_app_purchase.dart

-10
This file was deleted.

packages/in_app_purchase/in_app_purchase_platform_interface/test/in_app_purchase_platform_test.dart

+2-3
Original file line numberDiff line numberDiff line change
@@ -4,16 +4,15 @@
44

55
import 'package:flutter_test/flutter_test.dart';
66
import 'package:in_app_purchase_platform_interface/in_app_purchase_platform_interface.dart';
7-
import 'package:in_app_purchase_platform_interface/src/noop_in_app_purchase.dart';
87
import 'package:mockito/mockito.dart';
98
import 'package:plugin_platform_interface/plugin_platform_interface.dart';
109

1110
void main() {
1211
TestWidgetsFlutterBinding.ensureInitialized();
1312

1413
group('$InAppPurchasePlatform', () {
15-
test('$NoopInAppPurchase is the default instance', () {
16-
expect(InAppPurchasePlatform.instance, isA<NoopInAppPurchase>());
14+
test('default instance is null and throws unimplemented exception', () {
15+
expect(() => InAppPurchasePlatform.instance, throwsUnimplementedError);
1716
});
1817

1918
test('Cannot be implemented with `implements`', () {

0 commit comments

Comments
 (0)