Author: mjakl
Date: Fri Jul 3 21:30:59 2009
New Revision: 791023
URL: http://svn.apache.org/viewvc?rev=791023&view=rev
Log:
Refactoring towards easier features checking.
Modified:
mina/sandbox/vysper/trunk/src/test/java/org/apache/vysper/xmpp/modules/extension/xep0060_pubsub/disco/PubSubDiscoInfoTestCase.java
Modified:
mina/sandbox/vysper/trunk/src/test/java/org/apache/vysper/xmpp/modules/extension/xep0060_pubsub/disco/PubSubDiscoInfoTestCase.java
URL:
http://svn.apache.org/viewvc/mina/sandbox/vysper/trunk/src/test/java/org/apache/vysper/xmpp/modules/extension/xep0060_pubsub/disco/PubSubDiscoInfoTestCase.java?rev=791023&r1=791022&r2=791023&view=diff
==============================================================================
---
mina/sandbox/vysper/trunk/src/test/java/org/apache/vysper/xmpp/modules/extension/xep0060_pubsub/disco/PubSubDiscoInfoTestCase.java
(original)
+++
mina/sandbox/vysper/trunk/src/test/java/org/apache/vysper/xmpp/modules/extension/xep0060_pubsub/disco/PubSubDiscoInfoTestCase.java
Fri Jul 3 21:30:59 2009
@@ -1,5 +1,6 @@
package org.apache.vysper.xmpp.modules.extension.xep0060_pubsub.disco;
+import java.util.Arrays;
import java.util.List;
import org.apache.vysper.xmpp.addressing.Entity;
@@ -60,8 +61,8 @@
&& el.getAttributeValue("type").equals("service")) {
identity = el;
} else if(el.getName().equals("feature")
- /*&&
el.getNamespace().equals(NamespaceURIs.XEP0030_SERVICE_DISCOVERY_INFO)*/
- &&
el.getAttributeValue("var").equals(NamespaceURIs.XEP0060_PUBSUB)) { // TODO
enable when the parser is fixed
+ /*&&
el.getNamespace().equals(NamespaceURIs.XEP0030_SERVICE_DISCOVERY_INFO)*/ //
TODO enable when the parser is fixed
+ &&
el.getAttributeValue("var").equals(NamespaceURIs.XEP0060_PUBSUB)) {
feature = el;
}
}
@@ -96,23 +97,37 @@
// ordering etc. is unknown; step through all subelements and pick the
ones we need
XMLElement identity = null;
- XMLElement feature = null;
for(XMLElement el : inner) {
if(el.getName().equals("identity")
//&&
el.getNamespace().equals(NamespaceURIs.XEP0030_SERVICE_DISCOVERY_INFO) // TODO
enable when the parser is fixed
&& el.getAttributeValue("category").equals("pubsub")
&& el.getAttributeValue("type").equals("leaf")) {
identity = el;
- } else if(el.getName().equals("feature")
- /*&&
el.getNamespace().equals(NamespaceURIs.XEP0030_SERVICE_DISCOVERY_INFO)*/
- &&
el.getAttributeValue("var").equals(NamespaceURIs.XEP0060_PUBSUB)) { // TODO
enable when the parser is fixed
- feature = el;
}
}
- // make sure they were there (booleans would have sufficed)
+ // make sure they were there
assertNotNull(identity);
- assertNotNull(feature);
+
+ XMLElement[] elementList = collectFeatures(inner, new String[]
{NamespaceURIs.XEP0060_PUBSUB});
+ for(XMLElement el : elementList) {
+ assertNotNull(el);
+ }
+ }
+
+ private XMLElement[] collectFeatures(List<XMLElement> inner, String[]
features) {
+ XMLElement[] elementList = new XMLElement[features.length];
+ Arrays.sort(features);
+ for(XMLElement el : inner) {
+ if(el.getName().equals("feature"))
+ /*&&
el.getNamespace().equals(NamespaceURIs.XEP0030_SERVICE_DISCOVERY_INFO)*/ { //
TODO enable when the parser is fixed
+ int index = Arrays.binarySearch(features,
el.getAttributeValue("var"));
+ if(index != -1) {
+ elementList[index] = el;
+ }
+ }
+ }
+ return elementList;
}
class DefaultDiscoInfoStanzaGenerator extends AbstractStanzaGenerator {