forked from github/copilot-sdk-java
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathConfigCloneTest.java
More file actions
118 lines (90 loc) · 3.97 KB
/
ConfigCloneTest.java
File metadata and controls
118 lines (90 loc) · 3.97 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
/*---------------------------------------------------------------------------------------------
* Copyright (c) Microsoft Corporation. All rights reserved.
*--------------------------------------------------------------------------------------------*/
package com.github.copilot.sdk;
import static org.junit.jupiter.api.Assertions.*;
import java.util.ArrayList;
import java.util.List;
import org.junit.jupiter.api.Test;
import com.github.copilot.sdk.json.CopilotClientOptions;
import com.github.copilot.sdk.json.SessionConfig;
import com.github.copilot.sdk.json.ResumeSessionConfig;
import com.github.copilot.sdk.json.MessageOptions;
class ConfigCloneTest {
@Test
void copilotClientOptionsCloneBasic() {
CopilotClientOptions original = new CopilotClientOptions();
original.setCliPath("/usr/local/bin/copilot");
original.setLogLevel("debug");
original.setPort(9000);
CopilotClientOptions cloned = original.clone();
assertEquals(original.getCliPath(), cloned.getCliPath());
assertEquals(original.getLogLevel(), cloned.getLogLevel());
assertEquals(original.getPort(), cloned.getPort());
}
@Test
void copilotClientOptionsArrayIndependence() {
CopilotClientOptions original = new CopilotClientOptions();
String[] args = {"--flag1", "--flag2"};
original.setCliArgs(args);
CopilotClientOptions cloned = original.clone();
cloned.getCliArgs()[0] = "--changed";
assertEquals("--flag1", original.getCliArgs()[0]);
assertEquals("--changed", cloned.getCliArgs()[0]);
}
@Test
void sessionConfigCloneBasic() {
SessionConfig original = new SessionConfig();
original.setSessionId("my-session");
original.setModel("gpt-4o");
original.setStreaming(true);
SessionConfig cloned = original.clone();
assertEquals(original.getSessionId(), cloned.getSessionId());
assertEquals(original.getModel(), cloned.getModel());
assertEquals(original.isStreaming(), cloned.isStreaming());
}
@Test
void sessionConfigListIndependence() {
SessionConfig original = new SessionConfig();
List<String> toolList = new ArrayList<>();
toolList.add("grep");
toolList.add("bash");
original.setAvailableTools(toolList);
SessionConfig cloned = original.clone();
List<String> clonedTools = new ArrayList<>(cloned.getAvailableTools());
clonedTools.add("web");
cloned.setAvailableTools(clonedTools);
assertEquals(2, original.getAvailableTools().size());
assertEquals(3, cloned.getAvailableTools().size());
}
@Test
void resumeSessionConfigCloneBasic() {
ResumeSessionConfig original = new ResumeSessionConfig();
original.setModel("o1");
original.setStreaming(false);
ResumeSessionConfig cloned = original.clone();
assertEquals(original.getModel(), cloned.getModel());
assertEquals(original.isStreaming(), cloned.isStreaming());
}
@Test
void messageOptionsCloneBasic() {
MessageOptions original = new MessageOptions();
original.setPrompt("What is 2+2?");
original.setMode("immediate");
MessageOptions cloned = original.clone();
assertEquals(original.getPrompt(), cloned.getPrompt());
assertEquals(original.getMode(), cloned.getMode());
}
@Test
void clonePreservesNullFields() {
CopilotClientOptions opts = new CopilotClientOptions();
CopilotClientOptions optsClone = opts.clone();
assertNull(optsClone.getCliPath());
SessionConfig cfg = new SessionConfig();
SessionConfig cfgClone = cfg.clone();
assertNull(cfgClone.getModel());
MessageOptions msg = new MessageOptions();
MessageOptions msgClone = msg.clone();
assertNull(msgClone.getMode());
}
}