Skip to content

Commit 4d1f8b3

Browse files
committed
-
1 parent 7b32de5 commit 4d1f8b3

File tree

1 file changed

+140
-0
lines changed

1 file changed

+140
-0
lines changed
Lines changed: 140 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,140 @@
1+
package com.databricks.sdk.core;
2+
3+
import static org.junit.jupiter.api.Assertions.*;
4+
5+
import java.util.Arrays;
6+
import java.util.List;
7+
import org.junit.jupiter.api.Test;
8+
9+
class DatabricksCliCredentialsProviderTest {
10+
11+
private static final String CLI_PATH = "/usr/local/bin/databricks";
12+
private static final String HOST = "https://my-workspace.cloud.databricks.com";
13+
private static final String ACCOUNT_HOST = "https://accounts.cloud.databricks.com";
14+
private static final String UNIFIED_HOST = "https://unified.databricks.com";
15+
private static final String ACCOUNT_ID = "test-account-123";
16+
private static final String WORKSPACE_ID = "987654321";
17+
18+
private final DatabricksCliCredentialsProvider provider = new DatabricksCliCredentialsProvider();
19+
20+
@Test
21+
void testBuildCliCommand_WorkspaceHost() {
22+
DatabricksConfig config = new DatabricksConfig().setHost(HOST);
23+
24+
List<String> cmd = provider.buildCliCommand(CLI_PATH, config);
25+
26+
assertEquals(Arrays.asList(CLI_PATH, "auth", "token", "--host", HOST), cmd);
27+
}
28+
29+
@Test
30+
void testBuildCliCommand_AccountHost() {
31+
DatabricksConfig config = new DatabricksConfig().setHost(ACCOUNT_HOST).setAccountId(ACCOUNT_ID);
32+
33+
List<String> cmd = provider.buildCliCommand(CLI_PATH, config);
34+
35+
assertEquals(
36+
Arrays.asList(CLI_PATH, "auth", "token", "--host", ACCOUNT_HOST, "--account-id", ACCOUNT_ID),
37+
cmd);
38+
}
39+
40+
@Test
41+
void testBuildCliCommand_UnifiedHost_WithAccountIdAndWorkspaceId() {
42+
DatabricksConfig config =
43+
new DatabricksConfig()
44+
.setHost(UNIFIED_HOST)
45+
.setExperimentalIsUnifiedHost(true)
46+
.setAccountId(ACCOUNT_ID)
47+
.setWorkspaceId(WORKSPACE_ID);
48+
49+
List<String> cmd = provider.buildCliCommand(CLI_PATH, config);
50+
51+
assertEquals(
52+
Arrays.asList(
53+
CLI_PATH,
54+
"auth",
55+
"token",
56+
"--host",
57+
UNIFIED_HOST,
58+
"--experimental-is-unified-host",
59+
"--account-id",
60+
ACCOUNT_ID,
61+
"--workspace-id",
62+
WORKSPACE_ID),
63+
cmd);
64+
}
65+
66+
@Test
67+
void testBuildCliCommand_UnifiedHost_WithAccountIdOnly() {
68+
DatabricksConfig config =
69+
new DatabricksConfig()
70+
.setHost(UNIFIED_HOST)
71+
.setExperimentalIsUnifiedHost(true)
72+
.setAccountId(ACCOUNT_ID);
73+
74+
List<String> cmd = provider.buildCliCommand(CLI_PATH, config);
75+
76+
assertEquals(
77+
Arrays.asList(
78+
CLI_PATH,
79+
"auth",
80+
"token",
81+
"--host",
82+
UNIFIED_HOST,
83+
"--experimental-is-unified-host",
84+
"--account-id",
85+
ACCOUNT_ID),
86+
cmd);
87+
}
88+
89+
@Test
90+
void testBuildCliCommand_UnifiedHost_WithWorkspaceIdOnly() {
91+
DatabricksConfig config =
92+
new DatabricksConfig()
93+
.setHost(UNIFIED_HOST)
94+
.setExperimentalIsUnifiedHost(true)
95+
.setWorkspaceId(WORKSPACE_ID);
96+
97+
List<String> cmd = provider.buildCliCommand(CLI_PATH, config);
98+
99+
assertEquals(
100+
Arrays.asList(
101+
CLI_PATH,
102+
"auth",
103+
"token",
104+
"--host",
105+
UNIFIED_HOST,
106+
"--experimental-is-unified-host",
107+
"--workspace-id",
108+
WORKSPACE_ID),
109+
cmd);
110+
}
111+
112+
@Test
113+
void testBuildCliCommand_UnifiedHost_WithNoAccountIdOrWorkspaceId() {
114+
DatabricksConfig config =
115+
new DatabricksConfig().setHost(UNIFIED_HOST).setExperimentalIsUnifiedHost(true);
116+
117+
List<String> cmd = provider.buildCliCommand(CLI_PATH, config);
118+
119+
assertEquals(
120+
Arrays.asList(
121+
CLI_PATH, "auth", "token", "--host", UNIFIED_HOST, "--experimental-is-unified-host"),
122+
cmd);
123+
}
124+
125+
@Test
126+
void testBuildCliCommand_UnifiedHostFalse_WithAccountHost() {
127+
// When experimentalIsUnifiedHost is explicitly false, should fall back to account-id logic
128+
DatabricksConfig config =
129+
new DatabricksConfig()
130+
.setHost(ACCOUNT_HOST)
131+
.setExperimentalIsUnifiedHost(false)
132+
.setAccountId(ACCOUNT_ID);
133+
134+
List<String> cmd = provider.buildCliCommand(CLI_PATH, config);
135+
136+
assertEquals(
137+
Arrays.asList(CLI_PATH, "auth", "token", "--host", ACCOUNT_HOST, "--account-id", ACCOUNT_ID),
138+
cmd);
139+
}
140+
}

0 commit comments

Comments
 (0)