### Question:
BillingSupportedRequest extends Request<Object> { @Nullable @Override protected String getCacheKey() { if (mExtraParams != null) { return null; } if (mApiVersion == Billing.V3) { return mProduct; } return mProduct + "_" + mApiVersion; } BillingSupportedRequest(@Nonnull String product);   BillingSupportedRequest(@Nonnull String product, int apiVersion, @Nullable Bundle extraParams); @Override void start(@Nonnull IInAppBillingService service, @Nonnull String packageName);  }### Answer:
@Test public void testShouldHaveDifferentCacheKeys() throws Exception { final BillingSupportedRequest r1 = newRequest("test1"); final BillingSupportedRequest r2 = newRequest("test2"); assertNotEquals(r1.getCacheKey(), r2.getCacheKey()); }
@Test public void testShouldNotBeCachedWithExtraParams() throws Exception { final BillingSupportedRequest request = new BillingSupportedRequest("test", Billing.V7, new Bundle()); assertNull(request.getCacheKey()); }