Skip to content

Commit ed917fd

Browse files
alxkmscionaltera
authored andcommitted
test: Enhance test cases for VectorStoreChatMemoryAdvisor builder (spring-projects#3985)
Signed-off-by: Alex Klimenko <[email protected]> # Conflicts: # advisors/spring-ai-advisors-vector-store/src/test/java/org/springframework/ai/chat/client/advisor/vectorstore/VectorStoreChatMemoryAdvisorTests.java
1 parent 96e7b38 commit ed917fd

File tree

1 file changed

+115
-0
lines changed

1 file changed

+115
-0
lines changed

advisors/spring-ai-advisors-vector-store/src/test/java/org/springframework/ai/chat/client/advisor/vectorstore/VectorStoreChatMemoryAdvisorTests.java

Lines changed: 115 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,8 +19,11 @@
1919
import org.junit.jupiter.api.Test;
2020
import org.mockito.Mockito;
2121

22+
import org.springframework.ai.chat.prompt.PromptTemplate;
2223
import org.springframework.ai.vectorstore.VectorStore;
24+
import reactor.core.scheduler.Scheduler;
2325

26+
import static org.assertj.core.api.Assertions.assertThat;
2427
import static org.assertj.core.api.Assertions.assertThatThrownBy;
2528

2629
/**
@@ -101,4 +104,116 @@ void whenDefaultSimilarityThresholdIsLessThanZeroThenThrow() {
101104
.hasMessageContaining("similarityThreshold must be equal to or greater than 0");
102105
}
103106

107+
@Test
108+
void whenBuilderWithValidVectorStoreThenSuccess() {
109+
VectorStore vectorStore = Mockito.mock(VectorStore.class);
110+
111+
VectorStoreChatMemoryAdvisor advisor = VectorStoreChatMemoryAdvisor.builder(vectorStore).build();
112+
113+
assertThat(advisor).isNotNull();
114+
}
115+
116+
@Test
117+
void whenBuilderWithAllValidParametersThenSuccess() {
118+
VectorStore vectorStore = Mockito.mock(VectorStore.class);
119+
Scheduler scheduler = Mockito.mock(Scheduler.class);
120+
PromptTemplate systemPromptTemplate = Mockito.mock(PromptTemplate.class);
121+
122+
VectorStoreChatMemoryAdvisor advisor = VectorStoreChatMemoryAdvisor.builder(vectorStore)
123+
.conversationId("test-conversation")
124+
.scheduler(scheduler)
125+
.systemPromptTemplate(systemPromptTemplate)
126+
.defaultTopK(5)
127+
.build();
128+
129+
assertThat(advisor).isNotNull();
130+
}
131+
132+
@Test
133+
void whenDefaultConversationIdIsBlankThenThrow() {
134+
VectorStore vectorStore = Mockito.mock(VectorStore.class);
135+
136+
assertThatThrownBy(() -> VectorStoreChatMemoryAdvisor.builder(vectorStore).conversationId(" ").build())
137+
.isInstanceOf(IllegalArgumentException.class)
138+
.hasMessageContaining("defaultConversationId cannot be null or empty");
139+
}
140+
141+
@Test
142+
void whenBuilderWithValidConversationIdThenSuccess() {
143+
VectorStore vectorStore = Mockito.mock(VectorStore.class);
144+
145+
VectorStoreChatMemoryAdvisor advisor = VectorStoreChatMemoryAdvisor.builder(vectorStore)
146+
.conversationId("valid-id")
147+
.build();
148+
149+
assertThat(advisor).isNotNull();
150+
}
151+
152+
@Test
153+
void whenBuilderWithValidTopKThenSuccess() {
154+
VectorStore vectorStore = Mockito.mock(VectorStore.class);
155+
156+
VectorStoreChatMemoryAdvisor advisor = VectorStoreChatMemoryAdvisor.builder(vectorStore)
157+
.defaultTopK(10)
158+
.build();
159+
160+
assertThat(advisor).isNotNull();
161+
}
162+
163+
@Test
164+
void whenBuilderWithMinimumTopKThenSuccess() {
165+
VectorStore vectorStore = Mockito.mock(VectorStore.class);
166+
167+
VectorStoreChatMemoryAdvisor advisor = VectorStoreChatMemoryAdvisor.builder(vectorStore).defaultTopK(1).build();
168+
169+
assertThat(advisor).isNotNull();
170+
}
171+
172+
@Test
173+
void whenBuilderWithLargeTopKThenSuccess() {
174+
VectorStore vectorStore = Mockito.mock(VectorStore.class);
175+
176+
VectorStoreChatMemoryAdvisor advisor = VectorStoreChatMemoryAdvisor.builder(vectorStore)
177+
.defaultTopK(1000)
178+
.build();
179+
180+
assertThat(advisor).isNotNull();
181+
}
182+
183+
@Test
184+
void whenBuilderCalledMultipleTimesWithSameVectorStoreThenSuccess() {
185+
VectorStore vectorStore = Mockito.mock(VectorStore.class);
186+
187+
VectorStoreChatMemoryAdvisor advisor1 = VectorStoreChatMemoryAdvisor.builder(vectorStore).build();
188+
VectorStoreChatMemoryAdvisor advisor2 = VectorStoreChatMemoryAdvisor.builder(vectorStore).build();
189+
190+
assertThat(advisor1).isNotNull();
191+
assertThat(advisor2).isNotNull();
192+
assertThat(advisor1).isNotSameAs(advisor2);
193+
}
194+
195+
@Test
196+
void whenBuilderWithCustomSchedulerThenSuccess() {
197+
VectorStore vectorStore = Mockito.mock(VectorStore.class);
198+
Scheduler customScheduler = Mockito.mock(Scheduler.class);
199+
200+
VectorStoreChatMemoryAdvisor advisor = VectorStoreChatMemoryAdvisor.builder(vectorStore)
201+
.scheduler(customScheduler)
202+
.build();
203+
204+
assertThat(advisor).isNotNull();
205+
}
206+
207+
@Test
208+
void whenBuilderWithCustomSystemPromptTemplateThenSuccess() {
209+
VectorStore vectorStore = Mockito.mock(VectorStore.class);
210+
PromptTemplate customTemplate = Mockito.mock(PromptTemplate.class);
211+
212+
VectorStoreChatMemoryAdvisor advisor = VectorStoreChatMemoryAdvisor.builder(vectorStore)
213+
.systemPromptTemplate(customTemplate)
214+
.build();
215+
216+
assertThat(advisor).isNotNull();
217+
}
218+
104219
}

0 commit comments

Comments
 (0)