URISignatureHandler { public static void validate(String uriSignature) throws URISignatureParsingException { extractPlaceholdersWithPositions(uriSignature); }  static LinkedHashMap<String, Integer> extractPlaceholdersWithPositions(
			String uriSignature); static List<String> extractPlaceholders(String uriSignature); static void validate(String uriSignature); static void checkForUnsafeCharacters(String candidateURLSignature); static boolean isValid(String uriSignature); static String generateCompleteURI(String uriSignature,
			Map<String, String> specifiedParameters, boolean escapeParameters); static String urlEncodeQuery(String query); static final char PLACEHOLDER_START_SYMBOL; static final char PLACEHOLDER_END_SYMBOL; }
@Test public void validate_validURI_NoPlaceholders() { URISignatureHandler.validate(validURI_NoPlaceholders); }
@Test public void validate_validURI_PlaceholdersInMainPartOfURIOnly() { URISignatureHandler.validate(validURI_PlaceholdersInMainPartOfURIOnly); }
@Test public void validate_validURI_PlaceholdersInQueryStringOnly() { URISignatureHandler.validate(validURI_PlaceholdersInQueryStringOnly); }
@Test public void validate_validURI_MixedPlaceholders() { URISignatureHandler.validate(validURI_3MixedPlaceholders); }
@Test public void validate_validURI_validURI_Multiple() { URISignatureHandler.validate(validURI_MultipleQueryString); }
@Test(expected = URISignatureHandler.URISignatureParsingException.class) public void validate_badURI_nullURI() { URISignatureHandler.validate(badURI_nullURI); }
@Test(expected = URISignatureHandler.URISignatureParsingException.class) public void validate_badURI_emptyURI() { URISignatureHandler.validate(badURI_emptyURI); }
@Test(expected = URISignatureHandler.URISignatureParsingException.class) public void validate_badURI_SingleOpeningSymbolNoClosingSymbol() { URISignatureHandler.validate(badURI_SingleOpeningSymbolNoClosingSymbol); }
@Test(expected = URISignatureHandler.URISignatureParsingException.class) public void validate_badURI_SingleClosingSymbolNoOpeningSymbol() { URISignatureHandler.validate(badURI_SingleClosingSymbolNoOpeningSymbol); }
@Test(expected = URISignatureHandler.URISignatureParsingException.class) public void validate_badURI_DoubleOpeningSymbolsNoClosingSymbol() { URISignatureHandler .validate(badURI_DoubleOpeningSymbolsNoClosingSymbol); }
@Test(expected = URISignatureHandler.URISignatureParsingException.class) public void validate_badURI_DoubleOpeningSymbols() { URISignatureHandler.validate(badURI_DoubleOpeningSymbols); }
@Test(expected = URISignatureHandler.URISignatureParsingException.class) public void validate_badURI_DoubleOpeningSymbolsSpaced() { URISignatureHandler.validate(badURI_DoubleOpeningSymbolsSpaced); }
@Test(expected = URISignatureHandler.URISignatureParsingException.class) public void validate_badURI_DoubleClosingSymbols() { URISignatureHandler.validate(badURI_DoubleClosingSymbols); }
@Test(expected = URISignatureHandler.URISignatureParsingException.class) public void validate_badURI_DoubleClosingSymbolsSpaced() { URISignatureHandler.validate(badURI_DoubleClosingSymbolsSpaced); }
@Test(expected = URISignatureHandler.URISignatureParsingException.class) public void validate_badURI_NestedPlaceholders() { URISignatureHandler.validate(badURI_NestedPlaceholders); }
@Test(expected = URISignatureHandler.URISignatureParsingException.class) public void validate_badURI_NestedPlaceholdersSpaced() { URISignatureHandler.validate(badURI_NestedPlaceholdersSpaced); }
@Test(expected = URISignatureHandler.URISignatureParsingException.class) public void validate_badURI_DuplicatePlaceholders() { URISignatureHandler.validate(badURI_DuplicatePlaceholders); }
@Test(expected = URISignatureHandler.URISignatureParsingException.class) public void validate_badURI_DuplicatePlaceholdersWithOthers() { URISignatureHandler.validate(badURI_DuplicatePlaceholdersWithOthers); }