Skip to content

Commit 7946fee

Browse files
committed
Add better tests
Signed-off-by: siri-varma <[email protected]>
1 parent 57fad34 commit 7946fee

File tree

7 files changed

+102
-65
lines changed

7 files changed

+102
-65
lines changed

sdk/src/main/java/io/dapr/client/DaprClientImpl.java

Lines changed: 15 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1715,6 +1715,10 @@ public Mono<ConversationResponseAlpha2> converseAlpha2(ConversationRequestAlpha2
17151715
throw new IllegalArgumentException("LLM name cannot be null or empty.");
17161716
}
17171717

1718+
if (conversationRequestAlpha2.getInputs() == null || conversationRequestAlpha2.getInputs().isEmpty()) {
1719+
throw new IllegalArgumentException("Conversation Inputs cannot be null or empty.");
1720+
}
1721+
17181722
DaprProtos.ConversationRequestAlpha2.Builder builder = DaprProtos.ConversationRequestAlpha2
17191723
.newBuilder()
17201724
.setTemperature(conversationRequestAlpha2.getTemperature())
@@ -1776,21 +1780,19 @@ private DaprProtos.ConversationRequestAlpha2 buildConversationRequestProto(Conve
17761780
builder.putAllParameters(parameters);
17771781
}
17781782

