Skip to content

Commit 40f1e22

Browse files
committed
Refactor test
1 parent d26ecbf commit 40f1e22

File tree

1 file changed

+35
-52
lines changed

1 file changed

+35
-52
lines changed

foundation-models/openai/src/test/java/com/sap/ai/sdk/foundationmodels/openai/OpenAiClientGeneratedTest.java

Lines changed: 35 additions & 52 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@
2525
import static org.mockito.Mockito.times;
2626
import static org.mockito.Mockito.when;
2727

28+
import com.sap.ai.sdk.foundationmodels.openai.generated.model.ChatCompletionMessageToolCall;
2829
import com.sap.ai.sdk.foundationmodels.openai.generated.model.ChatCompletionResponseMessageRole;
2930
import com.sap.ai.sdk.foundationmodels.openai.generated.model.ChatCompletionTool;
3031
import com.sap.ai.sdk.foundationmodels.openai.generated.model.ContentFilterPromptResults;
@@ -527,27 +528,16 @@ void chatCompletionTool() {
527528

528529
assertThat(response).isNotNull();
529530
assertThat(response.getChoices()).hasSize(1);
530-
assertThat(response.getChoices().get(0).getFinishReason()).isEqualTo(STOP);
531-
assertThat(response.getChoices().get(0).getMessage().getRole())
532-
.isEqualTo(ChatCompletionResponseMessageRole.ASSISTANT);
533-
assertThat(response.getChoices().get(0).getMessage().getToolCalls()).hasSize(1);
534-
assertThat(response.getChoices().get(0).getMessage().getToolCalls().get(0).getId())
535-
.isEqualTo("call_CUYGJf2j7FRWJMHT3PN3aGxK");
536-
assertThat(response.getChoices().get(0).getMessage().getToolCalls().get(0).getType())
537-
.isEqualTo(FUNCTION);
538-
assertThat(
539-
response.getChoices().get(0).getMessage().getToolCalls().get(0).getFunction().getName())
540-
.isEqualTo("fibonacci");
541-
assertThat(
542-
response
543-
.getChoices()
544-
.get(0)
545-
.getMessage()
546-
.getToolCalls()
547-
.get(0)
548-
.getFunction()
549-
.getArguments())
550-
.isEqualTo("{\"N\":12}");
531+
var choice = response.getChoices().get(0);
532+
assertThat(choice.getFinishReason()).isEqualTo(STOP);
533+
var message = choice.getMessage();
534+
assertThat(message.getRole()).isEqualTo(ChatCompletionResponseMessageRole.ASSISTANT);
535+
assertThat(message.getToolCalls()).hasSize(1);
536+
var toolCall = message.getToolCalls().get(0);
537+
assertThat(toolCall.getId()).isEqualTo("call_CUYGJf2j7FRWJMHT3PN3aGxK");
538+
assertThat(toolCall.getType()).isEqualTo(FUNCTION);
539+
assertThat(toolCall.getFunction().getName()).isEqualTo("fibonacci");
540+
assertThat(toolCall.getFunction().getArguments()).isEqualTo("{\"N\":12}");
551541

552542
verify(
553543
postRequestedFor(anyUrl())
@@ -585,43 +575,36 @@ void chatCompletionTool() {
585575
}
586576

587577
@Test
588-
void chatCompletionResponseGetMessage() {
578+
void chatCompletionGetMessage() {
589579
stubForChatCompletion();
580+
final var textRequest = new OpenAiChatCompletionRequest("Some text");
581+
582+
final var textResponse = client.chatCompletion(textRequest);
583+
final var message = textResponse.getMessage();
590584

591-
final var response = client.chatCompletion(new OpenAiChatCompletionRequest("Some text"));
592-
final var simpleMessage = response.getMessage();
585+
assertThat(message).isNotNull();
586+
assertThat(message.toolCalls()).isEmpty();
587+
assertThat(message.content().items()).hasSize(1);
593588

594-
assertThat(simpleMessage).isNotNull();
595-
assertThat(simpleMessage.toolCalls()).isEmpty();
596-
assertThat(simpleMessage.content().items()).hasSize(1);
597-
assertThat(simpleMessage.content().items().get(0)).isInstanceOf(OpenAiTextItem.class);
598-
assertThat(((OpenAiTextItem) simpleMessage.content().items().get(0)).text())
589+
final var textItem = message.content().items().get(0);
590+
assertThat(textItem).isInstanceOf(OpenAiTextItem.class);
591+
assertThat(((OpenAiTextItem) textItem).text())
599592
.isEqualTo(
600593
"I'm an AI and cannot answer that question as beauty is subjective and varies from person to person.");
594+
}
601595

596+
@Test
597+
void chatCompletionToolCallGetMessage() {
602598
stubForChatCompletionTool();
603-
604-
final var responseWithToolCall =
605-
client.chatCompletion(new OpenAiChatCompletionRequest("Some tool request"));
606-
var messageWithToolCall = responseWithToolCall.getMessage();
607-
608-
assertThat(messageWithToolCall).isNotNull();
609-
assertThat(messageWithToolCall.content().items()).hasSize(0);
610-
OpenAiFunctionCall functionCallItem =
611-
(OpenAiFunctionCall) messageWithToolCall.toolCalls().get(0);
612-
assertThat(functionCallItem.getId()).isEqualTo("call_CUYGJf2j7FRWJMHT3PN3aGxK");
613-
assertThat(functionCallItem.getName()).isEqualTo("fibonacci");
614-
assertThat(functionCallItem.getArguments()).isEqualTo("{\"N\":12}");
615-
616-
// case: both content and tool calls are present
617-
responseWithToolCall.getChoice().getMessage().content("Some content");
618-
var messageWithToolCallsAndContent = responseWithToolCall.getMessage();
619-
620-
assertThat(messageWithToolCallsAndContent).isNotNull();
621-
assertThat(messageWithToolCallsAndContent.content().items()).hasSize(1);
622-
assertThat(messageWithToolCallsAndContent.content().items().get(0))
623-
.isInstanceOf(OpenAiTextItem.class);
624-
assertThat(messageWithToolCallsAndContent.toolCalls().get(0))
625-
.isInstanceOf(OpenAiFunctionCall.class);
599+
final var toolRequest = new OpenAiChatCompletionRequest("Some tool request");
600+
final var toolResponse = client.chatCompletion(toolRequest);
601+
final var message = toolResponse.getMessage();
602+
603+
assertThat(message).isNotNull();
604+
assertThat(message.content().items()).isEmpty();
605+
final var toolCall = (OpenAiFunctionCall) message.toolCalls().get(0);
606+
assertThat(toolCall.getId()).isEqualTo("call_CUYGJf2j7FRWJMHT3PN3aGxK");
607+
assertThat(toolCall.getName()).isEqualTo("fibonacci");
608+
assertThat(toolCall.getArguments()).isEqualTo("{\"N\":12}");
626609
}
627610
}

0 commit comments

Comments
 (0)