package com.anjlab.android.iab.v3;
import android.os.Parcel;
import org.junit.Test;
import static junit.framework.Assert.assertEquals;
import static junit.framework.Assert.assertNotNull;
public class TransactionDetailsParcelableTest
{
@Test
public void testParcelable() throws Exception
{
String purchaseInfoJson =
"{\"orderId\": \"GPA.1234-5678-9012-34567\",\"packageName\": \"com.example.app\"," +
"\"productId\": \"exampleSku\",\"purchaseTime\": 1345678900000,\"purchaseState\": 0," +
"\"developerPayload\": \"bGoa+V7g/yqDXvKRqq+JTFn4uQZbPiQJo4pf9RzJ\"," +
"\"purchaseToken\": \"opaque-token-up-to-1000-characters\"}";
PurchaseInfo purchaseInfo = new PurchaseInfo(purchaseInfoJson, "signature");
TransactionDetails details = new TransactionDetails(purchaseInfo);
Parcel parcel = Parcel.obtain();
details.writeToParcel(parcel, 0);
parcel.setDataPosition(0);
TransactionDetails result = TransactionDetails.CREATOR.createFromParcel(parcel);
assertEquals(details.productId, result.productId);
assertEquals(details.orderId, result.orderId);
assertEquals(details.purchaseToken, result.purchaseToken);
assertEquals(details.purchaseTime, result.purchaseTime);
// Only check that purchase info is not null, we check it's parcel implementationin it's own tests
assertNotNull(result.purchaseInfo);
}
}