anchor.diff:      ]),
       ok.
   
  +fetches_changes_older_than_in_cache(Config) ->
  +    % given
  +    UniqueID = <<"u1-updates_have_revisions_test">>,
  +    [Node | _] = ?config(oz_worker_nodes, Config),
  +    P1 = create_provider(Node, <<"p1">>, []),
  +    create_user(Node, UniqueID, [], []),
  +    update_document(Node, onedata_user, UniqueID, #{name => <<"updated1">>}),
  +    update_document(Node, onedata_user, UniqueID, #{name => <<"updated2">>}),
  +    update_document(Node, onedata_user, UniqueID, #{name => <<"updated3">>}),
  +    update_document(Node, onedata_user, UniqueID, #{name => <<"updated4">>}),
  +
  +    % when
  +    Context = init_messages(Node, P1, [UniqueID]),
  +    _ForgottenContext = flush_messages(Context,
  +        user_expectation(UniqueID, <<"updated4">>, [], [])),
  +
  +    empty_cache(Node),
  +
  +    % then
  +    verify_messages_present(Context, [
  +        user_expectation(UniqueID, <<"updated4">>, [], [])
  +    ]),
  +    ok.
  +
   %%%===================================================================
   %%% Setup/teardown functions
   %%%===================================================================
  
positive.code:     call_worker(Node, {add_connection, P1, self()}),
  
      % when
      Context = init_messages(Node, P1, [<<"u1">>]),
      update_document(Node, user_group, <<"g1">>, #{name => <<"updated">>}),
  
      % then
  
negative.code:     call_worker(Node, {add_connection, P1, self()}),
  
      % when
      Context1 = init_messages(Node, P1, [<<"u1">>]),
      Context = flush_messages(Context1, user_expectation(<<"u1">>, <<"u1">>, [], [])),
  
      update_document(Node, onedata_user, <<"u1">>, #{name => <<"updated1">>}),
      update_document(Node, onedata_user, <<"u1">>, #{name => <<"updated2">>}),
      update_document(Node, onedata_user, <<"u1">>, #{name => <<"updated3">>}),
  