package com.alorma.github.sdk.core; import core.ApiClient; import core.GithubEnterprise; import org.junit.Test; import static org.assertj.core.api.Assertions.assertThat; public class GithubEnterpriseTest { private static final String NULL_HOSTNAME = null; private static final String EMPTY_HOSTNAME = ""; private static final String HOSTNAME = "https://alorma.github.io"; private static final String HOSTNAME_HTTP = "http://alorma.github.io"; private static final String HOSTNAME_NO_SCHEME = "alorma.github.io"; private static final String HOSTNAME_SLASH = "https://alorma.github.io/"; private static final String API_ENDPOINT_API_PATH = "https://alorma.github.io/api"; private static final String VALID_API_ENDPOINT = "https://alorma.github.io/api/v3/"; private static final String TYPE = "github-enterprise"; @Test(expected = NullPointerException.class) public void ShouldThrowException_withNullUrl() { try { new GithubEnterprise(NULL_HOSTNAME); } catch (NullPointerException e) { throw e; } } @Test(expected = IllegalArgumentException.class) public void ShouldThrowException_withEmptyUrl() { try { new GithubEnterprise(EMPTY_HOSTNAME); } catch (IllegalArgumentException e) { throw e; } } @Test public void ShouldReturnOauthEndpoint() { ApiClient apiClient = new GithubEnterprise(HOSTNAME); String endpoint = apiClient.getApiOauthUrlEndpoint(); assertThat(endpoint).isEqualTo(HOSTNAME); } @Test public void ShouldReturnOauthEndpoint_withoutSecureScheme() { ApiClient apiClient = new GithubEnterprise(HOSTNAME_HTTP); String endpoint = apiClient.getApiOauthUrlEndpoint(); assertThat(endpoint).isEqualTo(HOSTNAME); } @Test public void ShouldReturnOauthEndpoint_withoutScheme() { ApiClient apiClient = new GithubEnterprise(HOSTNAME_NO_SCHEME); String endpoint = apiClient.getApiOauthUrlEndpoint(); assertThat(endpoint).isEqualTo(HOSTNAME); } @Test public void ShouldReturnApiEndpoint() { ApiClient apiClient = new GithubEnterprise(HOSTNAME); String endpoint = apiClient.getApiEndpoint(); assertThat(endpoint).isEqualTo(VALID_API_ENDPOINT); } @Test public void ShouldReturnApiEndpoint_withSlash() { ApiClient apiClient = new GithubEnterprise(HOSTNAME_SLASH); String endpoint = apiClient.getApiEndpoint(); assertThat(endpoint).isEqualTo(VALID_API_ENDPOINT); } @Test public void ShouldReturnApiEndpoint_whenPathContainsApi() { ApiClient apiClient = new GithubEnterprise(API_ENDPOINT_API_PATH); String endpoint = apiClient.getApiEndpoint(); assertThat(endpoint).isEqualTo(VALID_API_ENDPOINT); } @Test public void ShouldReturnApiEndpoint_whenPathContainsApiAndV3() { ApiClient apiClient = new GithubEnterprise(VALID_API_ENDPOINT); String endpoint = apiClient.getApiEndpoint(); assertThat(endpoint).isEqualTo(VALID_API_ENDPOINT); } @Test public void ShouldReturnApiEndpoint_withoutSecureScheme() { ApiClient apiClient = new GithubEnterprise(HOSTNAME_HTTP); String endpoint = apiClient.getApiEndpoint(); assertThat(endpoint).isEqualTo(VALID_API_ENDPOINT); } @Test public void ShouldReturnApiEndpoint_withoutScheme() { ApiClient apiClient = new GithubEnterprise(HOSTNAME_NO_SCHEME); String endpoint = apiClient.getApiEndpoint(); assertThat(endpoint).isEqualTo(VALID_API_ENDPOINT); } @Test public void ShouldReturnType() { ApiClient apiClient = new GithubEnterprise(HOSTNAME); String endpoint = apiClient.getType(); assertThat(endpoint).isEqualTo(TYPE); } }