Skip to content

Commit c8dc342

Browse files
committed
Add test for prompt copy
1 parent 79ce1c1 commit c8dc342

File tree

1 file changed

+20
-0
lines changed

1 file changed

+20
-0
lines changed

spring-ai-core/src/test/java/org/springframework/ai/prompt/PromptTests.java

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,11 +23,14 @@
2323
import org.assertj.core.api.Assertions;
2424
import org.junit.jupiter.api.Test;
2525

26+
import org.springframework.ai.chat.prompt.ChatOptions;
27+
import org.springframework.ai.chat.prompt.ChatOptionsBuilder;
2628
import org.springframework.ai.chat.prompt.Prompt;
2729
import org.springframework.ai.chat.prompt.PromptTemplate;
2830
import org.springframework.ai.chat.prompt.SystemPromptTemplate;
2931

3032
import static org.assertj.core.api.Assertions.assertThat;
33+
import static org.junit.Assert.assertNotSame;
3134

3235
@SuppressWarnings("unchecked")
3336
class PromptTests {
@@ -130,4 +133,21 @@ void testBadFormatOfTemplateString() {
130133
.hasMessage("The template string is not valid.");
131134
}
132135

136+
@Test
137+
public void testPromptCopy() {
138+
String template = "Hello, {name}! Your age is {age}.";
139+
Map<String, Object> model = new HashMap<>();
140+
model.put("name", "Alice");
141+
model.put("age", 30);
142+
PromptTemplate promptTemplate = new PromptTemplate(template, model);
143+
ChatOptions chatOptions = ChatOptionsBuilder.builder().withTemperature(0.5).withMaxTokens(100).build();
144+
145+
Prompt prompt = promptTemplate.create(model, chatOptions);
146+
147+
Prompt copiedPrompt = prompt.copy();
148+
assertNotSame(prompt, copiedPrompt);
149+
assertNotSame(prompt.getOptions(), copiedPrompt.getOptions());
150+
assertNotSame(prompt.getInstructions(), copiedPrompt.getInstructions());
151+
}
152+
133153
}

0 commit comments

Comments
 (0)