2525import org .springframework .ai .embedding .EmbeddingRequest ;
2626
2727import 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