ApiErrorExtractor { public boolean userProjectMissing(IOException e) { GoogleJsonError jsonError = getJsonError(e); return jsonError != null && jsonError.getCode() == HttpStatusCodes.STATUS_CODE_BAD_REQUEST && USER_PROJECT_MISSING_MESSAGE.equals(jsonError.getMessage()); }  boolean requestFailure(IOException e); boolean accessDenied(IOException e); boolean badRequest(IOException e); boolean unauthorized(IOException e); boolean accessDeniedNonRecoverable(IOException e); boolean clientError(IOException e); boolean internalServerError(IOException e); boolean itemAlreadyExists(IOException e); boolean itemNotFound(IOException e); boolean fieldSizeTooLarge(IOException e); boolean resourceNotReady(IOException e); boolean preconditionNotMet(IOException e); boolean rangeNotSatisfiable(IOException e); boolean rateLimited(IOException e); boolean quotaExceeded(IOException e); boolean userProjectMissing(IOException e); boolean ioError(Throwable throwable); boolean socketError(Throwable throwable); boolean readTimedOut(IOException e); String getErrorMessage(IOException e); IOException toUserPresentableException(IOException e, String action); String toUserPresentableMessage(IOException e, @Nullable String action); String toUserPresentableMessage(IOException e); @Nullable String getDebugInfo(IOException e); @Nullable static GoogleJsonResponseException getJsonResponseException(Throwable throwable); static final ApiErrorExtractor INSTANCE; static final int STATUS_CODE_RANGE_NOT_SATISFIABLE; static final String GLOBAL_DOMAIN; static final String USAGE_LIMITS_DOMAIN; static final String RATE_LIMITED_REASON; static final String USER_RATE_LIMITED_REASON; static final String QUOTA_EXCEEDED_REASON; static final String ACCOUNT_DISABLED_REASON; static final String ACCESS_NOT_CONFIGURED_REASON; static final String RESOURCE_NOT_READY_REASON; static final String FIELD_SIZE_TOO_LARGE_REASON; static final String USER_PROJECT_MISSING_MESSAGE; }
@Test public void userProjectMissing_GoogleJsonErrorAsNullReturnFalse() throws IOException { IOException withJsonError = googleJsonResponseException( HttpStatusCodes.STATUS_CODE_BAD_REQUEST, "preconditionNotMet", "Precondition not met", "Precondition not met"); assertThat(errorExtractor.userProjectMissing(withJsonError)).isFalse(); }
@Test public void userProjectMissing_GoogleJsonErrorWithStatusOkReturnFalse() throws IOException { IOException nullJsonError = googleJsonResponseException( 42, null, null, null); assertThat(errorExtractor.userProjectMissing(nullJsonError)).isFalse(); }