Для моего модульного теста я хотел бы найти пример недопустимого URI, который не будет соответствовать UriComponentsBuilder#URI_PATTERN
регулярное выражение из Spring MVC 3.1.1:
private static final String SCHEME_PATTERN = "([^:/?#]+):";
private static final String HTTP_PATTERN = "(http|https):";
private static final String USERINFO_PATTERN = "([^@/]*)";
private static final String HOST_PATTERN = "([^/?#:]*)";
private static final String PORT_PATTERN = "(\\d*)";
private static final String PATH_PATTERN = "([^?#]*)";
private static final String QUERY_PATTERN = "([^#]*)";
private static final String LAST_PATTERN = "(.*)";
// Regex patterns that matches URIs. See RFC 3986, appendix B
private static final Pattern URI_PATTERN = Pattern.compile(
"^(" + SCHEME_PATTERN + ")?" + "(//(" + USERINFO_PATTERN + "@)?" + HOST_PATTERN + "(:" + PORT_PATTERN +
")?" + ")?" + PATH_PATTERN + "(\\?" + QUERY_PATTERN + ")?" + "(#" + LAST_PATTERN + ")?");
Я изо всех сил пытаюсь найтиодна строка, которая приведет к сбою UriComponentsBuilder.fromUriString()
с IllegalArgumentException
.Все, что я пробую, проходит проверку на регулярное выражение как действительный URI.