Skip to content

Commit

Permalink
Change tests to also check for the new subscription attributes
Browse files Browse the repository at this point in the history
  • Loading branch information
alessandrojp committed Sep 4, 2017
1 parent b0d148b commit 41aad4d
Show file tree
Hide file tree
Showing 4 changed files with 55 additions and 12 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -216,7 +216,7 @@ private void getItemDetails(final PurchaseType type) throws InterruptedException
ArrayList<String> itemIds = new ArrayList<>();
itemIds.add(DataConverter.TEST_PRODUCT_ID);

ArrayList<String> items = mDataConverter.convertToSkuItemDetailsJsonArrayList(size);
ArrayList<String> items = mDataConverter.convertToSkuItemDetailsJsonArrayList(size, type);
Bundle responseBundle = new Bundle();
responseBundle.putLong(Constants.RESPONSE_CODE, 0L);
responseBundle.putStringArrayList(Constants.RESPONSE_DETAILS_LIST, items);
Expand All @@ -233,8 +233,7 @@ public void onSuccess(ItemDetails itemDetails) {

List<Item> purchaseList = itemDetails.getAll();
for (Item item : purchaseList) {
assertThat(itemDetails.hasItemId(item.getSku())).isTrue();
assertThat(itemDetails.getByItemId(item.getSku())).isNotNull();
checkGetItemDetailsCallback(itemDetails, item, type);
}
mProcessor.release();
latch.countDown();
Expand Down Expand Up @@ -283,4 +282,25 @@ public void onError(BillingException e) {

latch.await(15, TimeUnit.SECONDS);
}

private void checkGetItemDetailsCallback(ItemDetails itemDetails, Item item, PurchaseType type) {
assertThat(itemDetails.hasItemId(item.getSku())).isTrue();
assertThat(itemDetails.getByItemId(item.getSku())).isNotNull();

if (type == PurchaseType.IN_APP) {
assertThat(itemDetails.getByItemId(item.getSku()).getSubscriptionPeriod()).isEmpty();
assertThat(itemDetails.getByItemId(item.getSku()).getFreeTrialPeriod()).isEmpty();
assertThat(itemDetails.getByItemId(item.getSku()).getIntroductoryPrice()).isEmpty();
assertThat(itemDetails.getByItemId(item.getSku()).getIntroductoryPriceAmountMicros()).isZero();
assertThat(itemDetails.getByItemId(item.getSku()).getIntroductoryPricePeriod()).isEmpty();
assertThat(itemDetails.getByItemId(item.getSku()).getIntroductoryPriceCycles()).isZero();
} else {
assertThat(itemDetails.getByItemId(item.getSku()).getSubscriptionPeriod()).isNotEmpty();
assertThat(itemDetails.getByItemId(item.getSku()).getFreeTrialPeriod()).isNotEmpty();
assertThat(itemDetails.getByItemId(item.getSku()).getIntroductoryPrice()).isNotEmpty();
assertThat(itemDetails.getByItemId(item.getSku()).getIntroductoryPriceAmountMicros()).isNotZero();
assertThat(itemDetails.getByItemId(item.getSku()).getIntroductoryPricePeriod()).isNotEmpty();
assertThat(itemDetails.getByItemId(item.getSku()).getIntroductoryPriceCycles()).isNotZero();
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -103,7 +103,7 @@ public void remoteException() throws RemoteException {
public void get20ItemDetails() throws RemoteException, BillingException {
int size = 20;
ArrayList<String> itemIds = mDataConverter.convertToItemIdArrayList(size);
ArrayList<String> items = mDataConverter.convertToSkuItemDetailsJsonArrayList(size);
ArrayList<String> items = mDataConverter.convertToSkuItemDetailsJsonArrayList(size, PurchaseType.IN_APP);
Bundle responseBundle = new Bundle();
responseBundle.putLong(Constants.RESPONSE_CODE, 0L);
responseBundle.putStringArrayList(Constants.RESPONSE_DETAILS_LIST, items);
Expand Down Expand Up @@ -141,7 +141,7 @@ public void get20ItemDetails() throws RemoteException, BillingException {
public void get70ItemDetails() throws RemoteException, BillingException {
int size = 70;
ArrayList<String> itemIds = mDataConverter.convertToItemIdArrayList(size);
ArrayList<String> items = mDataConverter.convertToSkuItemDetailsJsonArrayList(size);
ArrayList<String> items = mDataConverter.convertToSkuItemDetailsJsonArrayList(size, PurchaseType.IN_APP);
List<Bundle> splitBundleList = new ArrayList<>();

for (int i = 0; i < itemIds.size(); i += ItemGetter.MAX_SKU_PER_REQUEST) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,7 @@ public class ItemParcelableTest {

@Test
public void writeToParcel() throws JSONException {
Item item = Item.parseJson(String.format(Locale.ENGLISH, DataConverter.SKU_DETAIL_JSON, 0));
Item item = Item.parseJson(String.format(Locale.ENGLISH, DataConverter.SKU_SUBSCRIPTION_DETAILS_JSON, 0));

// Obtain a Parcel object and write the parcelable object to it
Parcel parcel = Parcel.obtain();
Expand All @@ -61,6 +61,12 @@ public void writeToParcel() throws JSONException {
assertThat(item.getCurrency()).isEqualTo(fromParcel.getCurrency());
assertThat(item.getPrice()).isEqualTo(fromParcel.getPrice());
assertThat(item.getPriceMicros()).isEqualTo(fromParcel.getPriceMicros());
assertThat(item.getSubscriptionPeriod()).isEqualTo(fromParcel.getSubscriptionPeriod());
assertThat(item.getFreeTrialPeriod()).isEqualTo(fromParcel.getFreeTrialPeriod());
assertThat(item.getIntroductoryPrice()).isEqualTo(fromParcel.getIntroductoryPrice());
assertThat(item.getIntroductoryPriceAmountMicros()).isEqualTo(fromParcel.getIntroductoryPriceAmountMicros());
assertThat(item.getIntroductoryPricePeriod()).isEqualTo(fromParcel.getIntroductoryPricePeriod());
assertThat(item.getIntroductoryPriceCycles()).isEqualTo(fromParcel.getIntroductoryPriceCycles());
}

@Test
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,7 @@
import jp.alessandro.android.iab.BillingApi;
import jp.alessandro.android.iab.BillingContext;
import jp.alessandro.android.iab.Constants;
import jp.alessandro.android.iab.PurchaseType;

/**
* Created by Alessandro Yuichi Okimoto on 2017/02/26.
Expand Down Expand Up @@ -76,15 +77,30 @@ public class DataConverter {

public static final String TEST_JSON_BROKEN = "{\"productId\":\"\"";

public static final String SKU_DETAIL_JSON = "{" +
public static final String SKU_DETAILS_JSON = "{" +
"\"productId\": \"" + TEST_PRODUCT_ID + "_%d\"," +
"\"type\": \"subs\"," +
"\"type\": \"inapp\"," +
"\"price\": \"¥1080\"," +
"\"price_amount_micros\": \"10800000\"," +
"\"price_currency_code\": \"JPY\"," +
"\"title\": \"Test Product\"," +
"\"description\": \"Fast and easy use Android In-App Billing\"}";

public static final String SKU_SUBSCRIPTION_DETAILS_JSON = "{" +
"\"productId\": \"" + TEST_PRODUCT_ID + "_%d\"," +
"\"type\": \"subs\"," +
"\"price\": \"¥1080\"," +
"\"price_amount_micros\": \"10800000\"," +
"\"price_currency_code\": \"JPY\"," +
"\"title\": \"Test Product\"," +
"\"description\": \"Fast and easy use Android In-App Billing\"," +
"\"subscriptionPeriod\": \"P1M\"," +
"\"freeTrialPeriod\": \"P7D\"," +
"\"introductoryPrice\": \"¥1080\"," +
"\"introductoryPriceAmountMicros\": \"10800000\"," +
"\"introductoryPricePeriod\": \"P1M\"," +
"\"introductoryPriceCycles\": 3}";

private final DataSigner mDataSigner;

private String mKeyFactoryAlgorithm;
Expand Down Expand Up @@ -204,20 +220,21 @@ public ArrayList<String> convertToPurchaseJsonBrokenArrayList() {
return data;
}

public ArrayList<String> convertToSkuItemDetailsJsonArrayList(int size) {
public ArrayList<String> convertToSkuItemDetailsJsonArrayList(int size, PurchaseType type) {
ArrayList<String> purchases = new ArrayList<>();
for (int i = 0; i < size; i++) {
String json = String.format(Locale.ENGLISH, SKU_DETAIL_JSON, i);
String targetSku = type == PurchaseType.IN_APP ? SKU_DETAILS_JSON : SKU_SUBSCRIPTION_DETAILS_JSON;
String json = String.format(Locale.ENGLISH, targetSku, i);
purchases.add(json);
}
return purchases;
}

public ArrayList<String> convertToSkuDetailsJsonBrokenArrayList() {
ArrayList<String> data = new ArrayList<>();
data.add(String.format(Locale.ENGLISH, SKU_DETAIL_JSON, 0));
data.add(String.format(Locale.ENGLISH, SKU_DETAILS_JSON, 0));
data.add(TEST_JSON_BROKEN);
data.add(String.format(Locale.ENGLISH, SKU_DETAIL_JSON, 2));
data.add(String.format(Locale.ENGLISH, SKU_DETAILS_JSON, 2));
return data;
}

Expand Down

0 comments on commit 41aad4d

Please sign in to comment.