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