anchor.diff:      lists:foreach(Check, RequestReplies).
   
   
  +busy_path(Config) ->
  +    RequestBody1 = jsx:encode(#{<<"path">> => <<"repo1.domain1.org/dir">>,
  +                            <<"api_version">> => integer_to_binary(cvmfs_fe:api_version())}),
  +    HMAC1 = p_make_hmac(RequestBody1),
  +    RequestHeaders1 = p_make_headers(RequestBody1, <<"key1">>, HMAC1),
  +    {ok, ReplyBody1} = p_post(conn_pid(Config), ?API_ROOT ++ "/leases", RequestHeaders1, RequestBody1),
  +    #{<<"session_token">> := Token} = jsx:decode(ReplyBody1, [return_maps]),
  +
  +    RequestBody2 = jsx:encode(#{<<"path">> => <<"repo1.domain1.org/dir/subdir">>,
  +                            <<"api_version">> => integer_to_binary(cvmfs_fe:api_version())}),
  +    HMAC2 = p_make_hmac(RequestBody2),
  +    RequestHeaders2 = p_make_headers(RequestBody2, <<"key1">>, HMAC2),
  +    {ok, ReplyBody2} = p_post(conn_pid(Config), ?API_ROOT ++ "/leases", RequestHeaders2, RequestBody2),
  +    #{<<"status">> := <<"path_busy">>} = jsx:decode(ReplyBody2, [return_maps]),
  +
  +    HMAC3 = p_make_hmac(Token),
  +    RequestHeaders3 = p_make_headers(<<"key1">>, HMAC3),
  +    {ok, ReplyBody3} = p_delete(conn_pid(Config), ?API_ROOT ++ "/leases/" ++ binary_to_list(Token),
  +                                RequestHeaders3),
  +    #{<<"status">> := <<"ok">>} = jsx:decode(ReplyBody3, [return_maps]).
  +
  +
  +independent_leases(Config) ->
  +    RequestBody1 = jsx:encode(#{<<"path">> => <<"repo1.domain1.org/dir1">>,
  +                            <<"api_version">> => integer_to_binary(cvmfs_fe:api_version())}),
  +    HMAC1 = p_make_hmac(RequestBody1),
  +    RequestHeaders1 = p_make_headers(RequestBody1, <<"key1">>, HMAC1),
  +    {ok, ReplyBody1} = p_post(conn_pid(Config), ?API_ROOT ++ "/leases", RequestHeaders1, RequestBody1),
  +    #{<<"session_token">> := Token1} = jsx:decode(ReplyBody1, [return_maps]),
  +
  +    RequestBody2 = jsx:encode(#{<<"path">> => <<"repo1.domain1.org/dir2">>,
  +                            <<"api_version">> => integer_to_binary(cvmfs_fe:api_version())}),
  +    HMAC2 = p_make_hmac(RequestBody2),
  +    RequestHeaders2 = p_make_headers(RequestBody2, <<"key1">>, HMAC2),
  +    {ok, ReplyBody2} = p_post(conn_pid(Config), ?API_ROOT ++ "/leases", RequestHeaders2, RequestBody2),
  +    #{<<"session_token">> := Token2} = jsx:decode(ReplyBody2, [return_maps]),
  +
  +    HMAC3 = p_make_hmac(Token1),
  +    RequestHeaders3 = p_make_headers(<<"key1">>, HMAC3),
  +    {ok, ReplyBody3} = p_delete(conn_pid(Config), ?API_ROOT ++ "/leases/" ++ binary_to_list(Token1),
  +                                RequestHeaders3),
  +    #{<<"status">> := <<"ok">>} = jsx:decode(ReplyBody3, [return_maps]),
  +
  +    HMAC4 = p_make_hmac(Token2),
  +    RequestHeaders4 = p_make_headers(<<"key1">>, HMAC4),
  +    {ok, ReplyBody4} = p_delete(conn_pid(Config), ?API_ROOT ++ "/leases/" ++ binary_to_list(Token2),
  +                                RequestHeaders4),
  +    #{<<"status">> := <<"ok">>} = jsx:decode(ReplyBody4, [return_maps]).
  +
  +
   create_session_when_already_created(Config) ->
       % Create new lease
       RequestBody = jsx:encode(#{<<"path">> => <<"repo1.domain1.org">>,
  
positive.code:          check_leases/1,
           create_and_delete_session/1,
           create_invalid_leases/1,
           create_session_when_already_created/1,
           end_invalid_session/1,
           normal_payload_submission/1,
  
negative.code:      {resource_check, [], [check_root, check_repos, check_leases]},
       {leases, [], [create_and_delete_session,
                     create_invalid_leases,
                     busy_path,
                     independent_leases,
                     create_session_when_already_created,
                     end_invalid_session]},
       {payloads, [], [normal_payload_submission,
  