java.lang.Object
org.kohsuke.github.AbstractGitHubWireMockTest
org.kohsuke.github.GHRateLimitTest
Test showing the behavior of OkHttpGitHubConnector 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 git hub enterprise does not have rate limit.void
Test git hub rate limit.void
Test git hub rate limit expiration server five minutes ahead.void
Test git hub rate limit expiration server five minutes behind.void
Test git hub rate limit with bad data.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
-
GHRateLimitTest
public GHRateLimitTest()Instantiates a new GH rate limit 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
-
testGitHubRateLimit
Test git hub rate limit.- Throws:
Exception
- the exception
-
testGitHubEnterpriseDoesNotHaveRateLimit
Test git hub enterprise does not have rate limit.- Throws:
Exception
- the exception
-
testGitHubRateLimitWithBadData
Test git hub rate limit with bad data.- Throws:
Exception
- the exception
-
testGitHubRateLimitExpirationServerFiveMinutesAhead
Test git hub rate limit expiration server five minutes ahead.- Throws:
Exception
- the exception
-
testGitHubRateLimitExpirationServerFiveMinutesBehind
Test git hub rate limit expiration server five minutes behind.- Throws:
Exception
- the exception
-