indexing description: "Tests the peer advertisement" license: "MIT license (see ../../license.txt)" author: "Beat Strasser " date: "$Date$" revision: "$Revision$" deferred class TEST_PEER_ADVERTISEMENT inherit T_ADVERTISEMENT feature -- Tests test_setters is -- Test setters/getters local pa: P2P_PEER_ADVERTISEMENT tdesc, tname: STRING tmcid: P2P_MODULE_CLASS_ID txmlcache: P2P_XML_CACHE do -- create peer advertisement create pa.make (pid, gid) assert_equal ("peer_id", pid, pa.peer_id) assert_equal ("group_id", gid, pa.group_id) assert_equal ("unique_id", pid.out_short, pa.unique_id) assert_same ("index_elements.count 1", 1, pa.index_elements.count) assert_true ("match PID", pa.match ("PID", pid.out)) assert_true ("match PID", pa.match ("PID", Void)) assert_true ("match GID", pa.match ("GID", gid.out)) assert_true ("match GID", pa.match ("GID", Void)) assert_false ("match Name", pa.match ("Name", Void)) assert_false ("match Desc", pa.match ("Desc", Void)) -- set name tname := "a Name" pa.set_name (tname) assert_equal ("name", tname, pa.name) assert_same ("index_elements.count 2", 2, pa.index_elements.count) assert_true ("match Name", pa.match ("Name", tname)) assert_true ("match Name", pa.match ("Name", Void)) -- set description tdesc := "a Description" pa.set_description (tdesc) assert_equal ("description", tdesc, pa.description) assert_true ("match Desc", pa.match ("Desc", tdesc)) assert_true ("match Desc", pa.match ("Desc", Void)) -- add service parameter tmcid := a_mcid txmlcache := a_xml_doc pa.add_service_parameter (tmcid, txmlcache) assert ("has_service_parameter 1", pa.has_service_parameter (tmcid)) assert_equal ("service_parameter 1", txmlcache, pa.service_parameter (tmcid)) assert_equal ("service_parameters 1", txmlcache, pa.service_parameters.item (tmcid)) assert_equal ("service_parameters.count 1", 1, pa.service_parameters.count) -- replace service parameter txmlcache := a_xml_doc pa.replace_service_parameter (tmcid, txmlcache) assert_true ("has_service_parameter 2", pa.has_service_parameter (tmcid)) assert_equal ("service_parameter 2", txmlcache, pa.service_parameter (tmcid)) assert_equal ("service_parameters 2", txmlcache, pa.service_parameters.item (tmcid)) assert_equal ("service_parameters.count 2", 1, pa.service_parameters.count) -- remove service parameter pa.remove_service_parameter (tmcid) assert_false ("has_service_parameter 3", pa.has_service_parameter (tmcid)) assert_equal ("service_parameter 3", Void, pa.service_parameter (tmcid)) assert_equal ("service_parameters.count 3", 0, pa.service_parameters.count) end test_document is -- Test document parsing/creating local pa: P2P_PEER_ADVERTISEMENT source, tname, tdesc, txmldocout: STRING tmcid: P2P_MODULE_CLASS_ID txmldoc: P2P_XML_CACHE do tname := "Peer Name" tdesc := "Peer Description" tmcid := a_mcid txmldoc := a_xml_doc txmldoc.document.document.root_element.set_name ("Parm") txmldoc.document.document.root_element.set_namespace (txmldoc.document.namespace_empty) txmldocout := txmldoc.out txmldocout := txmldocout.substring (txmldoc.document.xml_header.count + 1, txmldocout.count) source := "%N% %" + pid.out + "" + gid.out + "% %" + tname + "" + tdesc + "% %" + tmcid.out + "" + txmldocout + "" -- parse create pa.parse_from_string (source) assert_true ("is_valid", pa.is_valid) assert_equal ("peer_id", pid, pa.peer_id) assert_equal ("group_id", gid, pa.group_id) assert_equal ("name", tname, pa.name) assert_equal ("description", tdesc, pa.description) assert_equal ("service_parameter", txmldoc.out, pa.service_parameter (tmcid).out) -- create pa.clear_document pa.replace_service_parameter (tmcid, txmldoc) assert_equal ("document", source, pa.document.out) end test_general is -- Test general advertisement local pa: P2P_PEER_ADVERTISEMENT do create pa.make (pid, gid) dtest_lifetime (pa) end end