2
Purchases.Subscriptions.getリソースを取得するためにAndroidPublisher APIにリクエストするクラスがあります。どのようにしてOAuthリクエストを模擬し、com.google.api.client.testingパッケージのクラスを使用してサブスクリプションリソースを取得するのですか?ここでGoogle API AndroidPublisherリクエストの模擬方法
は、サブスクリプションを取得するためのコードである:ここでは
HttpTransport httpTransport = new NetHttpTransport.Builder().build();
JsonFactory jsonFactory = JacksonFactory.getDefaultInstance();
GoogleCredential credential = new GoogleCredential.Builder()
.setTransport(httpTransport)
.setJsonFactory(jsonFactory)
.setServiceAccountId("email")
.setServiceAccountScopes(singleton(AndroidPublisherScopes.ANDROIDPUBLISHER))
.setServiceAccountPrivateKeyFromP12File(new File("file.p12"))
.build();
AndroidPublisher androidPublisher = new AndroidPublisher.Builder(httpTransport, jsonFactory, credential)
.setApplicationName("appname")
.build();
AndroidPublisher.Purchases.Subscriptions.Get get = androidPublisher.purchases().subscriptions().get(
"appname",
"productId",
"purchaseToken");
SubscriptionPurchase subscription = get.execute();
System.out.println(subscription.toPrettyString());
はJSONレスポンスをモックしようとすると、失敗した私は現在、午前方法ですが、:
MockLowLevelHttpResponse mockResponse = new MockLowLevelHttpResponse();
mockResponse.setStatusCode(200);
mockResponse.setContentType(Json.MEDIA_TYPE);
mockResponse.setContent("{\n" +
" \"autoRenewing\" : true,\n" +
" \"countryCode\" : \"US\",\n" +
" \"developerPayload\" : \"\",\n" +
" \"expiryTimeMillis\" : \"1480019001357\",\n" +
" \"kind\" : \"androidpublisher#subscriptionPurchase\",\n" +
" \"paymentState\" : 1,\n" +
" \"priceAmountMicros\" : \"990000\",\n" +
" \"priceCurrencyCode\" : \"USD\",\n" +
" \"startTimeMillis\" : \"\"\n" +
"}");
return new MockHttpTransport.Builder().setLowLevelHttpResponse(mockResponse).build();
私がテストを実行しますモッククラスでは、次のスタックトレースを取得します。
java.lang.IllegalArgumentException: no JSON input found
at com.google.api.client.repackaged.com.google.common.base.Preconditions.checkArgument(Preconditions.java:125)
at com.google.api.client.util.Preconditions.checkArgument(Preconditions.java:49)
at com.google.api.client.json.JsonParser.startParsing(JsonParser.java:223)
at com.google.api.client.json.JsonParser.parse(JsonParser.java:380)
at com.google.api.client.json.JsonParser.parse(JsonParser.java:355)
at com.google.api.client.json.JsonObjectParser.parseAndClose(JsonObjectParser.java:87)
at com.google.api.client.json.JsonObjectParser.parseAndClose(JsonObjectParser.java:81)
at com.google.api.client.http.HttpResponse.parseAs(HttpResponse.java:459)
at com.google.api.client.googleapis.services.AbstractGoogleClientRequest.execute(AbstractGoogleClientRequest.java:469)
私は何が欠けていますか?サブスクリプションを取得するための呼び出しと同様に、OAuth2応答をどのように模擬しますか?