anchor.diff:  
   
   %% @private
  +get_exp_transfer_stats(replication, <<"file">>, _SrcNode, DstNode, _FilesToTransferNum) ->
  +    #{
  +        replication_status => completed,
  +        eviction_status => skipped,
  +        replicating_provider => transfers_test_utils:provider_id(DstNode),
  +        evicting_provider => undefined,
  +        files_to_process => 1,
  +        files_processed => 1,
  +        files_replicated => 1,
  +        bytes_replicated => ?BYTES_NUM,
  +        files_evicted => 0
  +    };
  +get_exp_transfer_stats(eviction, <<"file">>, SrcNode, _DstNode, _FilesToTransferNum) ->
  +    #{
  +        replication_status => skipped,
  +        eviction_status => completed,
  +        replicating_provider => undefined,
  +        evicting_provider => transfers_test_utils:provider_id(SrcNode),
  +        files_to_process => 1,
  +        files_processed => 1,
  +        files_replicated => 0,
  +        bytes_replicated => 0,
  +        files_evicted => 1
  +    };
  +get_exp_transfer_stats(migration, <<"file">>, SrcNode, DstNode, _FilesToTransferNum) ->
  +    #{
  +        replication_status => completed,
  +        eviction_status => completed,
  +        replicating_provider => transfers_test_utils:provider_id(DstNode),
  +        evicting_provider => transfers_test_utils:provider_id(SrcNode),
  +        files_to_process => 2,
  +        files_processed => 2,
  +        files_replicated => 1,
  +        bytes_replicated => ?BYTES_NUM,
  +        files_evicted => 1
  +    };
  +get_exp_transfer_stats(replication, <<"dir">>, _SrcNode, DstNode, FilesToTransferNum) ->
  +    #{
  +        replication_status => completed,
  +        eviction_status => skipped,
  +        replicating_provider => transfers_test_utils:provider_id(DstNode),
  +        evicting_provider => undefined,
  +        files_to_process => 1 + FilesToTransferNum,
  +        files_processed => 1 + FilesToTransferNum,
  +        files_replicated => FilesToTransferNum,
  +        bytes_replicated => FilesToTransferNum * ?BYTES_NUM,
  +        files_evicted => 0
  +    };
  +get_exp_transfer_stats(eviction, <<"dir">>, SrcNode, _DstNode, FilesToTransferNum) ->
  +    #{
  +        replication_status => skipped,
  +        eviction_status => completed,
  +        replicating_provider => undefined,
  +        evicting_provider => transfers_test_utils:provider_id(SrcNode),
  +        files_to_process => 1 + FilesToTransferNum,
  +        files_processed => 1 + FilesToTransferNum,
  +        files_replicated => 0,
  +        bytes_replicated => 0,
  +        files_evicted => FilesToTransferNum
  +    };
  +get_exp_transfer_stats(migration, <<"dir">>, SrcNode, DstNode, FilesToTransferNum) ->
  +    #{
  +        replication_status => completed,
  +        eviction_status => completed,
  +        replicating_provider => transfers_test_utils:provider_id(DstNode),
  +        evicting_provider => transfers_test_utils:provider_id(SrcNode),
  +        files_to_process => 2 * (1 + FilesToTransferNum),
  +        files_processed => 2 * (1 + FilesToTransferNum),
  +        files_replicated => FilesToTransferNum,
  +        bytes_replicated => FilesToTransferNum * ?BYTES_NUM,
  +        files_evicted => FilesToTransferNum
  +    }.
  +
  +
  +%% @private
   validate_transfer_rest_call_result(#api_test_ctx{node = Node} = TestCtx, Result) ->
       {ok, _, Headers, Body} = ?assertMatch(
           {ok, ?HTTP_201_CREATED, #{<<"Location">> := _}, #{<<"transferId">> := _}},
  
positive.code:     ])).
  
  
  create_setup_file_replication_env(SrcNode, DstNode, UserId, Config) ->
      fun() ->
          SessId1 = ?SESS_ID(UserId, SrcNode, Config),
          SessId2 = ?SESS_ID(UserId, DstNode, Config),
  
          FilesToBeLeftAlone = lists:map(fun(_) ->
              create_file(SrcNode, SessId1, filename:join(["/", ?SPACE_2]))
          end, lists:seq(1, 3)),
  
          RootFileType = api_test_utils:randomly_choose_file_type_for_test(false),
          RootFilePath = filename:join(["/", ?SPACE_2, ?RANDOM_FILE_NAME()]),
          {ok, RootFileGuid} = api_test_utils:create_file(
              RootFileType, SrcNode, SessId1, RootFilePath, 8#777
          ),
  
          BytesNum = 20,
          {Files, ExpTransfer} = case RootFileType of
              <<"file">> ->
                  fill_file_with_dummy_data(SrcNode, SessId1, RootFileGuid, BytesNum),
                  Guids = [RootFileGuid],
                  TransferStats = #{
                      files_to_process => 1,
                      files_processed => 1,
                      files_replicated => 1,
                      bytes_replicated => BytesNum
                  },
                  {Guids, TransferStats};
              <<"dir">> ->
                  SubFilesNum = 5,
                  SubFilesGuids = lists:map(fun(_) ->
                      FilePath = filename:join([RootFilePath, ?RANDOM_FILE_NAME()]),
                      {ok, FileGuid} = api_test_utils:create_file(
                          <<"file">>, SrcNode, SessId1, FilePath, 8#777
                      ),
                      fill_file_with_dummy_data(SrcNode, SessId1, FileGuid, BytesNum),
                      FileGuid
                  end, lists:seq(1, SubFilesNum)),
                  TransferStats = #{
                      files_to_process => SubFilesNum + 1,
                      files_processed => SubFilesNum + 1,
                      files_replicated => SubFilesNum,
                      bytes_replicated => SubFilesNum * BytesNum
  
                  },
                  {SubFilesGuids, TransferStats}
          end,
  
          lists:foreach(fun(Guid) ->
              api_test_utils:wait_for_file_sync(DstNode, SessId2, Guid)
          end, Files),
  
          {ok, RootFileObjectId} = file_id:guid_to_objectid(RootFileGuid),
          #{
              root_file_guid => RootFileGuid,
              root_file_cdmi_id => RootFileObjectId,
              root_file_type => RootFileType,
              root_file_path => RootFilePath,
              exp_transfer => ExpTransfer#{
                  space_id => ?SPACE_2,
                  file_uuid => file_id:guid_to_uuid(RootFileGuid),
                  path => RootFilePath,
                  replication_status => completed,
                  eviction_status => skipped,
                  replicating_provider => transfers_test_utils:provider_id(DstNode),
                  evicting_provider => undefined,
                  failed_files => 0,
                  files_evicted => 0
              },
              files_to_transfer => Files,
              other_files => FilesToBeLeftAlone,
              file_size => BytesNum
          }
      end.
  
  
negative.code:         #suite_spec{
              target_nodes = Providers,
              client_spec = ?CLIENT_SPEC_FOR_TRANSFER_SCENARIOS(Config),
              setup_fun = create_setup_file_replication_env(replication, P1, P2, ?USER_IN_SPACE_2, Config),
              verify_fun = create_verify_transfer_env(replication, P2, ?USER_IN_SPACE_2, P1, P2, Config),
              scenario_templates = [
                  #scenario_template{
  