From ed76cdbddf4fc337fedec1f896b7e684e02beeaa Mon Sep 17 00:00:00 2001 From: MerkushevKirill Date: Thu, 11 Jun 2015 14:49:26 +0300 Subject: [PATCH] fix for GH Enterprise which does not have rate limit reset field Fixes regression from a4c1c8de24f7f1ab38b28e5e6f19cc46a5993d5d --- src/main/java/org/kohsuke/github/GitHub.java | 2 ++ .../java/org/kohsuke/github/GitHubTest.java | 30 ++++++++++++++----- 2 files changed, 24 insertions(+), 8 deletions(-) diff --git a/src/main/java/org/kohsuke/github/GitHub.java b/src/main/java/org/kohsuke/github/GitHub.java index d196481bc2..d3853380e8 100644 --- a/src/main/java/org/kohsuke/github/GitHub.java +++ b/src/main/java/org/kohsuke/github/GitHub.java @@ -45,6 +45,7 @@ import java.util.Map; import java.util.Set; import java.util.TimeZone; +import java.util.concurrent.TimeUnit; import org.apache.commons.codec.binary.Base64; @@ -248,6 +249,7 @@ public GHRateLimit getRateLimit() throws IOException { // see issue #78 GHRateLimit r = new GHRateLimit(); r.limit = r.remaining = 1000000; + r.reset = new Date(System.currentTimeMillis() + TimeUnit.HOURS.toMillis(1)); return r; } } diff --git a/src/test/java/org/kohsuke/github/GitHubTest.java b/src/test/java/org/kohsuke/github/GitHubTest.java index 578bbc13f3..54ce6e35d7 100644 --- a/src/test/java/org/kohsuke/github/GitHubTest.java +++ b/src/test/java/org/kohsuke/github/GitHubTest.java @@ -1,34 +1,40 @@ package org.kohsuke.github; +import java.io.FileNotFoundException; import java.io.IOException; import java.lang.reflect.Field; import java.util.Collections; import java.util.HashMap; import java.util.Map; -import java.util.Properties; -import junit.framework.TestCase; +import org.junit.Test; + +import static org.hamcrest.CoreMatchers.notNullValue; +import static org.hamcrest.MatcherAssert.assertThat; +import static org.junit.Assert.assertEquals; +import static org.mockito.Mockito.spy; +import static org.mockito.Mockito.when; /** * Unit test for {@link GitHub}. */ -public class GitHubTest extends TestCase { - +public class GitHubTest { + @Test public void testGitHubServerWithHttp() throws Exception { GitHub hub = GitHub.connectToEnterprise("http://enterprise.kohsuke.org/api/v3", "bogus","bogus"); assertEquals("http://enterprise.kohsuke.org/api/v3/test", hub.getApiURL("/test").toString()); } - + @Test public void testGitHubServerWithHttps() throws Exception { GitHub hub = GitHub.connectToEnterprise("https://enterprise.kohsuke.org/api/v3", "bogus","bogus"); assertEquals("https://enterprise.kohsuke.org/api/v3/test", hub.getApiURL("/test").toString()); } - + @Test public void testGitHubServerWithoutServer() throws Exception { GitHub hub = GitHub.connectUsingPassword("kohsuke", "bogus"); assertEquals("https://api.github.com/test", hub.getApiURL("/test").toString()); } - + @Test public void testGitHubBuilderFromEnvironment() throws IOException { Mapprops = new HashMap(); @@ -86,7 +92,7 @@ private void setupEnvironment(Map newenv) { e1.printStackTrace(); } } - + @Test public void testGitHubBuilderFromCustomEnvironment() throws IOException { Map props = new HashMap(); @@ -105,4 +111,12 @@ public void testGitHubBuilderFromCustomEnvironment() throws IOException { assertEquals("bogusEndpoint", builder.endpoint); } + @Test + public void testGitHubEnterpriseDoesNotHaveRateLimit() throws IOException { + GitHub github = spy(new GitHubBuilder().build()); + when(github.retrieve()).thenThrow(FileNotFoundException.class); + + GHRateLimit rateLimit = github.getRateLimit(); + assertThat(rateLimit.getResetDate(), notNullValue()); + } }