@@ -238,6 +238,49 @@ void convertTypeReferenceArrayWithJsonAnnotations() {
238238 assertThat (testClass .get (0 ).getSomeString ()).isEqualTo ("some value" );
239239 }
240240
241+ @ Test
242+ void convertWithThinkingTags () {
243+ var converter = new BeanOutputConverter <>(TestClass .class );
244+ String textWithThinkingTags = "<thinking>This is my reasoning process...</thinking>{ \" someString\" : \" some value\" }" ;
245+ var testClass = converter .convert (textWithThinkingTags );
246+ assertThat (testClass .getSomeString ()).isEqualTo ("some value" );
247+ }
248+
249+ @ Test
250+ void convertWithThinkingTagsMultiline () {
251+ var converter = new BeanOutputConverter <>(TestClass .class );
252+ String textWithThinkingTags = """
253+ <thinking>
254+ This is my reasoning process
255+ spanning multiple lines
256+ </thinking>
257+ { "someString": "some value" }
258+ """ ;
259+ var testClass = converter .convert (textWithThinkingTags );
260+ assertThat (testClass .getSomeString ()).isEqualTo ("some value" );
261+ }
262+
263+ @ Test
264+ void convertWithThinkingTagsAndMarkdownCodeBlock () {
265+ var converter = new BeanOutputConverter <>(TestClass .class );
266+ String textWithThinkingTags = """
267+ <thinking>This is my reasoning process...</thinking>
268+ ```json
269+ { "someString": "some value" }
270+ ```
271+ """ ;
272+ var testClass = converter .convert (textWithThinkingTags );
273+ assertThat (testClass .getSomeString ()).isEqualTo ("some value" );
274+ }
275+
276+ @ Test
277+ void convertWithMultipleThinkingTags () {
278+ var converter = new BeanOutputConverter <>(TestClass .class );
279+ String textWithThinkingTags = "<thinking>First thought</thinking><thinking>Second thought</thinking>{ \" someString\" : \" some value\" }" ;
280+ var testClass = converter .convert (textWithThinkingTags );
281+ assertThat (testClass .getSomeString ()).isEqualTo ("some value" );
282+ }
283+
241284 }
242285
243286 // @checkstyle:off RegexpSinglelineJavaCheck
0 commit comments