Skip to content

Commit a376869

Browse files
authored
test: Enhance test coverage for EmbeddingModelObservationContext (#4157)
* test: Enhance test coverage for EmbeddingModelObservationContext Signed-off-by: Oleksandr Klymenko <[email protected]>
1 parent 919ac27 commit a376869

File tree

1 file changed

+77
-1
lines changed

1 file changed

+77
-1
lines changed

spring-ai-model/src/test/java/org/springframework/ai/embedding/observation/EmbeddingModelObservationContextTests.java

Lines changed: 77 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@
2525
import org.springframework.ai.embedding.EmbeddingRequest;
2626

2727
import static org.assertj.core.api.Assertions.assertThat;
28+
import static org.assertj.core.api.Assertions.assertThatThrownBy;
2829

2930
/**
3031
* Unit tests for {@link EmbeddingModelObservationContext}.
@@ -43,8 +44,83 @@ void whenMandatoryRequestOptionsThenReturn() {
4344
assertThat(observationContext).isNotNull();
4445
}
4546

47+
@Test
48+
void whenBuilderWithNullRequestThenThrowsException() {
49+
assertThatThrownBy(() -> EmbeddingModelObservationContext.builder()
50+
.embeddingRequest(null)
51+
.provider("test-provider")
52+
.build()).isInstanceOf(IllegalArgumentException.class).hasMessage("request cannot be null");
53+
}
54+
55+
@Test
56+
void whenBuilderWithNullProviderThenThrowsException() {
57+
var embeddingRequest = generateEmbeddingRequest(EmbeddingOptionsBuilder.builder().model("test-model").build());
58+
59+
assertThatThrownBy(() -> EmbeddingModelObservationContext.builder()
60+
.embeddingRequest(embeddingRequest)
61+
.provider(null)
62+
.build()).isInstanceOf(IllegalArgumentException.class).hasMessage("provider cannot be null or empty");
63+
}
64+
65+
@Test
66+
void whenBuilderWithEmptyProviderThenThrowsException() {
67+
var embeddingRequest = generateEmbeddingRequest(EmbeddingOptionsBuilder.builder().model("test-model").build());
68+
69+
assertThatThrownBy(() -> EmbeddingModelObservationContext.builder()
70+
.embeddingRequest(embeddingRequest)
71+
.provider("")
72+
.build()).isInstanceOf(IllegalArgumentException.class).hasMessage("provider cannot be null or empty");
73+
}
74+
75+
@Test
76+
void whenValidRequestAndProviderThenBuildsSuccessfully() {
77+
var embeddingRequest = generateEmbeddingRequest(EmbeddingOptionsBuilder.builder().model("test-model").build());
78+
79+
var observationContext = EmbeddingModelObservationContext.builder()
80+
.embeddingRequest(embeddingRequest)
81+
.provider("valid-provider")
82+
.build();
83+
84+
assertThat(observationContext).isNotNull();
85+
}
86+
87+
@Test
88+
void whenBuilderWithBlankProviderThenThrowsException() {
89+
var embeddingRequest = generateEmbeddingRequest(EmbeddingOptionsBuilder.builder().model("test-model").build());
90+
91+
assertThatThrownBy(() -> EmbeddingModelObservationContext.builder()
92+
.embeddingRequest(embeddingRequest)
93+
.provider(" ")
94+
.build()).isInstanceOf(IllegalArgumentException.class).hasMessage("provider cannot be null or empty");
95+
}
96+
97+
@Test
98+
void whenEmbeddingRequestWithNullOptionsThenBuildsSuccessfully() {
99+
var embeddingRequest = generateEmbeddingRequest(null);
100+
101+
var observationContext = EmbeddingModelObservationContext.builder()
102+
.embeddingRequest(embeddingRequest)
103+
.provider("test-provider")
104+
.build();
105+
106+
assertThat(observationContext).isNotNull();
107+
}
108+
109+
@Test
110+
void whenEmbeddingRequestWithEmptyInputListThenBuildsSuccessfully() {
111+
var embeddingRequest = new EmbeddingRequest(List.of(),
112+
EmbeddingOptionsBuilder.builder().model("test-model").build());
113+
114+
var observationContext = EmbeddingModelObservationContext.builder()
115+
.embeddingRequest(embeddingRequest)
116+
.provider("test-provider")
117+
.build();
118+
119+
assertThat(observationContext).isNotNull();
120+
}
121+
46122
private EmbeddingRequest generateEmbeddingRequest(EmbeddingOptions embeddingOptions) {
47-
return new EmbeddingRequest(List.of(), embeddingOptions);
123+
return new EmbeddingRequest(List.of("test input"), embeddingOptions);
48124
}
49125

50126
}

0 commit comments

Comments
 (0)