anchor.diff:  -include_lib("eunit/include/eunit.hrl").
   -endif.
   
  +-export([authenticate/2]).
  +
  +%% ===================================================================
  +%% Public API
  +%% ===================================================================
   
   -spec authenticate(term(), [string()]) -> {ok, #moss_user{}}
                                                 | {ok, unknown}
                                                 | {error, atom()}.
  --compile(export_all).
  --export([authenticate/2]).
  -
  -%% ===================================================================
  -%% Public API
  -%% ===================================================================
  -
   authenticate(RD, [KeyID, Signature]) ->
       %% @TODO Also handle riak connection error
       case riak_moss_utils:get_user(KeyID) of
  
positive.code:     RD = wrq:create(Method, Version, Path, Headers),
      ExpectedSignature = "Db+gepJSUbZKwpx1FR0DLtEYoZA=",
      CalculatedSignature = calculate_signature(KeyData, RD),
      ?assert(check_auth(ExpectedSignature, CalculatedSignature)).
  
  example_unicode_keys_test() ->
      KeyData = "uV3F3YluFJax1cknvbcGwgjvx4QpvB+leU8dUj2o",
      Method = 'GET',
      Version = {1, 1},
  
negative.code:     RD = wrq:create(Method, Version, Path, Headers),
      ExpectedSignature = "C0FlOtU8Ylb9KDTpZqYkZPX91iI=",
      CalculatedSignature = calculate_signature(KeyData, RD),
      test_fun("example upload test", ExpectedSignature, CalculatedSignature).
  
  example_list_all_buckets() ->
      KeyData = "uV3F3YluFJax1cknvbcGwgjvx4QpvB+leU8dUj2o",
      Method = 'GET',
      Version = {1, 1},
  