anchor.diff:  	2 = radius_attributes:fetch(?FramedRouting, ResponseAttributes),
   	1 = radius_attributes:fetch(?FramedCompression, ResponseAttributes),
   	1500 = radius_attributes:fetch(?FramedMtu, ResponseAttributes).
  -	
  +
   example3() ->
   	[{userdata, [{doc, "RFC2865 7.3 User with Challenge-Response card"}]}].
   
  
positive.code: 			BinaryResponse2Attributes, SharedSecret]),
  	Response2Authenticator = binary_to_list(Hash2),
  	[] = radius_attributes:codec(BinaryResponse2Attributes).
  	
  %%---------------------------------------------------------------------
  %%  Internal functions
  %%---------------------------------------------------------------------
  
negative.code: %% 	Case = atom()
  %% @doc Returns a list of all test cases in this test suite.
  %%
  all() ->
  	[store_new, store_overwrite, add,
  	fetch_existing, fetch_noexist, find_existing, find_noexist, get_all,
  	password, example1, example2, example3].
  
  %%---------------------------------------------------------------------
  %%  Test cases
  %%---------------------------------------------------------------------
  
  store_new() ->
  	[{userdata, [{doc, "Store a new attribute value"}]}].
  
  store_new(Config) ->
  	AttrsBin1 = ?config(example_attributes, Config),
  	Attrs1 = radius_attributes:codec(AttrsBin1),
  	Attrs2 = radius_attributes:store(?NasPortType, 19, Attrs1),
  	AttrsBin2 = radius_attributes:codec(Attrs2),
  	SizeBin1 = size(AttrsBin1),
  	<<AttrsBin1:SizeBin1/binary, ?NasPortType, 6, 19:32>> = AttrsBin2.
  
  store_overwrite() ->
  	[{userdata, [{doc, "Overwrite an existing attribute value"}]}].
  
  store_overwrite(Config) ->
  	AttrsBin1 = ?config(example_attributes, Config),
  	Attrs1 = radius_attributes:codec(AttrsBin1),
  	Attrs2 = radius_attributes:store(?NasPort, 17, Attrs1),
  	AttrsBin2 = radius_attributes:codec(Attrs2),
  	<<_:7/binary, ?NasPort, 6, 17:32, _:43/binary>> = AttrsBin2.
  
  add() ->
  	[{userdata, [{doc, "Add an attribute"}]}].
  
  add(Config) ->
  	AttrsBin1 = ?config(example_attributes, Config),
  	Attrs1 = radius_attributes:codec(AttrsBin1),
  	Attrs2 = radius_attributes:add(?PortLimit, 1, Attrs1),
  	AttrsBin2 = radius_attributes:codec(Attrs2),
  	SizeBin1 = size(AttrsBin1),
  	<<AttrsBin1:SizeBin1/binary, ?PortLimit, 6, 1:32>> = AttrsBin2.
  
  fetch_existing() ->
  	[{userdata, [{doc, "Get the value of an existing attribute"}]}].
  
  fetch_existing(Config) ->
  	AttrsBin = ?config(example_attributes, Config),
  	Attrs = radius_attributes:codec(AttrsBin),
  	"wlan0" = radius_attributes:fetch(?NasPortId, Attrs).
  
  fetch_noexist() ->
  	[{userdata, [{doc, "Attempt to get a nonexistent attribute"}]}].
  
  fetch_noexist(Config) ->
  	AttrsBin = ?config(example_attributes, Config),
  	Attrs = radius_attributes:codec(AttrsBin),
  	case catch radius_attributes:fetch(?State, Attrs) of
  		{'EXIT', not_found} ->
  			ok
  	end.
  
  find_existing() ->
  	[{userdata, [{doc, "Look for the value of an existing attribute"}]}].
  
  find_existing(Config) ->
  	AttrsBin = ?config(example_attributes, Config),
  	Attrs = radius_attributes:codec(AttrsBin),
  	{ok, "wlan0"} = radius_attributes:find(?NasPortId, Attrs).
  
  find_noexist() ->
  	[{userdata, [{doc, "Look for the value of a nonexistent attribute"}]}].
  
  find_noexist(Config) ->
  	AttrsBin = ?config(example_attributes, Config),
  	Attrs = radius_attributes:codec(AttrsBin),
  	{error, not_found} = radius_attributes:find(?State, Attrs).
  
  get_all() ->
  	[{userdata, [{doc, "Get all values of an attribute"}]}].
  
  get_all(Config) ->
  	AttrsBin = ?config(example_attributes, Config),
  	Attrs = radius_attributes:codec(AttrsBin),
  	EAPMessages = radius_attributes:get_all(?EAPMessage, Attrs),
  	[<<0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15>>,
  			<<16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31>>] = EAPMessages.
  
  password() ->
  	[{userdata, [{doc, "User-Password hiding"}]}].
  