Professional Documents
Culture Documents
import 'package:in_app_purchase/src/in_app_purchase/purchase_details.dart';
import 'package:test/test.dart';
import 'package:in_app_purchase/src/store_kit_wrappers/sk_product_wrapper.dart';
import 'package:in_app_purchase/src/in_app_purchase/in_app_purchase_connection.d
art';
import 'package:in_app_purchase/src/in_app_purchase/product_details.dart';
import 'package:in_app_purchase/store_kit_wrappers.dart';
import 'sk_test_stub_objects.dart';
void main() {
group('product related object wrapper test', () {
test(
'SKProductSubscriptionPeriodWrapper should have property values consiste
nt with map',
() {
final SKProductSubscriptionPeriodWrapper wrapper =
SKProductSubscriptionPeriodWrapper.fromJson(
buildSubscriptionPeriodMap(dummySubscription));
expect(wrapper, equals(dummySubscription));
});
test(
'SKProductSubscriptionPeriodWrapper should have properties to be null if
map is empty',
() {
final SKProductSubscriptionPeriodWrapper wrapper =
SKProductSubscriptionPeriodWrapper.fromJson(<String, dynamic>{});
expect(wrapper.numberOfUnits, null);
expect(wrapper.unit, null);
});
test(
'SKProductDiscountWrapper should have property values consistent with ma
p',
() {
final SKProductDiscountWrapper wrapper =
SKProductDiscountWrapper.fromJson(buildDiscountMap(dummyDiscount));
expect(wrapper, equals(dummyDiscount));
});
test(
'SKProductDiscountWrapper should have properties to be null if map is em
pty',
() {
final SKProductDiscountWrapper wrapper =
SKProductDiscountWrapper.fromJson(<String, dynamic>{});
expect(wrapper.price, null);
expect(wrapper.priceLocale, null);
expect(wrapper.numberOfPeriods, null);
expect(wrapper.paymentMode, null);
expect(wrapper.subscriptionPeriod, null);
});
test('SKProductWrapper should have property values consistent with map',
() {
final SKProductWrapper wrapper =
SKProductWrapper.fromJson(buildProductMap(dummyProductWrapper));
expect(wrapper, equals(dummyProductWrapper));
});
expect(map['requestData'], dummyPayment.requestData);
expect(map['quantity'], dummyPayment.quantity);
expect(map['simulatesAskToBuyInSandbox'],
dummyPayment.simulatesAskToBuyInSandbox);
});
});
}