Skip to content

Commit 4269f37

Browse files
committed
UT for ToolExecutionEligibilityChecker attempts
Signed-off-by: lambochen <[email protected]>
1 parent 8aaf132 commit 4269f37

File tree

1 file changed

+53
-0
lines changed

1 file changed

+53
-0
lines changed
Lines changed: 53 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,53 @@
1+
package org.springframework.ai.model.tool;
2+
3+
import org.junit.jupiter.api.Test;
4+
import org.springframework.ai.chat.messages.AssistantMessage;
5+
import org.springframework.ai.chat.model.ChatResponse;
6+
import org.springframework.ai.chat.model.Generation;
7+
8+
import java.util.List;
9+
10+
import static org.assertj.core.api.Assertions.assertThat;
11+
import static org.junit.jupiter.api.Assertions.*;
12+
13+
class ToolExecutionEligibilityCheckerTest {
14+
15+
@Test
16+
void isToolExecutionRequired() {
17+
ToolExecutionEligibilityChecker checker = new TestToolExecutionEligibilityChecker();
18+
19+
ToolCallingChatOptions promptOptions = ToolCallingChatOptions.builder().build();
20+
ChatResponse chatResponse = new ChatResponse(List.of(new Generation(new AssistantMessage("test"))));
21+
promptOptions.setInternalToolExecutionMaxAttempts(2);
22+
23+
assertThat(checker.isToolExecutionRequired(promptOptions, chatResponse, 1)).isTrue();
24+
assertThat(checker.isToolExecutionRequired(promptOptions, chatResponse, 2)).isTrue();
25+
26+
// attempts value is oversize
27+
assertThat(checker.isToolExecutionRequired(promptOptions, chatResponse, 3)).isFalse();
28+
}
29+
30+
@Test
31+
void isInternalToolExecutionEnabled() {
32+
33+
ToolExecutionEligibilityChecker checker = new TestToolExecutionEligibilityChecker();
34+
35+
ToolCallingChatOptions promptOptions = ToolCallingChatOptions.builder().build();
36+
promptOptions.setInternalToolExecutionMaxAttempts(2);
37+
38+
assertThat(checker.isInternalToolExecutionEnabled(promptOptions, 1)).isTrue();
39+
assertThat(checker.isInternalToolExecutionEnabled(promptOptions, 2)).isTrue();
40+
41+
// attempts value is oversize
42+
assertThat(checker.isInternalToolExecutionEnabled(promptOptions, 3)).isFalse();
43+
44+
}
45+
46+
class TestToolExecutionEligibilityChecker implements ToolExecutionEligibilityChecker {
47+
48+
@Override
49+
public Boolean apply(ChatResponse chatResponse) {
50+
return true;
51+
}
52+
}
53+
}

0 commit comments

Comments
 (0)