anchor.diff:      save_file(#file{name = "file1", parent = UUID4}),
       save_descriptor(#file_descriptor{file = UUID3}),
       save_descriptor(#file_descriptor{file = UUID3}),
  -    save_descriptor(#file_descriptor{file = UUID4})
  -,   save_descriptor(#file_descriptor{file = UUID2}).
  -
  -
  -%% lock_file/3
  -%% ====================================================================
  -%% @doc Puts a read/write lock on specified file owned by specified user.
  -%% Should not be used directly, use dao:handle/2 instead (See dao:handle/2 for more details).
  -%% Not yet implemented. This is placeholder/template method only!
  -%% @end
  --spec lock_file(UserID :: string(), FileID :: string(), Mode :: write | read) -> not_yet_implemented.
  -%% ====================================================================
  -lock_file(_UserID, _FileID, _Mode) ->
  -    not_yet_implemented.
  -
  -
  -%% unlock_file/3
  -%% ====================================================================
  -%% @doc Takes off a read/write lock on specified file owned by specified user.
  -%% Should not be used directly, use dao:handle/2 instead (See dao:handle/2 for more details).
  -%% Not yet implemented. This is placeholder/template method only!
  -%% @end
  --spec unlock_file(UserID :: string(), FileID :: string(), Mode :: write | read) -> not_yet_implemented.
  -%% ====================================================================
  -unlock_file(_UserID, _FileID, _Mode) ->
  -    not_yet_implemented.
  +    save_descriptor(#file_descriptor{file = UUID4}),
  +    save_descriptor(#file_descriptor{file = UUID2}).
   
   
   %% ===================================================================
  
positive.code: -include_lib("files_common.hrl").
  
  %% API - File system management
  -export([list_dir/3, rename_file/2, lock_file/3, unlock_file/3, test/0]). %% High level API functions
  -export([save_descriptor/1, remove_descriptor/1, get_descriptor/1, list_descriptors/3]). %% Base descriptor management API functions
  -export([save_file/1, remove_file/1, get_file/1, file_info/1, get_path_info/1]). %% Base file management API function
  
  
  -ifdef(TEST).
  
negative.code:     %% TODO: type match checking
      dao:get_record(UUID).
  
  get_path_info({absolute_path, Path}) ->
      get_path_info({relative_path, Path, ""});
  get_path_info({relative_path, [?PATH_SEPARATOR | _] = Path, Root}) ->
  