Skip to content

Commit f9f39d7

Browse files
committed
test signing
test signing test signing test signing no param after deployment test fix after deployment tests for illegal name
1 parent 7576891 commit f9f39d7

File tree

3 files changed

+18
-37
lines changed

3 files changed

+18
-37
lines changed

dev/io.openliberty.mcp.internal/src/io/openliberty/mcp/internal/McpCdiExtension.java

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -63,8 +63,10 @@ void afterDeploymentValidation(@Observes AfterDeploymentValidation afterDeployme
6363
private void reportOnToolArgEdgeCases(AfterDeploymentValidation afterDeploymentValidation) {
6464
StringBuilder sbBlankArgs = new StringBuilder("Blank arguments found in MCP Tool:");
6565
StringBuilder sbDuplicateArgs = new StringBuilder("Duplicate arguments found in MCP Tool:");
66+
StringBuilder sbIllegalArgs = new StringBuilder("Illegal arguments found in MCP Tool:");
6667
boolean blankArgumentsFound = false;
6768
boolean duplicateArgumentsFound = false;
69+
boolean illegalArgumentsFound = false;
6870

6971
for (ToolMetadata tool : tools.getAllTools()) {
7072
Map<String, ArgumentMetadata> arguments = tool.arguments();
@@ -76,6 +78,9 @@ private void reportOnToolArgEdgeCases(AfterDeploymentValidation afterDeploymentV
7678
} else if (arguments.get(argName).isDuplicate()) {
7779
sbDuplicateArgs.append("\n").append("Tool: " + tool.getToolQualifiedName() + " - Argument: " + argName);
7880
duplicateArgumentsFound = true;
81+
} else if (argName.equals(ToolMetadata.ILLEGAL_TOOL_ARG_NAME)) {
82+
sbIllegalArgs.append("\n").append("Tool: " + tool.getToolQualifiedName());
83+
illegalArgumentsFound = true;
7984
}
8085
}
8186
}
@@ -85,6 +90,9 @@ private void reportOnToolArgEdgeCases(AfterDeploymentValidation afterDeploymentV
8590
if (duplicateArgumentsFound) {
8691
afterDeploymentValidation.addDeploymentProblem(new Exception(sbDuplicateArgs.toString()));
8792
}
93+
if (illegalArgumentsFound) {
94+
afterDeploymentValidation.addDeploymentProblem(new Exception(sbIllegalArgs.toString()));
95+
}
8896
}
8997

9098
private void reportOnDuplicateTools(AfterDeploymentValidation afterDeploymentValidation) {

dev/io.openliberty.mcp.internal/src/io/openliberty/mcp/internal/ToolMetadata.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,8 @@ public record ToolMetadata(Tool annotation, Bean<?> bean, AnnotatedMethod<?> met
2929
String name, String title, String description,
3030
List<Class<? extends Throwable>> businessExceptions) {
3131

32+
public static final String ILLEGAL_TOOL_ARG_NAME = "<<<ILLEGAL NAME>>>";
33+
3234
public record ArgumentMetadata(Type type, int index, String description, boolean required, boolean isDuplicate) {}
3335

3436
public record SpecialArgumentMetadata(SpecialArgumentType.Resolution typeResolution, int index) {}
@@ -84,7 +86,7 @@ private static String resolveArgumentName(AnnotatedParameter<?> param, ToolArg a
8486
return param.getJavaParameter().getName();
8587
}
8688

87-
throw new IllegalStateException("Parameter name not set. Ensure that javac -parameter flag is enabled");
89+
return ILLEGAL_TOOL_ARG_NAME;
8890
}
8991

9092
private static List<SpecialArgumentMetadata> getSpecialArgumentList(AnnotatedMethod<?> method) {

dev/io.openliberty.mcp.internal_fat/fat/src/io/openliberty/mcp/internal/fat/tool/NoParamNameTest.java

Lines changed: 7 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -9,25 +9,18 @@
99
*******************************************************************************/
1010
package io.openliberty.mcp.internal.fat.tool;
1111

12-
import static com.ibm.websphere.simplicity.ShrinkHelper.DeployOptions.SERVER_ONLY;
12+
import java.util.List;
1313

14-
import org.jboss.shrinkwrap.api.ShrinkWrap;
15-
import org.jboss.shrinkwrap.api.spec.WebArchive;
16-
import org.json.JSONObject;
1714
import org.junit.AfterClass;
1815
import org.junit.BeforeClass;
1916
import org.junit.Test;
2017
import org.junit.runner.RunWith;
21-
import org.skyscreamer.jsonassert.JSONAssert;
22-
23-
import com.ibm.websphere.simplicity.ShrinkHelper;
2418

2519
import componenttest.annotation.Server;
2620
import componenttest.custom.junit.runner.FATRunner;
2721
import componenttest.topology.impl.LibertyServer;
2822
import componenttest.topology.utils.FATServletClient;
2923
import io.openliberty.mcp.internal.fat.noparamtool.NoParamTools;
30-
import io.openliberty.mcp.internal.fat.utils.HttpTestUtils;
3124

3225
@RunWith(FATRunner.class)
3326
public class NoParamNameTest extends FATServletClient {
@@ -36,40 +29,18 @@ public class NoParamNameTest extends FATServletClient {
3629

3730
@BeforeClass
3831
public static void setup() throws Exception {
39-
WebArchive war = ShrinkWrap.create(WebArchive.class, "toolTest.war").addPackage(NoParamTools.class.getPackage());
40-
41-
ShrinkHelper.exportDropinAppToServer(server, war, SERVER_ONLY);
42-
43-
server.startServer();
32+
ExpectedAppFailureValidator.deployAppToAssertFailure(server, "ExpectedNoParamNameFailureTest", NoParamTools.class.getPackage());
4433
}
4534

4635
@AfterClass
4736
public static void teardown() throws Exception {
48-
server.stopServer();
37+
server.stopServer(ExpectedAppFailureValidator.APP_START_FAILED_CODE);
4938
}
5039

5140
@Test
52-
public void testIllegalToolArgNameTool() throws Exception {
53-
String request = """
54-
{
55-
"jsonrpc": "2.0",
56-
"id": "2",
57-
"method": "tools/call",
58-
"params": {
59-
"name": "illegalToolArgNameTool",
60-
"arguments": {
61-
"input": "Hello"
62-
}
63-
}
64-
}
65-
""";
66-
67-
String response = HttpTestUtils.callMCP(server, "/toolTest", request);
68-
JSONObject jsonResponse = new JSONObject(response);
69-
70-
String expectedResponseString = """
71-
Exception thrown
72-
""";
73-
JSONAssert.assertEquals(expectedResponseString, response, true);
41+
public void testNoParamNameToolArg() throws Exception {
42+
String expectedErrorHeader = "Illegal arguments found in MCP Tool:";
43+
List<String> expectedErrorList = List.of("io.openliberty.mcp.internal.fat.noparamtool.NoParamTools.illegalToolArgNameTool");
44+
ExpectedAppFailureValidator.findAndAssertExpectedErrorsInLogs("Illegal Tool Arg: ", expectedErrorHeader, expectedErrorList, server);
7445
}
7546
}

0 commit comments

Comments
 (0)