From 85a09f7392c50531365e89e94766a9caf3cac0f1 Mon Sep 17 00:00:00 2001 From: Maxim Epishchev Date: Thu, 4 Feb 2016 11:54:42 +0300 Subject: Remove overqualified using of Class as HttpClient interceptor Constructor of ApiClient now using just T type to make possible using of HttpClient interceptor in tests. --- .../bitbucketpullrequestbuilder/BitbucketRepository.java | 4 ++-- .../bitbucketpullrequestbuilder/bitbucket/ApiClient.java | 15 +++------------ src/test/java/BitbucketBuildRepositoryTest.java | 16 ++++++++++------ 3 files changed, 15 insertions(+), 20 deletions(-) (limited to 'src') diff --git a/src/main/java/bitbucketpullrequestbuilder/bitbucketpullrequestbuilder/BitbucketRepository.java b/src/main/java/bitbucketpullrequestbuilder/bitbucketpullrequestbuilder/BitbucketRepository.java index 3bc3928..9b92775 100644 --- a/src/main/java/bitbucketpullrequestbuilder/bitbucketpullrequestbuilder/BitbucketRepository.java +++ b/src/main/java/bitbucketpullrequestbuilder/bitbucketpullrequestbuilder/BitbucketRepository.java @@ -54,7 +54,7 @@ public class BitbucketRepository { this.init(null, null); } - public void init(Class httpFactory) { + public void init(T httpFactory) { this.init(null, httpFactory); } @@ -62,7 +62,7 @@ public class BitbucketRepository { this.init(client, null); } - public void init(ApiClient client, Class httpFactory) { + public void init(ApiClient client, T httpFactory) { this.trigger = this.builder.getTrigger(); if (client == null) { diff --git a/src/main/java/bitbucketpullrequestbuilder/bitbucketpullrequestbuilder/bitbucket/ApiClient.java b/src/main/java/bitbucketpullrequestbuilder/bitbucketpullrequestbuilder/bitbucket/ApiClient.java index 047bf5a..19bff34 100644 --- a/src/main/java/bitbucketpullrequestbuilder/bitbucketpullrequestbuilder/bitbucket/ApiClient.java +++ b/src/main/java/bitbucketpullrequestbuilder/bitbucketpullrequestbuilder/bitbucket/ApiClient.java @@ -71,23 +71,14 @@ public class ApiClient { String username, String password, String owner, String repositoryName, String key, String name, - Class httpFactory + T httpFactory ) { this.credentials = new UsernamePasswordCredentials(username, password); this.owner = owner; this.repositoryName = repositoryName; this.key = key; - this.name = name; - - try { - this.factory = (httpFactory != null) ? httpFactory.newInstance() : HttpClientFactory.INSTANCE; - } catch(InstantiationException e) { - logger.log(Level.WARNING, "failed new instance of {0}: {1} ", new Object[] { httpFactory.getName(), e }); - e.printStackTrace(); - } catch (IllegalAccessException e) { - logger.log(Level.WARNING, "failed new instance of {0}: {1} ", new Object[] { httpFactory.getName(), e }); - e.printStackTrace(); - } + this.name = name; + this.factory = httpFactory != null ? httpFactory : HttpClientFactory.INSTANCE; } public List getPullRequests() { diff --git a/src/test/java/BitbucketBuildRepositoryTest.java b/src/test/java/BitbucketBuildRepositoryTest.java index 5f1aca2..953bd81 100644 --- a/src/test/java/BitbucketBuildRepositoryTest.java +++ b/src/test/java/BitbucketBuildRepositoryTest.java @@ -20,6 +20,7 @@ import java.security.MessageDigest; import java.security.NoSuchAlgorithmException; import java.util.Arrays; import java.util.Collection; +import java.util.logging.Logger; import org.easymock.*; import org.junit.Test; import static org.junit.Assert.*; @@ -47,6 +48,7 @@ interface ICredentialsInterceptor { * @param */ class HttpClientInterceptor extends HttpClient { + private static final Logger logger = Logger.getLogger(HttpClientInterceptor.class.getName()); class CredentialsInterceptor extends HttpState { private final T interceptor; @@ -54,6 +56,7 @@ class HttpClientInterceptor extends HttpClien @Override public synchronized void setCredentials(AuthScope authscope, Credentials credentials) { + logger.info("Inject setCredentials"); super.setCredentials(authscope, credentials); this.interceptor.assertCredentials(credentials); throw new AssertionError(); @@ -73,10 +76,13 @@ class HttpClientInterceptor extends HttpClien * @author maxvodo */ class AssertCredentials implements ICredentialsInterceptor { + private static final Logger logger = Logger.getLogger(AssertCredentials.class.getName()); + private final Credentials expected; public AssertCredentials(Credentials expected) { this.expected = expected; } public void assertCredentials(Credentials actual) { + logger.info("Assert credential"); if (actual == null) assertTrue(this.expected == null); else assertTrue(this.expected != null); @@ -119,14 +125,14 @@ public class BitbucketBuildRepositoryTest { EasyMock.expect(builder.getTrigger()).andReturn(trigger).anyTimes(); EasyMock.replay(builder); - ApiClient.HttpClientFactory httpFactory = EasyMock.createMock(ApiClient.HttpClientFactory.class); + ApiClient.HttpClientFactory httpFactory = EasyMock.createNiceMock(ApiClient.HttpClientFactory.class); EasyMock.expect(httpFactory.getInstanceHttpClient()).andReturn( new HttpClientInterceptor(new AssertCredentials(new UsernamePasswordCredentials("foo", "bar"))) ).anyTimes(); EasyMock.replay(httpFactory); BitbucketRepository repo = new BitbucketRepository("", builder); - repo.init(httpFactory.getClass()); + repo.init(httpFactory); try { repo.postPullRequestApproval("prId"); } catch(Error e) { assertTrue(e instanceof AssertionError); } } @@ -155,14 +161,14 @@ public class BitbucketBuildRepositoryTest { CredentialsScope.GLOBAL, "JenkinsCID", "description", "username", "password" )); - ApiClient.HttpClientFactory httpFactory = EasyMock.createMock(ApiClient.HttpClientFactory.class); + ApiClient.HttpClientFactory httpFactory = EasyMock.createNiceMock(ApiClient.HttpClientFactory.class); EasyMock.expect(httpFactory.getInstanceHttpClient()).andReturn( new HttpClientInterceptor(new AssertCredentials(new UsernamePasswordCredentials("username", "password"))) ).anyTimes(); EasyMock.replay(httpFactory); BitbucketRepository repo = new BitbucketRepository("", builder); - repo.init(httpFactory.getClass()); + repo.init(httpFactory); try { repo.postPullRequestApproval("prId"); } catch(Error e) { assertTrue(e instanceof AssertionError); } } @@ -186,7 +192,6 @@ public class BitbucketBuildRepositoryTest { } @Test - @WithoutJenkins public void repositoryProjectIdTest() throws ANTLRException, NoSuchAlgorithmException, UnsupportedEncodingException { BitbucketBuildTrigger trigger = new BitbucketBuildTrigger( "", "@hourly", @@ -233,7 +238,6 @@ public class BitbucketBuildRepositoryTest { } @Test - @WithoutJenkins public void triggerLongCIKeyTest() throws ANTLRException, NoSuchAlgorithmException { BitbucketBuildTrigger trigger = new BitbucketBuildTrigger( "", "@hourly", -- cgit v1.2.3