anchor.diff:              [],
               [
                   user_crud_test,
  -                user_space_test
  +                user_space_test,
  +                many_users_space_test,
  +                user_group_test,
  +                many_users_group_test
               ]
           }
           ,
  
positive.code: %% API
  -export([all/0, groups/0, init_per_suite/1, end_per_suite/1, init_per_testcase/2, end_per_testcase/2]).
  -export([provider_crud_test/1, user_space_test/1, user_crud_test/1, group_crud_test/1,
      provider_space_test/1, provider_check_test/1, many_users_space_test/1]).
  
  %%%===================================================================
  %%% API functions
  
negative.code:     UserReqParams = update_req_params(ProviderReqParams, NewHeaders, headers),
  
      %% check if user data is correct
      ?assertMatch(
          [UserId, ?USER_NAME1],
          read_user(UserReqParams)
      ),
  
      update_user(?USER_NAME2, UserReqParams),
  
      %% check if user data was updated
      ?assertMatch(
          [UserId, ?USER_NAME2],
          read_user(UserReqParams)
      ),
      
      DeleteResponse = delete_user(UserReqParams),
      ?assertMatch(ok, check_status(DeleteResponse)),
  
      %% try to read deleted user
      ?assertMatch(request_error, read_user(UserReqParams)).
  
  user_space_test(Config) ->
      RestAddress = ?config(restAddress, Config),
      [Node] = ?config(gr_nodes, Config),
      ReqParams = {RestAddress, ?CONTENT_TYPE_HEADER, []},
  
      {ProviderId, ProviderReqParams} =
          register_provider(?URLS1, ?REDIRECTION_POINT1, ?CLIENT_NAME1, Config, ReqParams),
      
      %% create user
      UserId = create_user(?USER_NAME1, Node),
  
      %% authenticate user
      NewHeaders = auth_user(UserId, ProviderId, ReqParams, Node),
      UserReqParams = update_req_params(ProviderReqParams, NewHeaders, headers),
  
      SID1 = create_space_for_user(?SPACE_NAME1, UserReqParams),
      SID2 = create_space_for_user(?SPACE_NAME2, UserReqParams),
  
      ?assertMatch(
          [[SID1, SID2], <<"undefined">>],
          get_user_spaces(UserReqParams)
      ),
  
      set_default_space_for_user(SID2, UserReqParams),
  
      ?assertMatch(
          [[SID1, SID2], SID2],
          get_user_spaces(UserReqParams)
      ),
  
      ?assertMatch(SID2, get_user_default_space(UserReqParams)),
  
      ?assertMatch([SID1, ?SPACE_NAME1], get_user_space(SID1, UserReqParams)),
  
      DeleteResponse = delete_user_space(SID1, UserReqParams),
      ?assertMatch(ok, check_status(DeleteResponse)),
  
      %% try to read deleted user's space
      ?assertMatch(request_error, get_user_space(SID1, UserReqParams)).
  
  many_users_space_test(Config) ->
      RestAddress = ?config(restAddress, Config),
      [Node] = ?config(gr_nodes, Config),
      ReqParams = {RestAddress, ?CONTENT_TYPE_HEADER, []},
  
      {ProviderId, ProviderReqParams} =
          register_provider(?URLS1, ?REDIRECTION_POINT1, ?CLIENT_NAME1, Config, ReqParams),
  
      %% create users
      UserId = create_user(?USER_NAME1, Node),
  