Skip to content

Commit d016b10

Browse files
alxkmilayaperumalg
authored andcommitted
test: add test coverage for MilvusSearchRequest builder
Co-authored-by: Oleksandr Klymenko <[email protected]> Signed-off-by: Oleksandr Klymenko <[email protected]>
1 parent f2d57cc commit d016b10

File tree

1 file changed

+68
-0
lines changed

1 file changed

+68
-0
lines changed

vector-stores/spring-ai-milvus-store/src/test/java/org/springframework/ai/vectorstore/milvus/MilvusSearchRequestTest.java

Lines changed: 68 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -79,4 +79,72 @@ void shouldAllowSettingSearchParamsJsonIndependently() {
7979
assertThat(request.getSearchParamsJson()).isEqualTo(searchParamsJson);
8080
}
8181

82+
@Test
83+
void shouldBuildRequestWithOnlyQuery() {
84+
String query = "test query";
85+
MilvusSearchRequest request = MilvusSearchRequest.milvusBuilder().query(query).build();
86+
87+
assertThat(request.getQuery()).isEqualTo(query);
88+
assertThat(request.getTopK()).isEqualTo(SearchRequest.DEFAULT_TOP_K);
89+
assertThat(request.getSimilarityThreshold()).isEqualTo(SearchRequest.SIMILARITY_THRESHOLD_ACCEPT_ALL);
90+
assertThat(request.getNativeExpression()).isNull();
91+
}
92+
93+
@Test
94+
void shouldBuildRequestWithOnlyTopK() {
95+
int topK = 1;
96+
MilvusSearchRequest request = MilvusSearchRequest.milvusBuilder().topK(topK).build();
97+
98+
assertThat(request.getQuery()).isEmpty();
99+
assertThat(request.getTopK()).isEqualTo(topK);
100+
assertThat(request.getSimilarityThreshold()).isEqualTo(SearchRequest.SIMILARITY_THRESHOLD_ACCEPT_ALL);
101+
}
102+
103+
@Test
104+
void shouldBuildRequestWithOnlySimilarityThreshold() {
105+
double threshold = 0.95;
106+
MilvusSearchRequest request = MilvusSearchRequest.milvusBuilder().similarityThreshold(threshold).build();
107+
108+
assertThat(request.getQuery()).isEmpty();
109+
assertThat(request.getTopK()).isEqualTo(SearchRequest.DEFAULT_TOP_K);
110+
assertThat(request.getSimilarityThreshold()).isEqualTo(threshold);
111+
}
112+
113+
@Test
114+
void shouldHandleEmptyQuery() {
115+
MilvusSearchRequest request = MilvusSearchRequest.milvusBuilder().query("").topK(1).build();
116+
117+
assertThat(request.getQuery()).isEmpty();
118+
assertThat(request.getTopK()).isEqualTo(1);
119+
}
120+
121+
@Test
122+
void shouldHandleComplexNativeExpression() {
123+
String complexExpression = "(level > 1 AND type = 'type1') OR (mode IN ['mode1'] AND value >= 0.1)";
124+
MilvusSearchRequest request = MilvusSearchRequest.milvusBuilder().nativeExpression(complexExpression).build();
125+
126+
assertThat(request.getNativeExpression()).isEqualTo(complexExpression);
127+
}
128+
129+
@Test
130+
void shouldHandleComplexSearchParamsJson() {
131+
String complexJson = "{\"values\":{\"value1\":1,\"value2\":1.1},\"value\":{\"value\":1,\"value\":1}}";
132+
MilvusSearchRequest request = MilvusSearchRequest.milvusBuilder().searchParamsJson(complexJson).build();
133+
134+
assertThat(request.getSearchParamsJson()).isEqualTo(complexJson);
135+
}
136+
137+
@Test
138+
void shouldUpdateFieldsWithMultipleCalls() {
139+
MilvusSearchRequest request = MilvusSearchRequest.milvusBuilder()
140+
.query("initial")
141+
.query("updated")
142+
.topK(1)
143+
.topK(1)
144+
.build();
145+
146+
assertThat(request.getQuery()).isEqualTo("updated");
147+
assertThat(request.getTopK()).isEqualTo(1);
148+
}
149+
82150
}

0 commit comments

Comments
 (0)