File tree Expand file tree Collapse file tree 2 files changed +65
-0
lines changed 
main/kotlin/org/springframework/ai/chat/client 
test/kotlin/org/springframework/ai/chat/client Expand file tree Collapse file tree 2 files changed +65
-0
lines changed Original file line number Diff line number Diff line change 1+ /* 
2+  * Copyright 2023-2024 the original author or authors. 
3+  * 
4+  * Licensed under the Apache License, Version 2.0 (the "License"); 
5+  * you may not use this file except in compliance with the License. 
6+  * You may obtain a copy of the License at 
7+  * 
8+  *      https://www.apache.org/licenses/LICENSE-2.0 
9+  * 
10+  * Unless required by applicable law or agreed to in writing, software 
11+  * distributed under the License is distributed on an "AS IS" BASIS, 
12+  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 
13+  * See the License for the specific language governing permissions and 
14+  * limitations under the License. 
15+  */  
16+ 
17+ package  org.springframework.ai.chat.client 
18+ 
19+ /* *
20+  * Extension for [ChatClient] providing a `entity<Foo>()` variant. 
21+  * 
22+  * @author Josh Long 
23+  */  
24+ 
25+ inline  fun  <reified  T > ChatClient.CallResponseSpec.entity (): T  =  entity(T ::class .java) as  T 
Original file line number Diff line number Diff line change 1+ /* 
2+  * Copyright 2023-2024 the original author or authors. 
3+  * 
4+  * Licensed under the Apache License, Version 2.0 (the "License"); 
5+  * you may not use this file except in compliance with the License. 
6+  * You may obtain a copy of the License at 
7+  * 
8+  *      https://www.apache.org/licenses/LICENSE-2.0 
9+  * 
10+  * Unless required by applicable law or agreed to in writing, software 
11+  * distributed under the License is distributed on an "AS IS" BASIS, 
12+  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 
13+  * See the License for the specific language governing permissions and 
14+  * limitations under the License. 
15+  */  
16+ 
17+ package  org.springframework.ai.chat.client 
18+ 
19+ import  io.mockk.every 
20+ import  io.mockk.mockk 
21+ import  io.mockk.verify 
22+ import  org.junit.jupiter.api.Test 
23+ 
24+ class  ChatClientExtensionsTests  {
25+ 
26+ 	private  val  crs =  mockk<ChatClient .CallResponseSpec >()
27+ 
28+ 	data class  Joke (val  setup :  String , val  punchline :  String )
29+ 
30+ 	@Test
31+ 	fun  withEntityType () {
32+ 		val  joke =  Joke (
33+ 			setup =  " Why did the scarecrow win an award?" 
34+ 			punchline =  " Because he was outstanding in his field!" 
35+ 		)
36+ 		every { crs.entity(any<Class <* >>()) } returns joke 
37+ 		crs.entity<Joke >()
38+ 		verify { crs.entity(Joke ::class .java) }
39+ 	}
40+ }
 
 
   
 
     
   
   
          
    
    
     
    
      
     
     
    You can’t perform that action at this time.
  
 
    
  
    
      
        
     
       
      
     
   
 
    
    
  
 
  
 
     
    
0 commit comments