@@ -178,6 +178,33 @@ public void testValidate_ElandTextEmbeddingModelValidationSucceedsAndDimensionsS
178178 );
179179 }
180180
181+ public void testValidate_ElandTextEmbeddingAndValidationReturnsInvalidResultsType () {
182+ var dimensions = randomIntBetween (1 , 10 );
183+ var mockInferenceServiceResults = mock (InferenceServiceResults .class );
184+ when (mockInferenceServiceResults .getWriteableName ()).thenReturn (randomAlphaOfLength (10 ));
185+ CustomElandEmbeddingModel customElandEmbeddingModel = createCustomElandEmbeddingModel (true , dimensions );
186+
187+ doAnswer (ans -> {
188+ ActionListener <InferenceServiceResults > responseListener = ans .getArgument (3 );
189+ responseListener .onResponse (mockInferenceServiceResults );
190+ return null ;
191+ }).when (mockServiceIntegrationValidator ).validate (eq (mockInferenceService ), any (), eq (TIMEOUT ), any ());
192+
193+ underTest .validate (mockInferenceService , customElandEmbeddingModel , TIMEOUT , mockActionListener );
194+
195+ verify (mockServiceIntegrationValidator ).validate (eq (mockInferenceService ), any (), eq (TIMEOUT ), any ());
196+ verify (mockActionListener ).delegateFailureAndWrap (any ());
197+ verify (mockActionListener ).onFailure (any (ElasticsearchStatusException .class ));
198+ verify (mockInferenceServiceResults ).getWriteableName ();
199+ verifyNoMoreInteractions (
200+ mockServiceIntegrationValidator ,
201+ mockInferenceService ,
202+ mockCustomElandEmbeddingModel ,
203+ mockActionListener ,
204+ mockInferenceServiceResults
205+ );
206+ }
207+
181208 public void testValidate_ElandTextEmbeddingModelDimensionsNotSetByUser () {
182209 var dimensions = randomIntBetween (1 , 10 );
183210 var mockInferenceServiceResults = mock (TextEmbeddingResults .class );
@@ -211,6 +238,32 @@ public void testValidate_ElandTextEmbeddingModelDimensionsNotSetByUser() {
211238 );
212239 }
213240
241+ public void testValidate_ElandTextEmbeddingModelAndEmbeddingSizeRetrievalThrowsException () {
242+ var mockInferenceServiceResults = mock (TextEmbeddingResults .class );
243+ when (mockInferenceServiceResults .getFirstEmbeddingSize ()).thenThrow (ElasticsearchStatusException .class );
244+ CustomElandEmbeddingModel customElandEmbeddingModel = createCustomElandEmbeddingModel (false , null );
245+
246+ doAnswer (ans -> {
247+ ActionListener <InferenceServiceResults > responseListener = ans .getArgument (3 );
248+ responseListener .onResponse (mockInferenceServiceResults );
249+ return null ;
250+ }).when (mockServiceIntegrationValidator ).validate (eq (mockInferenceService ), any (), eq (TIMEOUT ), any ());
251+
252+ underTest .validate (mockInferenceService , customElandEmbeddingModel , TIMEOUT , mockActionListener );
253+
254+ verify (mockServiceIntegrationValidator ).validate (eq (mockInferenceService ), any (), eq (TIMEOUT ), any ());
255+ verify (mockActionListener ).delegateFailureAndWrap (any ());
256+ verify (mockActionListener ).onFailure (any (ElasticsearchStatusException .class ));
257+ verify (mockInferenceServiceResults ).getFirstEmbeddingSize ();
258+ verifyNoMoreInteractions (
259+ mockServiceIntegrationValidator ,
260+ mockInferenceService ,
261+ mockCustomElandEmbeddingModel ,
262+ mockActionListener ,
263+ mockInferenceServiceResults
264+ );
265+ }
266+
214267 private CustomElandEmbeddingModel createCustomElandEmbeddingModel (boolean areDimensionsSetByUser , Integer dimensions ) {
215268 var mockServiceSettings = mock (CustomElandInternalTextEmbeddingServiceSettings .class );
216269 when (mockServiceSettings .modelId ()).thenReturn (randomAlphaOfLength (10 ));
0 commit comments