Skip to content

Commit 0c2b3b5

Browse files
chore: touch up the tests and have provider nullable
1 parent 6eb0bc4 commit 0c2b3b5

File tree

2 files changed

+9
-44
lines changed

2 files changed

+9
-44
lines changed

lib/sdk/server-ai/src/main/java/com/launchdarkly/sdk/server/ai/LDAiClient.java

Lines changed: 6 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -71,8 +71,7 @@ protected AiConfig parseAiConfig(LDValue value, String key) {
7171
return new AiConfig(enabled, null, null, null, null);
7272
}
7373

74-
// The booleanValue will get false if that value something that we are not
75-
// expecting, which is good
74+
// The booleanValue will get false if that value is something that we are not expecting
7675
enabled = valueMeta.get("enabled").booleanValue();
7776

7877
Meta meta = null;
@@ -140,35 +139,30 @@ protected AiConfig parseAiConfig(LDValue value, String key) {
140139

141140
// Convert the optional provider from an JSON object of with name into Provider
142141
LDValue valueProvider = value.get("provider");
143-
String providerName = null;
142+
Provider provider = null;
144143

145144
if (checkValueWithFailureLogging(valueProvider, LDValueType.OBJECT, logger,
146145
"non-null provider must be a JSON object")) {
147146
if (checkValueWithFailureLogging(valueProvider.get("name"), LDValueType.STRING, logger,
148147
"provider name must be a String")) {
149-
providerName = valueProvider.get("name").stringValue();
148+
String providerName = valueProvider.get("name").stringValue();
149+
150+
provider = new Provider(providerName);
150151
}
151152
}
152153

153-
Provider provider = new Provider(providerName);
154-
155154
return new AiConfig(enabled, meta, model, messages, provider);
156155
}
157156

158157
protected boolean checkValueWithFailureLogging(LDValue ldValue, LDValueType expectedType, LDLogger logger,
159158
String message) {
160159
if (ldValue.getType() != expectedType) {
160+
// TODO: In the next PR, make this required with some sort of default logger
161161
if (logger != null) {
162162
logger.error(message);
163163
}
164164
return false;
165165
}
166166
return true;
167167
}
168-
169-
class AiConfigParseException extends Exception {
170-
AiConfigParseException(String exceptionMessage) {
171-
super(exceptionMessage);
172-
}
173-
}
174168
}

lib/sdk/server-ai/src/test/java/com/launchdarkly/sdk/server/ai/LDAiClientTest.java

Lines changed: 3 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,6 @@
44

55
import com.launchdarkly.sdk.LDValue;
66
import com.launchdarkly.sdk.server.ai.datamodel.AiConfig;
7-
import com.launchdarkly.sdk.server.ai.datamodel.Message;
87
import com.launchdarkly.sdk.server.ai.datamodel.Role;
98

109
import static org.junit.Assert.assertEquals;
@@ -13,36 +12,7 @@
1312
import static org.junit.Assert.assertTrue;
1413
import static org.junit.Assert.assertFalse;
1514

16-
import java.util.List;
17-
import java.util.Map;
18-
1915
public class LDAiClientTest {
20-
/**
21-
* Helper method to generate valid JSON with all required fields
22-
* This can be modified for specific test cases
23-
*/
24-
private String getValidBaseJson() {
25-
return "{\n" + //
26-
" \"_ldMeta\": {\n" + //
27-
" \"variationKey\" : \"1234\",\n" + //
28-
" \"enabled\": true,\n" + //
29-
" \"version\": 1\n" + //
30-
" },\n" + //
31-
" \"messages\": [\n" + //
32-
" {\n" + //
33-
" \"content\": \"This is an {{ adjective }} message.\",\n" + //
34-
" \"role\": \"user\"\n" + //
35-
" }\n" + //
36-
" ],\n" + //
37-
" \"model\": {\n" + //
38-
" \"name\": \"my-cool-custom-model\"\n" + //
39-
" },\n" + //
40-
" \"provider\": {\n" + //
41-
" \"name\" : \"provider-name\"\n" + //
42-
" }\n" + //
43-
"}";
44-
}
45-
4616
/**
4717
* Tests that a complete valid JSON is properly converted to an AiConfig object
4818
*/
@@ -382,8 +352,7 @@ public void testInvalidProviderNameType() {
382352
LDAiClient client = new LDAiClient(null);
383353
AiConfig result = client.parseAiConfig(input, "Whatever");
384354

385-
assertNotNull(result.getProvider());
386-
assertNull(result.getProvider().getName());
355+
assertNull(result.getProvider());
387356
}
388357

389358
/**
@@ -401,6 +370,7 @@ public void testInvalidJsonNotObject() {
401370
assertNull(result.getMeta());
402371
assertNull(result.getModel());
403372
assertNull(result.getMessages());
373+
assertNull(result.getProvider());
404374
}
405375

406376
/**
@@ -422,5 +392,6 @@ public void testMissingRequiredProperties() {
422392
assertNull(result.getMeta()); // Meta should be null due to missing variationKey
423393
assertNull(result.getModel());
424394
assertNull(result.getMessages());
395+
assertNull(result.getProvider());
425396
}
426397
}

0 commit comments

Comments
 (0)