Reenable GitHubBuilder tests

This commit is contained in:
Liam Newman
2020-12-30 15:51:27 -08:00
parent bd39b07bb5
commit 6670446037
5 changed files with 105 additions and 34 deletions

View File

@@ -6,6 +6,8 @@ import java.io.IOException;
import java.lang.reflect.Field;
import java.util.*;
import static org.hamcrest.CoreMatchers.*;
/**
* Unit test for {@link GitHub}.
*/
@@ -56,20 +58,44 @@ public class GitHubConnectionTest extends AbstractGitHubWireMockTest {
Map<String, String> props = new HashMap<String, String>();
props.put("login", "bogus");
props.put("oauth", "bogus");
props.put("password", "bogus");
props.put("jwt", "bogus");
props.put("endpoint", "bogus endpoint url");
props.put("oauth", "bogus oauth token string");
setupEnvironment(props);
GitHubBuilder builder = GitHubBuilder.fromEnvironment();
// TODO: figure out how to test these again
// assertEquals("bogus", builder.user);
// assertEquals("bogus", builder.oauthToken);
// assertEquals("bogus", builder.password);
// assertEquals("bogus", builder.jwtToken);
assertThat(builder.endpoint, equalTo("bogus endpoint url"));
assertThat(builder.credentialProvider, instanceOf(ImmutableCredentialProvider.UserCredentialProvider.class));
assertThat(builder.credentialProvider.getEncodedAuthorization(), equalTo("token bogus oauth token string"));
assertThat(((ImmutableCredentialProvider.UserCredentialProvider) builder.credentialProvider).getLogin(),
nullValue());
props.put("login", "bogus login");
setupEnvironment(props);
builder = GitHubBuilder.fromEnvironment();
assertThat(builder.credentialProvider, instanceOf(ImmutableCredentialProvider.UserCredentialProvider.class));
assertThat(builder.credentialProvider.getEncodedAuthorization(), equalTo("token bogus oauth token string"));
assertThat(((ImmutableCredentialProvider.UserCredentialProvider) builder.credentialProvider).getLogin(),
equalTo("bogus login"));
props.put("jwt", "bogus jwt token string");
setupEnvironment(props);
builder = GitHubBuilder.fromEnvironment();
assertThat(builder.credentialProvider,
not(instanceOf(ImmutableCredentialProvider.UserCredentialProvider.class)));
assertThat(builder.credentialProvider.getEncodedAuthorization(), equalTo("Bearer bogus jwt token string"));
props.put("password", "bogus weak password");
setupEnvironment(props);
builder = GitHubBuilder.fromEnvironment();
assertThat(builder.credentialProvider, instanceOf(ImmutableCredentialProvider.UserCredentialProvider.class));
assertThat(builder.credentialProvider.getEncodedAuthorization(),
equalTo("Basic Ym9ndXMgbG9naW46Ym9ndXMgd2VhayBwYXNzd29yZA=="));
assertThat(((ImmutableCredentialProvider.UserCredentialProvider) builder.credentialProvider).getLogin(),
equalTo("bogus login"));
}
@@ -77,33 +103,52 @@ public class GitHubConnectionTest extends AbstractGitHubWireMockTest {
public void testGitHubBuilderFromCustomEnvironment() throws IOException {
Map<String, String> props = new HashMap<String, String>();
props.put("customLogin", "bogusLogin");
props.put("customOauth", "bogusOauth");
props.put("customPassword", "bogusPassword");
props.put("customEndpoint", "bogusEndpoint");
props.put("customEndpoint", "bogus endpoint url");
props.put("customOauth", "bogus oauth token string");
setupEnvironment(props);
GitHubBuilder builder = GitHubBuilder
.fromEnvironment("customLogin", "customPassword", "customOauth", "customEndpoint");
// TODO: figure out how to test these again
// assertEquals("bogusLogin", builder.user);
// assertEquals("bogusOauth", builder.oauthToken);
// assertEquals("bogusPassword", builder.password);
assertEquals("bogusEndpoint", builder.endpoint);
assertThat(builder.endpoint, equalTo("bogus endpoint url"));
assertThat(builder.credentialProvider, instanceOf(ImmutableCredentialProvider.UserCredentialProvider.class));
assertThat(builder.credentialProvider.getEncodedAuthorization(), equalTo("token bogus oauth token string"));
assertThat(((ImmutableCredentialProvider.UserCredentialProvider) builder.credentialProvider).getLogin(),
nullValue());
props.put("customLogin", "bogus login");
setupEnvironment(props);
builder = GitHubBuilder.fromEnvironment("customLogin", "customPassword", "customOauth", "customEndpoint");
assertThat(builder.credentialProvider, instanceOf(ImmutableCredentialProvider.UserCredentialProvider.class));
assertThat(builder.credentialProvider.getEncodedAuthorization(), equalTo("token bogus oauth token string"));
assertThat(((ImmutableCredentialProvider.UserCredentialProvider) builder.credentialProvider).getLogin(),
equalTo("bogus login"));
props.put("customPassword", "bogus weak password");
setupEnvironment(props);
builder = GitHubBuilder.fromEnvironment("customLogin", "customPassword", "customOauth", "customEndpoint");
assertThat(builder.credentialProvider, instanceOf(ImmutableCredentialProvider.UserCredentialProvider.class));
assertThat(builder.credentialProvider.getEncodedAuthorization(),
equalTo("Basic Ym9ndXMgbG9naW46Ym9ndXMgd2VhayBwYXNzd29yZA=="));
assertThat(((ImmutableCredentialProvider.UserCredentialProvider) builder.credentialProvider).getLogin(),
equalTo("bogus login"));
}
@Test
public void testGithubBuilderWithAppInstallationToken() throws Exception {
GitHubBuilder builder = new GitHubBuilder().withAppInstallationToken("bogus");
// assertEquals("bogus", builder.oauthToken);
// assertEquals("", builder.user);
GitHubBuilder builder = new GitHubBuilder().withAppInstallationToken("bogus app token");
assertThat(builder.credentialProvider, instanceOf(ImmutableCredentialProvider.UserCredentialProvider.class));
assertThat(builder.credentialProvider.getEncodedAuthorization(), equalTo("token bogus app token"));
assertThat(((ImmutableCredentialProvider.UserCredentialProvider) builder.credentialProvider).getLogin(),
equalTo(""));
// test authorization header is set as in the RFC6749
GitHub github = builder.build();
// change this to get a request
assertEquals("token bogus", github.getClient().credentialProvider.getEncodedAuthorization());
assertEquals("token bogus app token", github.getClient().getEncodedAuthorization());
assertEquals("", github.getClient().login);
}