java.lang.Object
org.kohsuke.github.AbstractGitHubWireMockTest
org.kohsuke.github.AbuseLimitHandlerTest
Test showing the behavior of OkHttpConnector with and without cache.
Key take aways:
- These tests are artificial and intended to highlight the differences in behavior between scenarios. However, the differences they indicate are stark.
- Caching reduces rate limit consumption by at least a factor of two in even the simplest case.
- The OkHttp cache is pretty smart and will often connect read and write requests made on the same client and invalidate caches.
- Changes made outside the current client cause the OkHttp cache to return stale data. This is expected and correct behavior.
- "max-age=0" addresses the problem of external changes by revalidating caches for each request. This produces the same number of requests as OkHttp without caching, but those requests only count towards the GitHub rate limit if data has changes.
- Author:
- Liam Newman
-
Nested Class Summary
Nested classes/interfaces inherited from class org.kohsuke.github.AbstractGitHubWireMockTest
AbstractGitHubWireMockTest.TemplatingHelper
-
Field Summary
Fields inherited from class org.kohsuke.github.AbstractGitHubWireMockTest
baseFilesClassPath, baseRecordPath, gitHub, mockGitHub, tempGitHubRepositories, templating, useDefaultGitHub
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionprotected com.github.tomakehurst.wiremock.core.WireMockConfiguration
Gets the wire mock options.void
Test handler fail.void
Test handler http status fail.void
Test handler wait.void
Tests the behavior of the GitHub API client when the abuse limit handler is set to WAIT then the handler waits appropriately when secondary rate limits are encountered.void
Tests the behavior of the GitHub API client when the abuse limit handler is set to WAIT then the handler waits appropriately when secondary rate limits are encountered.void
Tests the behavior of the GitHub API client when the abuse limit handler with a date retry.void
Tests the behavior of the GitHub API client when the abuse limit handler with a no retry after header.void
Test handler wait stuck.Methods inherited from class org.kohsuke.github.AbstractGitHubWireMockTest
assertThat, assertThat, assertThat, cleanupRepository, cleanupTempRepositories, fail, fail, getGitHubBuilder, getNonRecordingGitHub, getTempRepository, getTempRepository, getUser, getUser, kohsuke, requireProxy, snapshotNotAllowed, verifyAuthenticated, wireMockSetup
-
Constructor Details
-
AbuseLimitHandlerTest
public AbuseLimitHandlerTest()Instantiates a new abuse limit handler test.
-
-
Method Details
-
getWireMockOptions
protected com.github.tomakehurst.wiremock.core.WireMockConfiguration getWireMockOptions()Gets the wire mock options.- Overrides:
getWireMockOptions
in classAbstractGitHubWireMockTest
- Returns:
- the wire mock options
-
testHandler_Fail
Test handler fail.- Throws:
Exception
- the exception
-
testHandler_HttpStatus_Fail
Test handler http status fail.- Throws:
Exception
- the exception
-
testHandler_Wait
Test handler wait.- Throws:
Exception
- the exception
-
testHandler_WaitStuck
Test handler wait stuck.- Throws:
Exception
- the exception
-
testHandler_Wait_Secondary_Limits
Tests the behavior of the GitHub API client when the abuse limit handler is set to WAIT then the handler waits appropriately when secondary rate limits are encountered.- Throws:
Exception
- if any error occurs during the test execution.
-
testHandler_Wait_Secondary_Limits_Too_Many_Requests
Tests the behavior of the GitHub API client when the abuse limit handler is set to WAIT then the handler waits appropriately when secondary rate limits are encountered.- Throws:
Exception
- if any error occurs during the test execution.
-
testHandler_Wait_Secondary_Limits_Too_Many_Requests_Date_Retry_After
Tests the behavior of the GitHub API client when the abuse limit handler with a date retry.- Throws:
Exception
- if any error occurs during the test execution.
-
testHandler_Wait_Secondary_Limits_Too_Many_Requests_No_Retry_After
Tests the behavior of the GitHub API client when the abuse limit handler with a no retry after header.- Throws:
Exception
- if any error occurs during the test execution.
-