1779-
if (request.getInputs() != null) {
1780-
for (ConversationInputAlpha2 input : request.getInputs()) {
1781-
DaprProtos.ConversationInputAlpha2.Builder inputBuilder = DaprProtos.ConversationInputAlpha2
1782-
.newBuilder()
1783-
.setScrubPii(input.isScrubPii());
1783+
for (ConversationInputAlpha2 input : request.getInputs()) {
1784+
DaprProtos.ConversationInputAlpha2.Builder inputBuilder = DaprProtos.ConversationInputAlpha2
1785+
.newBuilder()
1786+
.setScrubPii(input.isScrubPii());
17841787

1785-
if (input.getMessages() != null) {
1786-
for (ConversationMessage message : input.getMessages()) {
1787-
DaprProtos.ConversationMessage protoMessage = buildConversationMessage(message);
1788-
inputBuilder.addMessages(protoMessage);
1789-
}
1788+
if (input.getMessages() != null) {
1789+
for (ConversationMessage message : input.getMessages()) {
1790+
DaprProtos.ConversationMessage protoMessage = buildConversationMessage(message);
1791+
inputBuilder.addMessages(protoMessage);
17901792
}
1791-
1792-
builder.addInputs(inputBuilder.build());
17931793
}
1794+
1795+
builder.addInputs(inputBuilder.build());
17941796
}
17951797

17961798
return builder.build();
@@ -1945,9 +1947,7 @@ private ConversationResultMessage buildConversationResultMessage(DaprProtos.Conv
19451947
toolCalls.add(conversationToolCalls);
19461948
}
19471949

1948-
return new ConversationResultMessage(
1949-
protoChoice.getMessage().getContent(),
1950-
toolCalls
1950+
return new ConversationResultMessage(protoChoice.getMessage().getContent(), toolCalls
19511951
);
19521952
}
19531953

sdk/src/main/java/io/dapr/client/domain/AssistantMessage.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -31,8 +31,8 @@ public class AssistantMessage implements ConversationMessage {
3131
* @param toolCalls the tool calls requested by the assistant.
3232
*/
3333
public AssistantMessage(List<ConversationMessageContent> content, List<ConversationToolCalls> toolCalls) {
34-
this.content = content != null ? List.copyOf(content) : null;
35-
this.toolCalls = toolCalls != null ? List.copyOf(toolCalls) : null;
34+
this.content = List.copyOf(content);
35+
this.toolCalls = List.copyOf(toolCalls);
3636
}
3737

3838
@Override

sdk/src/main/java/io/dapr/client/domain/DeveloperMessage.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ public class DeveloperMessage implements ConversationMessage {
3030
* @param content the content of the developer message
3131
*/
3232
public DeveloperMessage(List<ConversationMessageContent> content) {
33-
this.content = content != null ? List.copyOf(content) : null;
33+
this.content = List.copyOf(content);
3434
}
3535

3636
@Override

sdk/src/main/java/io/dapr/client/domain/SystemMessage.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ public class SystemMessage implements ConversationMessage {
3030
* @param content the content of the system message
3131
*/
3232
public SystemMessage(List<ConversationMessageContent> content) {
33-
this.content = content != null ? List.copyOf(content) : null;
33+
this.content = List.copyOf(content);
3434
}
3535

3636
@Override

sdk/src/main/java/io/dapr/client/domain/ToolMessage.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ public class ToolMessage implements ConversationMessage {
3131
* @param content the content containing the tool execution result
3232
*/
3333
public ToolMessage(List<ConversationMessageContent> content) {
34-
this.content = content != null ? List.copyOf(content) : null;
34+
this.content = List.copyOf(content);
3535
}
3636

3737
@Override

sdk/src/main/java/io/dapr/client/domain/UserMessage.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ public class UserMessage implements ConversationMessage {
3030
* @param content the content of the user message
3131
*/
3232
public UserMessage(List<ConversationMessageContent> content) {
33-
this.content = content != null ? List.copyOf(content) : null;
33+
this.content = List.copyOf(content);
3434
}
3535

3636
@Override

sdk/src/test/java/io/dapr/client/DaprPreviewClientGrpcTest.java

Lines changed: 81 additions & 44 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@
1616

1717
import com.fasterxml.jackson.core.JsonProcessingException;
1818
import com.fasterxml.jackson.databind.ObjectMapper;
19+
import com.google.common.collect.Lists;
1920
import com.google.protobuf.Any;
2021
import com.google.protobuf.ByteString;
2122
import io.dapr.client.domain.AssistantMessage;
@@ -1347,7 +1348,14 @@ public void deleteJobShouldThrowWhenNameIsEmptyRequest() {
13471348

13481349
@Test
13491350
public void converseAlpha2ShouldThrowIllegalArgumentExceptionWhenNameIsNull() {
1350-
ConversationRequestAlpha2 request = new ConversationRequestAlpha2(null, null);
1351+
List<ConversationMessage> messages = new ArrayList<>();
1352+
SystemMessage systemMsg = new SystemMessage(List.of(new ConversationMessageContent("System info")));
1353+
systemMsg.setName("system");
1354+
messages.add(systemMsg);
1355+
1356+
ConversationInputAlpha2 input = new ConversationInputAlpha2(messages);
1357+
1358+
ConversationRequestAlpha2 request = new ConversationRequestAlpha2(null, List.of(input));
13511359

13521360
IllegalArgumentException exception = assertThrows(IllegalArgumentException.class, () ->
13531361
previewClient.converseAlpha2(request).block());
@@ -1356,7 +1364,14 @@ public void converseAlpha2ShouldThrowIllegalArgumentExceptionWhenNameIsNull() {
13561364

13571365
@Test
13581366
public void converseAlpha2ShouldThrowIllegalArgumentExceptionWhenNameIsEmpty() {
1359-
ConversationRequestAlpha2 request = new ConversationRequestAlpha2("", null);
1367+
List<ConversationMessage> messages = new ArrayList<>();
1368+
SystemMessage systemMsg = new SystemMessage(List.of(new ConversationMessageContent("System info")));
1369+
systemMsg.setName("system");
1370+
messages.add(systemMsg);
1371+
1372+
ConversationInputAlpha2 input = new ConversationInputAlpha2(messages);
1373+
1374+
ConversationRequestAlpha2 request = new ConversationRequestAlpha2("", List.of(input));
13601375

13611376
IllegalArgumentException exception = assertThrows(IllegalArgumentException.class, () ->
13621377
previewClient.converseAlpha2(request).block());
@@ -1365,13 +1380,38 @@ public void converseAlpha2ShouldThrowIllegalArgumentExceptionWhenNameIsEmpty() {
13651380

13661381
@Test
13671382
public void converseAlpha2ShouldThrowIllegalArgumentExceptionWhenNameIsWhitespace() {
1383+
List<ConversationMessage> messages = new ArrayList<>();
1384+
SystemMessage systemMsg = new SystemMessage(List.of(new ConversationMessageContent("System info")));
1385+
systemMsg.setName("system");
1386+
messages.add(systemMsg);
1387+
1388+
ConversationInputAlpha2 input = new ConversationInputAlpha2(messages);
1389+
13681390
ConversationRequestAlpha2 request = new ConversationRequestAlpha2(" ", null);
13691391

13701392
IllegalArgumentException exception = assertThrows(IllegalArgumentException.class, () ->
13711393
previewClient.converseAlpha2(request).block());
13721394
assertEquals("LLM name cannot be null or empty.", exception.getMessage());
13731395
}
13741396

1397+
@Test
1398+
public void converseAlpha2ShouldThrowIllegalArgumentExceptionWhenInputIsNull() {
1399+
ConversationRequestAlpha2 request = new ConversationRequestAlpha2("abc", null);
1400+
1401+
IllegalArgumentException exception = assertThrows(IllegalArgumentException.class, () ->
1402+
previewClient.converseAlpha2(request).block());
1403+
assertEquals("LLM name cannot be null or empty.", exception.getMessage());
1404+
}
1405+
1406+
@Test
1407+
public void converseAlpha2ShouldThrowIllegalArgumentExceptionWhenInputIsEmpty() {
1408+
ConversationRequestAlpha2 request = new ConversationRequestAlpha2("abc", new ArrayList<>());
1409+
1410+
IllegalArgumentException exception = assertThrows(IllegalArgumentException.class, () ->
1411+
previewClient.converseAlpha2(request).block());
1412+
assertEquals("LLM name cannot be null or empty.", exception.getMessage());
1413+
}
1414+
13751415
@Test
13761416
public void converseAlpha2ExceptionThrownTest() {
13771417
doAnswer((Answer<Void>) invocation -> {
@@ -1380,11 +1420,7 @@ public void converseAlpha2ExceptionThrownTest() {
13801420

13811421
ConversationRequestAlpha2 request = new ConversationRequestAlpha2("openai", null);
13821422

1383-
assertThrowsDaprException(
1384-
StatusRuntimeException.class,
1385-
"INVALID_ARGUMENT",
1386-
"INVALID_ARGUMENT: bad argument",
1387-
() -> previewClient.converseAlpha2(request).block());
1423+
assertThrows(IllegalArgumentException.class, () -> previewClient.converseAlpha2(request).block());
13881424
}
13891425

13901426
@Test
@@ -1396,7 +1432,14 @@ public void converseAlpha2CallbackExceptionThrownTest() {
13961432
return null;
13971433
}).when(daprStub).converseAlpha2(any(DaprProtos.ConversationRequestAlpha2.class), any());
13981434

1399-
ConversationRequestAlpha2 request = new ConversationRequestAlpha2("openai", null);
1435+
List<ConversationMessage> messages = new ArrayList<>();
1436+
SystemMessage systemMsg = new SystemMessage(List.of(new ConversationMessageContent("System info")));
1437+
systemMsg.setName("system");
1438+
messages.add(systemMsg);
1439+
1440+
ConversationInputAlpha2 input = new ConversationInputAlpha2(messages);
1441+
1442+
ConversationRequestAlpha2 request = new ConversationRequestAlpha2("openai", List.of(input));
14001443
Mono<ConversationResponseAlpha2> result = previewClient.converseAlpha2(request);
14011444

14021445
assertThrowsDaprException(
@@ -1429,7 +1472,14 @@ public void converseAlpha2MinimalRequestTest() {
14291472
return null;
14301473
}).when(daprStub).converseAlpha2(any(DaprProtos.ConversationRequestAlpha2.class), any());
14311474

1432-
ConversationRequestAlpha2 request = new ConversationRequestAlpha2("openai", null);
1475+
List<ConversationMessage> messages = new ArrayList<>();
1476+
DeveloperMessage devMsg = new DeveloperMessage(List.of(new ConversationMessageContent("Debug info")));
1477+
devMsg.setName("developer");
1478+
messages.add(devMsg);
1479+
1480+
ConversationInputAlpha2 input = new ConversationInputAlpha2(messages);
1481+
1482+
ConversationRequestAlpha2 request = new ConversationRequestAlpha2("openai", List.of(input));
14331483
ConversationResponseAlpha2 response = previewClient.converseAlpha2(request).block();
14341484

14351485
assertNotNull(response);
@@ -1619,41 +1669,15 @@ public void converseAlpha2AllMessageTypesTest() {
16191669
}
16201670

16211671
@Test
1622-
public void converseAlpha2EmptyInputsTest() {
1623-
ConversationRequestAlpha2 request = new ConversationRequestAlpha2("openai", new ArrayList<>());
1624-
1625-
DaprProtos.ConversationResponseAlpha2 grpcResponse = DaprProtos.ConversationResponseAlpha2.newBuilder()
1626-
.addOutputs(DaprProtos.ConversationResultAlpha2.newBuilder()
1627-
.addChoices(DaprProtos.ConversationResultChoices.newBuilder()
1628-
.setFinishReason("stop")
1629-
.setIndex(0)
1630-
.build())
1631-
.build())
1632-
.build();
1633-
1634-
doAnswer((Answer<Void>) invocation -> {
1635-
StreamObserver<DaprProtos.ConversationResponseAlpha2> observer =
1636-
(StreamObserver<DaprProtos.ConversationResponseAlpha2>) invocation.getArguments()[1];
1637-
observer.onNext(grpcResponse);
1638-
observer.onCompleted();
1639-
return null;
1640-
}).when(daprStub).converseAlpha2(any(DaprProtos.ConversationRequestAlpha2.class), any());
1641-
1642-
ConversationResponseAlpha2 response = previewClient.converseAlpha2(request).block();
1643-
1644-
assertNotNull(response);
1645-
1646-
ArgumentCaptor<DaprProtos.ConversationRequestAlpha2> captor =
1647-
ArgumentCaptor.forClass(DaprProtos.ConversationRequestAlpha2.class);
1648-
verify(daprStub).converseAlpha2(captor.capture(), any());
1672+
public void converseAlpha2ResponseWithoutMessageTest() {
1673+
List<ConversationMessage> messages = new ArrayList<>();
1674+
DeveloperMessage devMsg = new DeveloperMessage(List.of(new ConversationMessageContent("Debug info")));
1675+
devMsg.setName("developer");
1676+
messages.add(devMsg);
16491677

1650-
DaprProtos.ConversationRequestAlpha2 capturedRequest = captor.getValue();
1651-
assertEquals(0, capturedRequest.getInputsCount());
1652-
}
1678+
ConversationInputAlpha2 input = new ConversationInputAlpha2(messages);
16531679

1654-
@Test
1655-
public void converseAlpha2ResponseWithoutMessageTest() {
1656-
ConversationRequestAlpha2 request = new ConversationRequestAlpha2("openai", null);
1680+
ConversationRequestAlpha2 request = new ConversationRequestAlpha2("openai", List.of(input));
16571681

16581682
DaprProtos.ConversationResponseAlpha2 grpcResponse = DaprProtos.ConversationResponseAlpha2.newBuilder()
16591683
.addOutputs(DaprProtos.ConversationResultAlpha2.newBuilder()
@@ -1684,7 +1708,14 @@ public void converseAlpha2ResponseWithoutMessageTest() {
16841708

16851709
@Test
16861710
public void converseAlpha2MultipleResultsTest() {
1687-
ConversationRequestAlpha2 request = new ConversationRequestAlpha2("openai", null);
1711+
List<ConversationMessage> messages = new ArrayList<>();
1712+
DeveloperMessage devMsg = new DeveloperMessage(List.of(new ConversationMessageContent("Debug info")));
1713+
devMsg.setName("developer");
1714+
messages.add(devMsg);
1715+
1716+
ConversationInputAlpha2 input = new ConversationInputAlpha2(messages);
1717+
1718+
ConversationRequestAlpha2 request = new ConversationRequestAlpha2("openai", List.of(input));
16881719

16891720
DaprProtos.ConversationResponseAlpha2 grpcResponse = DaprProtos.ConversationResponseAlpha2.newBuilder()
16901721
.addOutputs(DaprProtos.ConversationResultAlpha2.newBuilder()
@@ -1741,8 +1772,14 @@ public void converseAlpha2MultipleResultsTest() {
17411772

17421773
@Test
17431774
public void converseAlpha2ToolCallWithoutFunctionTest() {
1744-
ConversationRequestAlpha2 request = new ConversationRequestAlpha2("openai", null);
1775+
List<ConversationMessage> messages = new ArrayList<>();
1776+
UserMessage userMsg = new UserMessage(List.of(new ConversationMessageContent("Debug info")));
1777+
userMsg.setName("developer");
1778+
messages.add(userMsg);
17451779

1780+
ConversationInputAlpha2 input = new ConversationInputAlpha2(messages);
1781+
1782+
ConversationRequestAlpha2 request = new ConversationRequestAlpha2("openai", List.of(input));
17461783
DaprProtos.ConversationResponseAlpha2 grpcResponse = DaprProtos.ConversationResponseAlpha2.newBuilder()
17471784
.addOutputs(DaprProtos.ConversationResultAlpha2.newBuilder()
17481785
.addChoices(DaprProtos.ConversationResultChoices.newBuilder()

0 commit comments

Comments
 (0)