@@ -50,6 +50,9 @@ void verifyTool() {
5050 ).build ();
5151 CallToolResult result = client .callTool (request );
5252 assertFalse (result .isError (), result .toString ());
53+ var content = (Map <?, ?>) result .structuredContent ();
54+ assertEquals (true , content .get ("success" ));
55+ assertTrue (((String ) content .get ("output" )).contains ("Correct! Passed Verification." ));
5356 }
5457
5558 @ Test
@@ -59,6 +62,11 @@ void getDiagnosticsTool() {
5962 ).build ();
6063 CallToolResult result = client .callTool (request );
6164 assertFalse (result .isError (), result .toString ());
65+ var content = (Map <?, ?>) result .structuredContent ();
66+ assertEquals (false , content .get ("success" ));
67+ var diagnostic = (Map <?, ?>) ((List <?>) content .get ("errors" )).getFirst ();
68+ assertEquals ("RefinementError" , diagnostic .get ("type" ));
69+ assertFalse (((List <?>) diagnostic .get ("counterexample" )).isEmpty ());
6270 }
6371
6472 @ Test
@@ -68,6 +76,8 @@ void getLocalsTool() {
6876 ).build ();
6977 CallToolResult result = client .callTool (request );
7078 assertFalse (result .isError (), result .toString ());
79+ var content = (Map <?, ?>) result .structuredContent ();
80+ assertTrue (((List <?>) content .get ("variables" )).stream ().anyMatch (variable -> "input" .equals (((Map <?, ?>) variable ).get ("name" ))));
7181 }
7282
7383 @ Test
@@ -77,6 +87,9 @@ void getGlobalsTool() {
7787 ).build ();
7888 CallToolResult result = client .callTool (request );
7989 assertFalse (result .isError (), result .toString ());
90+ var content = (Map <?, ?>) result .structuredContent ();
91+ var alias = (Map <?, ?>) ((List <?>) content .get ("aliases" )).getFirst ();
92+ assertEquals ("Positive" , alias .get ("name" ));
8093 }
8194
8295 @ Test
@@ -86,6 +99,10 @@ void getContractsTool() {
8699 ).build ();
87100 CallToolResult result = client .callTool (request );
88101 assertFalse (result .isError (), result .toString ());
102+ var content = (Map <?, ?>) result .structuredContent ();
103+ var contracts = (List <?>) content .get ("contracts" );
104+ assertEquals (1 , contracts .size ());
105+ assertEquals ("examples.Contracts.increment(int)" , ((Map <?, ?>) contracts .getFirst ()).get ("signature" ));
89106 }
90107
91108 @ Test
@@ -98,6 +115,9 @@ void checkValidityTool() {
98115 ).build ();
99116 CallToolResult result = client .callTool (request );
100117 assertFalse (result .isError (), result .toString ());
118+ var content = (Map <?, ?>) result .structuredContent ();
119+ assertEquals ("invalid" , content .get ("status" ));
120+ assertEquals (List .of (Map .of ("variable" , "x" , "value" , "0" )), content .get ("counterexample" ));
101121 }
102122
103123 @ Test
@@ -109,6 +129,9 @@ void checkSatisfiabilityTool() {
109129 ).build ();
110130 CallToolResult result = client .callTool (request );
111131 assertFalse (result .isError (), result .toString ());
132+ var content = (Map <?, ?>) result .structuredContent ();
133+ assertEquals ("sat" , content .get ("status" ));
134+ assertEquals (List .of (Map .of ("variable" , "x" , "value" , "11" )), content .get ("assignment" ));
112135 }
113136
114137 @ Test
@@ -118,6 +141,19 @@ void getStateMachineTool() {
118141 ).build ();
119142 CallToolResult result = client .callTool (request );
120143 assertFalse (result .isError (), result .toString ());
144+ var content = (Map <?, ?>) result .structuredContent ();
145+ var stateMachine = (Map <?, ?>) content .get ("stateMachine" );
146+ assertEquals ("examples.StateMachine" , stateMachine .get ("className" ));
147+ assertEquals (List .of ("open" , "closed" ), stateMachine .get ("states" ));
148+ }
149+
150+ @ Test
151+ void invalidInputReturnsToolError () {
152+ var result = client .callTool (CallToolRequest .builder ("verify" ).arguments (Map .of ()).build ());
153+ assertTrue (result .isError (), result .toString ());
154+ var content = (Map <?, ?>) result .structuredContent ();
155+ assertEquals (false , content .get ("success" ));
156+ assertEquals ("INVALID_INPUT" , ((Map <?, ?>) content .get ("error" )).get ("code" ));
121157 }
122158
123159 private static String examplePath (String example ) {
0 commit comments