From dbeb33d868e4c3433de712670d54dd2efab4f3a1 Mon Sep 17 00:00:00 2001 From: Hector Castejon Diaz Date: Thu, 9 Apr 2026 13:37:05 +0000 Subject: [PATCH] Add integration tests for OIDC endpoints Co-authored-by: Isaac --- .../integration/OidcAccountEndpointIT.java | 48 +++++++++++++++++++ .../integration/OidcUcAccountEndpointIT.java | 48 +++++++++++++++++++ .../OidcUcWorkspaceEndpointIT.java | 21 ++++++++ .../integration/OidcWorkspaceEndpointIT.java | 21 ++++++++ 4 files changed, 138 insertions(+) create mode 100644 databricks-sdk-java/src/test/java/com/databricks/sdk/integration/OidcAccountEndpointIT.java create mode 100644 databricks-sdk-java/src/test/java/com/databricks/sdk/integration/OidcUcAccountEndpointIT.java create mode 100644 databricks-sdk-java/src/test/java/com/databricks/sdk/integration/OidcUcWorkspaceEndpointIT.java create mode 100644 databricks-sdk-java/src/test/java/com/databricks/sdk/integration/OidcWorkspaceEndpointIT.java diff --git a/databricks-sdk-java/src/test/java/com/databricks/sdk/integration/OidcAccountEndpointIT.java b/databricks-sdk-java/src/test/java/com/databricks/sdk/integration/OidcAccountEndpointIT.java new file mode 100644 index 000000000..a6f029eec --- /dev/null +++ b/databricks-sdk-java/src/test/java/com/databricks/sdk/integration/OidcAccountEndpointIT.java @@ -0,0 +1,48 @@ +package com.databricks.sdk.integration; + +import com.databricks.sdk.AccountClient; +import com.databricks.sdk.core.DatabricksConfig; +import com.databricks.sdk.core.oauth.OpenIDConnectEndpoints; +import com.databricks.sdk.integration.framework.EnvContext; +import com.databricks.sdk.integration.framework.EnvTest; +import java.io.IOException; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.condition.EnabledIfEnvironmentVariable; +import org.junit.jupiter.api.extension.ExtendWith; + +@EnvContext("account") +@ExtendWith(EnvTest.class) +public class OidcAccountEndpointIT { + @Test + void checkEndpoints(AccountClient a) throws IOException { + OpenIDConnectEndpoints endpoints = a.config().getOidcEndpoints(); + String host = a.config().getHost(); + String accountId = a.config().getAccountId(); + if (a.config().isAzure()) { + assert endpoints.getAuthorizationEndpoint().equals(host + "/oidc/v1/authorize"); + assert endpoints.getTokenEndpoint().equals(host + "/oidc/v1/token"); + } else { + assert endpoints + .getAuthorizationEndpoint() + .equals(host + "/oidc/accounts/" + accountId + "/v1/authorize"); + assert endpoints + .getTokenEndpoint() + .equals(host + "/oidc/accounts/" + accountId + "/v1/token"); + } + } + + @Test + @EnabledIfEnvironmentVariable(named = "UNIFIED_HOST", matches = ".+") + void unifiedEndpointsForSpog(AccountClient a) throws IOException { + String unifiedHost = System.getenv("UNIFIED_HOST"); + DatabricksConfig cfg = a.config(); + cfg.setHost(unifiedHost); + OpenIDConnectEndpoints endpoints = cfg.getOidcEndpoints(); + String host = cfg.getHost(); + String accountId = cfg.getAccountId(); + assert endpoints + .getAuthorizationEndpoint() + .equals(host + "/oidc/accounts/" + accountId + "/v1/authorize"); + assert endpoints.getTokenEndpoint().equals(host + "/oidc/accounts/" + accountId + "/v1/token"); + } +} diff --git a/databricks-sdk-java/src/test/java/com/databricks/sdk/integration/OidcUcAccountEndpointIT.java b/databricks-sdk-java/src/test/java/com/databricks/sdk/integration/OidcUcAccountEndpointIT.java new file mode 100644 index 000000000..232c16e68 --- /dev/null +++ b/databricks-sdk-java/src/test/java/com/databricks/sdk/integration/OidcUcAccountEndpointIT.java @@ -0,0 +1,48 @@ +package com.databricks.sdk.integration; + +import com.databricks.sdk.AccountClient; +import com.databricks.sdk.core.DatabricksConfig; +import com.databricks.sdk.core.oauth.OpenIDConnectEndpoints; +import com.databricks.sdk.integration.framework.EnvContext; +import com.databricks.sdk.integration.framework.EnvTest; +import java.io.IOException; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.condition.EnabledIfEnvironmentVariable; +import org.junit.jupiter.api.extension.ExtendWith; + +@EnvContext("ucacct") +@ExtendWith(EnvTest.class) +public class OidcUcAccountEndpointIT { + @Test + void checkEndpoints(AccountClient a) throws IOException { + OpenIDConnectEndpoints endpoints = a.config().getOidcEndpoints(); + String host = a.config().getHost(); + String accountId = a.config().getAccountId(); + if (a.config().isAzure()) { + assert endpoints.getAuthorizationEndpoint().equals(host + "/oidc/v1/authorize"); + assert endpoints.getTokenEndpoint().equals(host + "/oidc/v1/token"); + } else { + assert endpoints + .getAuthorizationEndpoint() + .equals(host + "/oidc/accounts/" + accountId + "/v1/authorize"); + assert endpoints + .getTokenEndpoint() + .equals(host + "/oidc/accounts/" + accountId + "/v1/token"); + } + } + + @Test + @EnabledIfEnvironmentVariable(named = "UNIFIED_HOST", matches = ".+") + void unifiedEndpointsForSpog(AccountClient a) throws IOException { + String unifiedHost = System.getenv("UNIFIED_HOST"); + DatabricksConfig cfg = a.config(); + cfg.setHost(unifiedHost); + OpenIDConnectEndpoints endpoints = cfg.getOidcEndpoints(); + String host = cfg.getHost(); + String accountId = cfg.getAccountId(); + assert endpoints + .getAuthorizationEndpoint() + .equals(host + "/oidc/accounts/" + accountId + "/v1/authorize"); + assert endpoints.getTokenEndpoint().equals(host + "/oidc/accounts/" + accountId + "/v1/token"); + } +} diff --git a/databricks-sdk-java/src/test/java/com/databricks/sdk/integration/OidcUcWorkspaceEndpointIT.java b/databricks-sdk-java/src/test/java/com/databricks/sdk/integration/OidcUcWorkspaceEndpointIT.java new file mode 100644 index 000000000..6f7b5709e --- /dev/null +++ b/databricks-sdk-java/src/test/java/com/databricks/sdk/integration/OidcUcWorkspaceEndpointIT.java @@ -0,0 +1,21 @@ +package com.databricks.sdk.integration; + +import com.databricks.sdk.WorkspaceClient; +import com.databricks.sdk.core.oauth.OpenIDConnectEndpoints; +import com.databricks.sdk.integration.framework.EnvContext; +import com.databricks.sdk.integration.framework.EnvTest; +import java.io.IOException; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.ExtendWith; + +@EnvContext("ucws") +@ExtendWith(EnvTest.class) +public class OidcUcWorkspaceEndpointIT { + @Test + void checkEndpoints(WorkspaceClient w) throws IOException { + OpenIDConnectEndpoints endpoints = w.config().getOidcEndpoints(); + String host = w.config().getHost(); + assert endpoints.getAuthorizationEndpoint().equals(host + "/oidc/v1/authorize"); + assert endpoints.getTokenEndpoint().equals(host + "/oidc/v1/token"); + } +} diff --git a/databricks-sdk-java/src/test/java/com/databricks/sdk/integration/OidcWorkspaceEndpointIT.java b/databricks-sdk-java/src/test/java/com/databricks/sdk/integration/OidcWorkspaceEndpointIT.java new file mode 100644 index 000000000..800411473 --- /dev/null +++ b/databricks-sdk-java/src/test/java/com/databricks/sdk/integration/OidcWorkspaceEndpointIT.java @@ -0,0 +1,21 @@ +package com.databricks.sdk.integration; + +import com.databricks.sdk.WorkspaceClient; +import com.databricks.sdk.core.oauth.OpenIDConnectEndpoints; +import com.databricks.sdk.integration.framework.EnvContext; +import com.databricks.sdk.integration.framework.EnvTest; +import java.io.IOException; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.ExtendWith; + +@EnvContext("workspace") +@ExtendWith(EnvTest.class) +public class OidcWorkspaceEndpointIT { + @Test + void checkEndpoints(WorkspaceClient w) throws IOException { + OpenIDConnectEndpoints endpoints = w.config().getOidcEndpoints(); + String host = w.config().getHost(); + assert endpoints.getAuthorizationEndpoint().equals(host + "/oidc/v1/authorize"); + assert endpoints.getTokenEndpoint().equals(host + "/oidc/v1/token"); + } +}