anchor.diff:  -export([all/0, init_per_suite/1, end_per_suite/1, init_per_testcase/2,
       end_per_testcase/2]).
   
  --export([choose_adequate_handler/1, use_supported_cdmi_version/1,
  +-export([get_file_test/1, choose_adequate_handler/1, use_supported_cdmi_version/1,
       use_unsupported_cdmi_version/1, create_dir_test/1]).
   
   -performance({test_cases, []}).
  -all() -> [choose_adequate_handler, use_supported_cdmi_version,
  +all() -> [get_file_test, choose_adequate_handler, use_supported_cdmi_version,
       use_unsupported_cdmi_version, create_dir_test].
   
   -define(MACAROON, "macaroon").
  
positive.code: -include_lib("ctool/include/logging.hrl").
  -include_lib("ctool/include/test/test_utils.hrl").
  -include_lib("ctool/include/test/assertions.hrl").
  -include_lib("ctool/include/posix/errors.hrl").
  -include_lib("annotations/include/annotations.hrl").
  
  
negative.code:             true;
          {error, ?ENOENT} ->
              false
      end.
  
  create_file(Config, Path) ->
      [Worker | _] = ?config(op_worker_nodes, Config),
      SessionId = ?config({session_id, 1}, Config),
  
      case lfm_proxy:create(Worker, SessionId, {path, utils:ensure_unicode_binary(Path)}, ?FILE_PERMISSIONS) of
          {ok, UUID} -> UUID;
          {error, Code} -> {error, Code}
      end.
  
  %% FileKey type is file_id_or_path() :: {uuid, file_uuid()} | { path, file_path()}
  open_file(Config, FileKey, OpenMode) ->
      [Worker | _] = ?config(op_worker_nodes, Config),
      SessionId = ?config({session_id, 1}, Config),
  
      case lfm_proxy:open(Worker, SessionId, FileKey, OpenMode) of
          {error, Error} -> {error, Error};
          FileHandle -> FileHandle
      end.
  
  write_to_file(Config, Path, Data) ->
      %%TODO maybe Offset sholud be function argument ?
      [Worker | _] = ?config(op_worker_nodes, Config),
  
      FileHandle = open_file(Config, {path, Path}, write),
      case lfm_proxy:write(Worker, FileHandle, ?OFFSET, Data) of
          {error, Error} -> {error, Error};
          Result -> Result
      end.
  
  get_file_content(Config, Path, Size) ->
      %%TODO maybe Offset sholud be function argument ?
      [Worker | _] = ?config(op_worker_nodes, Config),
  
      FileHandle = open_file(Config, {path, Path}, write),
      case lfm_proxy:read(Worker, FileHandle, ?OFFSET, Size) of
          {error, Error} -> {error, Error};
          Result -> Result
      end.