/** test getAuthorizationHeader */
  @Test
  public void testGetAuthorizationHeader() throws Exception {
    final TreeMap<String, Set<CharSequence>> params = new TreeMap<String, Set<CharSequence>>();
    CoreOAuthConsumerSupport support =
        new CoreOAuthConsumerSupport() {
          @Override
          protected Map<String, Set<CharSequence>> loadOAuthParameters(
              ProtectedResourceDetails details,
              URL requestURL,
              OAuthConsumerToken requestToken,
              String httpMethod,
              Map<String, String> additionalParameters) {
            return params;
          }
        };
    URL url = new URL("https://myhost.com/somepath?with=some&query=params&too");
    OAuthConsumerToken token = new OAuthConsumerToken();
    ProtectedResourceDetails details = createMock(ProtectedResourceDetails.class);

    expect(details.isAcceptsAuthorizationHeader()).andReturn(false);
    replay(details);
    assertNull(support.getAuthorizationHeader(details, token, url, "POST", null));
    verify(details);
    reset(details);

    params.put("with", Collections.singleton((CharSequence) "some"));
    params.put("query", Collections.singleton((CharSequence) "params"));
    params.put("too", null);
    expect(details.isAcceptsAuthorizationHeader()).andReturn(true);
    expect(details.getAuthorizationHeaderRealm()).andReturn("myrealm");
    replay(details);
    assertEquals(
        "OAuth realm=\"myrealm\", query=\"params\", with=\"some\"",
        support.getAuthorizationHeader(details, token, url, "POST", null));
    verify(details);
    reset(details);

    params.put(
        OAuthConsumerParameter.oauth_consumer_key.toString(),
        Collections.singleton((CharSequence) "mykey"));
    params.put(
        OAuthConsumerParameter.oauth_nonce.toString(),
        Collections.singleton((CharSequence) "mynonce"));
    params.put(
        OAuthConsumerParameter.oauth_timestamp.toString(),
        Collections.singleton((CharSequence) "myts"));
    expect(details.isAcceptsAuthorizationHeader()).andReturn(true);
    expect(details.getAuthorizationHeaderRealm()).andReturn("myrealm");
    replay(details);
    assertEquals(
        "OAuth realm=\"myrealm\", oauth_consumer_key=\"mykey\", oauth_nonce=\"mynonce\", oauth_timestamp=\"myts\", query=\"params\", with=\"some\"",
        support.getAuthorizationHeader(details, token, url, "POST", null));
    verify(details);
    reset(details);
  }