66import com .github .tomakehurst .wiremock .junit5 .WireMockExtension ;
77import com .sap .ai .sdk .core .AiCoreService ;
88import com .sap .ai .sdk .prompt .registry .model .PromptTemplateGetResponse ;
9+ import com .sap .ai .sdk .prompt .registry .model .ResponseFormatJsonObject ;
10+ import com .sap .ai .sdk .prompt .registry .model .ResponseFormatJsonSchema ;
11+ import com .sap .ai .sdk .prompt .registry .model .ResponseFormatText ;
912import com .sap .cloud .sdk .cloudplatform .connectivity .DefaultHttpDestination ;
1013import com .sap .cloud .sdk .cloudplatform .connectivity .HttpDestination ;
1114import java .util .UUID ;
15+ import org .junit .jupiter .api .BeforeEach ;
1216import org .junit .jupiter .api .Test ;
1317import org .junit .jupiter .api .extension .RegisterExtension ;
1418
15- public class PromptRegistryClientTest {
19+ class PromptRegistryClientTest {
1620 @ RegisterExtension
1721 private static final WireMockExtension WM =
1822 WireMockExtension .newInstance ().options (wireMockConfig ().dynamicPort ()).build ();
1923
20- private final HttpDestination DESTINATION = DefaultHttpDestination .builder (WM .baseUrl ()).build ();
21- private final AiCoreService SERVICE = new AiCoreService ().withBaseDestination (DESTINATION );
24+ private static PromptClient client ;
25+
26+ @ BeforeEach
27+ void setup () {
28+ final HttpDestination destination = DefaultHttpDestination .builder (WM .baseUrl ()).build ();
29+ final AiCoreService service = new AiCoreService ().withBaseDestination (destination );
30+ client = new PromptClient (service );
31+ }
2232
2333 @ Test
2434 void testPipelines () {
25- var client = new PromptClient (SERVICE );
26- var result = client .listPromptTemplates ();
35+ final var result = client .listPromptTemplates ();
2736 assertThat (result .getCount ()).isEqualTo (2 );
2837 assertThat (result .getResources ()).hasSize (2 );
29- PromptTemplateGetResponse template = result .getResources ().get (0 );
38+ final var template = result .getResources ().get (0 );
3039 assertThat (template .getId ()).isEqualTo (UUID .fromString ("312a9b9c-a532-4c1c-8852-bf75de887d74" ));
3140 assertThat (template .getName ()).isEqualTo ("prompt_template_name" );
3241 assertThat (template .getVersion ()).isEqualTo ("1.0.0" );
@@ -36,4 +45,54 @@ void testPipelines() {
3645 assertThat (template .isIsVersionHead ()).isEqualTo (true );
3746 assertThat (template .getSpec ()).isNull ();
3847 }
48+
49+ @ Test
50+ void testGetTemplateWithResponseFormatText () {
51+ final var uuid = UUID .fromString ("22117a64-9f2c-481b-9402-8acb66eeb707" );
52+ final PromptTemplateGetResponse response = client .getPromptTemplateByUuid (uuid );
53+
54+ assertThat (response .getName ()).isEqualTo ("test" );
55+ assertThat (response .getVersion ()).isEqualTo ("0.0.1" );
56+ assertThat (response .getScenario ()).isEqualTo ("test-retrival" );
57+ assertThat (response .getSpec ()).isNotNull ();
58+ assertThat (response .getSpec ().getResponseFormat ()).isInstanceOf (ResponseFormatText .class );
59+
60+ final var format = (ResponseFormatText ) response .getSpec ().getResponseFormat ();
61+ assertThat (format .getType ()).isEqualTo (ResponseFormatText .TypeEnum .TEXT );
62+ }
63+
64+ @ Test
65+ void testGetTemplateWithResponseFormatJsonObject () {
66+ final var uuid = UUID .fromString ("21cb1358-0bf1-4f43-870b-00f14d0f9f16" );
67+ final var response = client .getPromptTemplateByUuid (uuid );
68+
69+ assertThat (response .getName ()).isEqualTo ("test" );
70+ assertThat (response .getVersion ()).isEqualTo ("0.0.1" );
71+ assertThat (response .getScenario ()).isEqualTo ("test-retrival" );
72+ assertThat (response .getSpec ()).isNotNull ();
73+ assertThat (response .getSpec ().getResponseFormat ()).isInstanceOf (ResponseFormatJsonObject .class );
74+
75+ final var format = (ResponseFormatJsonObject ) response .getSpec ().getResponseFormat ();
76+ assertThat (format .getType ()).isEqualTo (ResponseFormatJsonObject .TypeEnum .JSON_OBJECT );
77+ }
78+
79+ @ Test
80+ void testGetTemplateWithResponseFormatJsonSchema () {
81+ final var uuid = UUID .fromString ("0f79fec4-ae07-4c35-96e3-df7f4a3f1df5" );
82+ final var response = client .getPromptTemplateByUuid (uuid );
83+
84+ assertThat (response .getName ()).isEqualTo ("test" );
85+ assertThat (response .getVersion ()).isEqualTo ("0.0.1" );
86+ assertThat (response .getScenario ()).isEqualTo ("test-retrival" );
87+ assertThat (response .getSpec ()).isNotNull ();
88+ assertThat (response .getSpec ().getResponseFormat ()).isInstanceOf (ResponseFormatJsonSchema .class );
89+
90+ final var format = (ResponseFormatJsonSchema ) response .getSpec ().getResponseFormat ();
91+ assertThat (format .getType ()).isEqualTo (ResponseFormatJsonSchema .TypeEnum .JSON_SCHEMA );
92+ assertThat (format .getJsonSchema ()).isNotNull ();
93+ assertThat (format .getJsonSchema ().getName ()).isEqualTo ("TestSchema" );
94+ assertThat (format .getJsonSchema ().getDescription ()).isEqualTo ("Test schema description" );
95+ assertThat (format .getJsonSchema ().isStrict ()).isFalse ();
96+ assertThat (format .getJsonSchema ().getSchema ()).isNotNull ();
97+ }
3998}
0 commit comments