Improve BizTalk endpoint address detection

This commit is contained in:
2026-08-06 18:20:38 +02:00
parent ac51714a88
commit 26e6ea5aac
6 changed files with 116 additions and 21 deletions
@@ -405,6 +405,31 @@ namespace BizTalkCheckmkPulse.Tests
Assert(EndpointAddressParser.TryCreate(candidate, out endpoint, out reason), "net.tcp URI should resolve: " + reason);
AssertEqual(808, endpoint.Port, "net.tcp default port");
candidate.Address = "transfer.example.test:2222/outbound";
candidate.AdapterName = "Custom Adapter";
Assert(EndpointAddressParser.TryCreate(candidate, out endpoint, out reason), "plain host:port should resolve before URI parsing: " + reason);
AssertEqual("transfer.example.test", endpoint.Host, "plain host:port host");
AssertEqual(2222, endpoint.Port, "plain host:port port");
candidate.Address = "integration-user@sftp.example.test/inbound";
candidate.AdapterName = "SFTP";
Assert(EndpointAddressParser.TryCreate(candidate, out endpoint, out reason), "schema-less SFTP URI with user info should resolve: " + reason);
AssertEqual("sftp.example.test", endpoint.Host, "schema-less SFTP host");
AssertEqual(22, endpoint.Port, "schema-less SFTP default port");
Assert(endpoint.Host.IndexOf("integration-user", StringComparison.OrdinalIgnoreCase) < 0, "SFTP user info must not enter catalog host");
candidate.Address = "ftp-user@ftp.example.test:2121/drop";
candidate.AdapterName = "FTP";
Assert(EndpointAddressParser.TryCreate(candidate, out endpoint, out reason), "schema-less FTP URI with user info should resolve: " + reason);
AssertEqual("ftp.example.test", endpoint.Host, "schema-less FTP host");
AssertEqual(2121, endpoint.Port, "schema-less FTP explicit port");
candidate.Address = "sftp://[2001:db8::10]:2222/inbound";
candidate.AdapterName = "SFTP";
Assert(EndpointAddressParser.TryCreate(candidate, out endpoint, out reason), "bracketed IPv6 URI should resolve: " + reason);
AssertEqual("2001:db8::10", endpoint.Host, "IPv6 catalog host must not retain URI brackets");
AssertEqual(2222, endpoint.Port, "IPv6 explicit port");
candidate.Address = "oracledb://oracle01/ORDERS/Dedicated";
candidate.AdapterName = "WCF-OracleDB";
Assert(EndpointAddressParser.TryCreate(candidate, out endpoint, out reason), "direct Oracle DB URI should resolve: " + reason);