### Question:
Constants { public static String constructRFC2617(Map<String, String> params) { StringBuilder sb = new StringBuilder(SCHEME + ' '); if (params != null && !params.isEmpty()) { for (Map.Entry<String, String> param : params.entrySet()) { sb.append(param.getKey()).append("=\"").append(param.getValue()).append("\"").append(","); } sb.deleteCharAt(sb.length() - 1); } return sb.toString(); } private  Constants(); static List<String> parseTokens(String tokens); static String constructTokensString(List<String> tokens); static Map<String, String> parseRFC2617(String header); static String constructRFC2617(Map<String, String> params); static List<String> filterHeaders(List<String> headers); static final String SCHEME; static final String CHALLENGE; static final String REALM; static final String KEY_ID; @Deprecated
    static final String HEADER_REQUEST_LINE; static final String HEADER_REQUEST_TARGET; static final String HEADER_DATE; static final List<String> DEFAULT_HEADERS; static final List<String> IGNORE_HEADERS; static final String AUTHORIZATION; static final String HEADERS; static final String SIGNATURE; static final String ALGORITHMS; static final String ALGORITHM; static final Charset CHARSET; static final Pattern RFC2617_PARAM; static final KeyId DEFAULT_KEY_IDENTIFIER; static final Collection<Algorithm> ALL_SUPPORTED_ALGORITHMS; static final Challenge PREEMPTIVE_CHALLENGE; }### Answer:
@Test public void testConstructRFC2617() { Map<String, String> params = new LinkedHashMap<String, String>(); params.put("keyId", "unit"); params.put("algorithm", "hmac-sha1"); params.put("headers", "Content-Type Date"); params.put("signature", "yIy5ujWnGZ0pKVR7vY6Qv08WfLE="); String formatted = Constants.constructRFC2617(params); assertEquals("RFC 2617 string should be properly formatted", "Signature keyId=\"unit\",algorithm=\"hmac-sha1\",headers=\"Content-Type Date\",signature=\"yIy5ujWnGZ0pKVR7vY6Qv08WfLE=\"", formatted); }