Skip to content

Commit 99733f4

Browse files
authored
test: improve coverage PgVectorEmbeddingDimensionsTests (#3907)
Enhances PgVectorEmbeddingDimensionsTests with additional test cases covering edge scenarios: - Embedding model returning zero/negative dimensions - Explicitly setting zero/negative dimensions via builder - Improved test structure with Given-When-Then comments - Ensures all code paths in embeddingDimensions() method are properly tested. Signed-off-by: alxkm <[email protected]>
1 parent 0715af2 commit 99733f4

File tree

1 file changed

+56
-7
lines changed

1 file changed

+56
-7
lines changed

vector-stores/spring-ai-pgvector-store/src/test/java/org/springframework/ai/vectorstore/pgvector/PgVectorEmbeddingDimensionsTests.java

Lines changed: 56 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -58,25 +58,74 @@ public void explicitlySetDimensions() {
5858

5959
@Test
6060
public void embeddingModelDimensions() {
61-
given(this.embeddingModel.dimensions()).willReturn(969);
61+
int expectedDimensions = 969;
62+
given(this.embeddingModel.dimensions()).willReturn(expectedDimensions);
6263

6364
PgVectorStore pgVectorStore = PgVectorStore.builder(this.jdbcTemplate, this.embeddingModel).build();
64-
var dim = pgVectorStore.embeddingDimensions();
65-
66-
assertThat(dim).isEqualTo(969);
65+
int actualDimensions = pgVectorStore.embeddingDimensions();
6766

67+
assertThat(actualDimensions).isEqualTo(expectedDimensions);
6868
verify(this.embeddingModel, only()).dimensions();
6969
}
7070

7171
@Test
7272
public void fallBackToDefaultDimensions() {
73+
given(this.embeddingModel.dimensions()).willThrow(new RuntimeException("Embedding model error"));
74+
75+
PgVectorStore pgVectorStore = PgVectorStore.builder(this.jdbcTemplate, this.embeddingModel).build();
76+
int actualDimensions = pgVectorStore.embeddingDimensions();
77+
78+
assertThat(actualDimensions).isEqualTo(PgVectorStore.OPENAI_EMBEDDING_DIMENSION_SIZE);
79+
verify(this.embeddingModel, only()).dimensions();
80+
}
81+
82+
@Test
83+
public void embeddingModelReturnsZeroDimensions() {
84+
given(this.embeddingModel.dimensions()).willReturn(0);
85+
86+
PgVectorStore pgVectorStore = PgVectorStore.builder(this.jdbcTemplate, this.embeddingModel).build();
87+
int actualDimensions = pgVectorStore.embeddingDimensions();
88+
89+
assertThat(actualDimensions).isEqualTo(PgVectorStore.OPENAI_EMBEDDING_DIMENSION_SIZE);
90+
verify(this.embeddingModel, only()).dimensions();
91+
}
7392

74-
given(this.embeddingModel.dimensions()).willThrow(new RuntimeException());
93+
@Test
94+
public void embeddingModelReturnsNegativeDimensions() {
95+
given(this.embeddingModel.dimensions()).willReturn(-5);
7596

7697
PgVectorStore pgVectorStore = PgVectorStore.builder(this.jdbcTemplate, this.embeddingModel).build();
77-
var dim = pgVectorStore.embeddingDimensions();
98+
int actualDimensions = pgVectorStore.embeddingDimensions();
99+
100+
assertThat(actualDimensions).isEqualTo(PgVectorStore.OPENAI_EMBEDDING_DIMENSION_SIZE);
101+
verify(this.embeddingModel, only()).dimensions();
102+
}
103+
104+
@Test
105+
public void explicitZeroDimensionsUsesEmbeddingModel() {
106+
int embeddingModelDimensions = 768;
107+
given(this.embeddingModel.dimensions()).willReturn(embeddingModelDimensions);
108+
109+
PgVectorStore pgVectorStore = PgVectorStore.builder(this.jdbcTemplate, this.embeddingModel)
110+
.dimensions(0)
111+
.build();
112+
int actualDimensions = pgVectorStore.embeddingDimensions();
113+
114+
assertThat(actualDimensions).isEqualTo(embeddingModelDimensions);
115+
verify(this.embeddingModel, only()).dimensions();
116+
}
117+
118+
@Test
119+
public void explicitNegativeDimensionsUsesEmbeddingModel() {
120+
int embeddingModelDimensions = 512;
121+
given(this.embeddingModel.dimensions()).willReturn(embeddingModelDimensions);
122+
123+
PgVectorStore pgVectorStore = PgVectorStore.builder(this.jdbcTemplate, this.embeddingModel)
124+
.dimensions(-1)
125+
.build();
126+
int actualDimensions = pgVectorStore.embeddingDimensions();
78127

79-
assertThat(dim).isEqualTo(PgVectorStore.OPENAI_EMBEDDING_DIMENSION_SIZE);
128+
assertThat(actualDimensions).isEqualTo(embeddingModelDimensions);
80129
verify(this.embeddingModel, only()).dimensions();
81130
}
82131

0 commit comments

Comments
 (0)