Skip to content

Commit 838801f

Browse files
alxkmilayaperumalg
authored andcommitted
test: Enhance PostgresMlEmbeddingOptions test coverage
Co-authored-by: Oleksandr Klymenko <alexanderklmn@gmail.com> Signed-off-by: Oleksandr Klymenko <alexanderklmn@gmail.com>
1 parent 4e0457e commit 838801f

File tree

1 file changed

+63
-0
lines changed

1 file changed

+63
-0
lines changed

models/spring-ai-postgresml/src/test/java/org/springframework/ai/postgresml/PostgresMlEmbeddingOptionsTests.java

Lines changed: 63 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -203,4 +203,67 @@ public void builderChaining() {
203203
assertThat(options.getKwargs()).doesNotContainKey("key1");
204204
}
205205

206+
@Test
207+
public void settersModifyOptions() {
208+
PostgresMlEmbeddingOptions options = new PostgresMlEmbeddingOptions();
209+
210+
options.setVectorType(PostgresMlEmbeddingModel.VectorType.PG_VECTOR);
211+
options.setKwargs(Map.of("key", "value"));
212+
options.setMetadataMode(org.springframework.ai.document.MetadataMode.NONE);
213+
214+
assertThat(options.getVectorType()).isEqualTo(PostgresMlEmbeddingModel.VectorType.PG_VECTOR);
215+
assertThat(options.getKwargs()).containsEntry("key", "value");
216+
assertThat(options.getMetadataMode()).isEqualTo(org.springframework.ai.document.MetadataMode.NONE);
217+
}
218+
219+
@Test
220+
public void getModelReturnsNull() {
221+
PostgresMlEmbeddingOptions options = PostgresMlEmbeddingOptions.builder().build();
222+
223+
assertThat(options.getModel()).isNull();
224+
}
225+
226+
@Test
227+
public void getDimensionsReturnsNull() {
228+
PostgresMlEmbeddingOptions options = PostgresMlEmbeddingOptions.builder().build();
229+
230+
assertThat(options.getDimensions()).isNull();
231+
}
232+
233+
@Test
234+
public void builderReturnsSameInstance() {
235+
PostgresMlEmbeddingOptions.Builder builder = PostgresMlEmbeddingOptions.builder().transformer("model-1");
236+
237+
PostgresMlEmbeddingOptions options1 = builder.build();
238+
PostgresMlEmbeddingOptions options2 = builder.build();
239+
240+
// Builder returns the same instance on multiple build() calls
241+
assertThat(options1).isSameAs(options2);
242+
assertThat(options1.getTransformer()).isEqualTo(options2.getTransformer());
243+
}
244+
245+
@Test
246+
public void modifyingBuilderAfterBuildAffectsPreviousInstance() {
247+
PostgresMlEmbeddingOptions.Builder builder = PostgresMlEmbeddingOptions.builder().transformer("model-1");
248+
249+
PostgresMlEmbeddingOptions options1 = builder.build();
250+
251+
// Modifying builder after build
252+
builder.transformer("model-2");
253+
PostgresMlEmbeddingOptions options2 = builder.build();
254+
255+
// Both instances are the same and have the updated value
256+
assertThat(options1).isSameAs(options2);
257+
assertThat(options1.getTransformer()).isEqualTo("model-2");
258+
assertThat(options2.getTransformer()).isEqualTo("model-2");
259+
}
260+
261+
@Test
262+
public void setAdditionalParametersAcceptsNull() {
263+
PostgresMlEmbeddingOptions options = new PostgresMlEmbeddingOptions();
264+
options.setKwargs(null);
265+
266+
assertThat(options.getKwargs()).isNull();
267+
}
268+
206269
}

0 commit comments

Comments
 (0)