@@ -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