anchor.diff:  
   -include("dbus.hrl").
   -include("dbus_client.hrl").
  +
  +
  +-ifdef(TEST).
  +-include_lib("eunit/include/eunit.hrl").
  +-endif.
   
   %% api
   -export([start_link/1,
  
positive.code:             {next_state, authenticated, State#state{waiting=[], guid=Guid, unix_fd=false}}
      end;
  
  handle_info({received, <<"REJECTED ", _Line/binary>>}, StateName,
              #state{mechs=[]}=State) 
    when StateName =:= waiting_for_ok; StateName =:= waiting_for_data ->
      {stop, disconnect, State};
  
  handle_info({received, <<"REJECTED ", _Line/binary>>}, StateName,
              #state{sock=Sock, mechs=[Mech|Rest]}=State) 
    when StateName =:= waiting_for_ok; StateName =:= waiting_for_data ->
      ?debug("Trying next authentication mechanism~n", []),
      case Mech:init() of 
  
negative.code: %%%
  connected(auth, {_Pid, Tag}=From, #state{sock=Sock, mechs=[]}=State) ->
      dbus_transport:send(Sock, <<"AUTH\r\n">>),
      {reply, {ok, {self(), Tag}}, waiting_for_reject, State#state{waiting=[From]}};
  connected(auth, {_Pid, Tag}=From, #state{sock=Sock, mechs=[Mech|Rest]}=State) ->
      case Mech:init() of
          {ok, Resp} ->
              ?debug("DBUS auth: sending initial data~n", []),
              dbus_transport:send(Sock, Resp),
              {reply, {ok, {self(), Tag}}, waiting_for_ok, 
               State#state{waiting=[From], mechs=Rest}};
          {continue, Resp, MechState} ->
              ?debug("DBUS auth: sending initial data (continue)~n", []),
              dbus_transport:send(Sock, Resp),
              {reply, {ok, {self(), Tag}}, waiting_for_data,
               State#state{waiting=[From], mechs=Rest, mech_state={Mech, MechState}}}
      end;
  
  connected({call, _}, _From, State) ->
  