ApiErrorExtractor { public boolean accessDeniedNonRecoverable(IOException e) { ErrorInfo errorInfo = getErrorInfo(e); String reason = errorInfo != null ? errorInfo.getReason() : null; return ACCOUNT_DISABLED_REASON.equals(reason) || ACCESS_NOT_CONFIGURED_REASON.equals(reason); }  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 accessDeniedNonRecoverable_GoogleJsonErrorWithAccountDisabledReturnTrue() throws IOException { IOException withJsonError = googleJsonResponseException( HttpStatusCodes.STATUS_CODE_FORBIDDEN, ApiErrorExtractor.ACCOUNT_DISABLED_REASON, "Forbidden", "Forbidden"); assertThat(errorExtractor.accessDeniedNonRecoverable(withJsonError)).isTrue(); }
@Test public void accessDeniedNonRecoverable_GoogleJsonErrorWithAccessNotConfiguredReturnTrue() throws IOException { IOException withJsonError = googleJsonResponseException( HttpStatusCodes.STATUS_CODE_FORBIDDEN, ApiErrorExtractor.ACCESS_NOT_CONFIGURED_REASON, "Forbidden", "Forbidden"); assertThat(errorExtractor.accessDeniedNonRecoverable(withJsonError)).isTrue(); }
@Test public void accessDeniedNonRecoverable_GoogleJsonErrorWithStatusOkReturnFalse() { assertThat(errorExtractor.accessDeniedNonRecoverable(statusOk)).isFalse(); }
@Test public void accessDeniedNonRecoverable_GoogleJsonErrorAsNullReturnFalse() { assertThat(errorExtractor.accessDeniedNonRecoverable(null)).isFalse(); }