You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@abdera.apache.org by jm...@apache.org on 2011/12/21 22:04:22 UTC
svn commit: r1221883 - in /abdera/abdera2:
common/src/main/java/org/apache/abdera2/common/http/
test/src/main/java/org/apache/abdera2/test/activities/
test/src/main/java/org/apache/abdera2/test/client/
test/src/main/java/org/apache/abdera2/test/common/...
Author: jmsnell
Date: Wed Dec 21 21:04:22 2011
New Revision: 1221883
URL: http://svn.apache.org/viewvc?rev=1221883&view=rev
Log:
test cases and fixes...
Added:
abdera/abdera2/test/src/main/java/org/apache/abdera2/test/common/http/PreferenceTest.java (with props)
Modified:
abdera/abdera2/common/src/main/java/org/apache/abdera2/common/http/Preference.java
abdera/abdera2/test/src/main/java/org/apache/abdera2/test/activities/ActivitiesTest.java
abdera/abdera2/test/src/main/java/org/apache/abdera2/test/client/AppTest.java
Modified: abdera/abdera2/common/src/main/java/org/apache/abdera2/common/http/Preference.java
URL: http://svn.apache.org/viewvc/abdera/abdera2/common/src/main/java/org/apache/abdera2/common/http/Preference.java?rev=1221883&r1=1221882&r2=1221883&view=diff
==============================================================================
--- abdera/abdera2/common/src/main/java/org/apache/abdera2/common/http/Preference.java (original)
+++ abdera/abdera2/common/src/main/java/org/apache/abdera2/common/http/Preference.java Wed Dec 21 21:04:22 2011
@@ -17,9 +17,7 @@
*/
package org.apache.abdera2.common.http;
-
import java.io.Serializable;
-import java.util.Collection;
import java.util.Locale;
import java.util.Map;
import java.util.Set;
@@ -96,6 +94,30 @@ public class Preference implements Seria
return new Builder();
}
+ public static Builder make(String token) {
+ return make().token(token.toLowerCase(Locale.US));
+ }
+
+ public static Builder make(String token, String value) {
+ return make(token).value(value);
+ }
+
+ public static Builder make(String token, int value) {
+ return make(token).value(value);
+ }
+
+ public static Builder make(String token, long value) {
+ return make(token).value(value);
+ }
+
+ public static Builder make(String token, short value) {
+ return make(token).value(value);
+ }
+
+ public static Builder make(String token, boolean value) {
+ return make(token).value(value);
+ }
+
public static class Builder implements Supplier<Preference> {
String token;
@@ -188,19 +210,19 @@ public class Preference implements Seria
}
public long getLongValue() {
- return Long.parseLong(value);
+ return value != null ? Long.parseLong(value) : -1;
}
public int getIntValue() {
- return Integer.parseInt(value);
+ return value != null ? Integer.parseInt(value) : -1;
}
public short getShortValue() {
- return Short.parseShort(value);
+ return value != null ? Short.parseShort(value) : -1;
}
public boolean getBooleanValue() {
- return Boolean.parseBoolean(value);
+ return value != null ? Boolean.parseBoolean(value) : false;
}
static final Set<String> reserved =
@@ -248,10 +270,35 @@ public class Preference implements Seria
return true;
}
+ public boolean hasParam(String name) {
+ checkNotNull(name);
+ name = name.toLowerCase(Locale.US);
+ return params.containsKey(name);
+ }
+
+ public int getIntParam(String name) {
+ String val = getParam(name);
+ return val != null ? Integer.parseInt(name) : -1;
+ }
+
+ public long getLongParam(String name) {
+ String val = getParam(name);
+ return val != null ? Long.parseLong(name) : -1;
+ }
+
+ public short getShortParam(String name) {
+ String val = getParam(name);
+ return val != null ? Short.parseShort(name) : -1;
+ }
+
+ public boolean getBooleanParam(String name) {
+ String val = getParam(name);
+ return val != null ? Boolean.parseBoolean(name) : false;
+ }
+
public String getParam(String name) {
checkNotNull(name);
name = name.toLowerCase(Locale.US);
- checkArgument(!reserved(name));
return params.get(name);
}
@@ -290,15 +337,14 @@ public class Preference implements Seria
}
private final static String TOKEN = "[\\!\\#\\$\\%\\&\\'\\*\\+\\-\\.\\^\\_\\`\\|\\~a-zA-Z0-9]+";
- private final static String PARAM = TOKEN+"\\s*={1}\\s*(?:(?:\"[^\"]+\")|(?:"+TOKEN+"))";
- private final static String PREF = TOKEN+"(?:\\s*={1}\\s*(?:(?:\"[^\"]+\")|(?:"+TOKEN+"))){0,1}";
- private final static String PARAMS = "(?:\\s*;\\s*(" + PARAM + "(?:\\s*;\\s*"+PARAM+")))*";
- private final static String PATTERN = "("+PREF+")" + PARAMS;
+ private final static String PREF = TOKEN+"(?:\\s*=\\s*(?:(?:\"[^\"]+\")|(?:"+TOKEN+")))?";
+ private final static String PARAMS = "(?:\\s*;\\s*" + PREF + ")*";
+ private final static String PATTERN = "("+PREF+")(" + PARAMS + ")";
private final static Pattern pattern =
Pattern.compile(PATTERN);
private final static Pattern param =
- Pattern.compile("("+PARAM+")");
+ Pattern.compile("("+PREF+")");
public static Iterable<Preference> parse(String text) {
ImmutableList.Builder<Preference> prefs = ImmutableList.builder();
@@ -376,14 +422,13 @@ public class Preference implements Seria
/**
* Utility method that checks to see if the given token is included
- * in the collection of preference
+ * in the collection of preference... this ignores the parameters
+ * and looks only at the preference token
*/
public static boolean contains(
Iterable<Preference> preferences,
Preference preference) {
- return preferences instanceof Collection ?
- ((Collection<Preference>)preferences).contains(preference) :
- contains(preferences,preference.getToken());
+ return get(preferences,preference.getToken()) != null;
}
public static Preference get(Iterable<Preference> preferences, String token) {
Modified: abdera/abdera2/test/src/main/java/org/apache/abdera2/test/activities/ActivitiesTest.java
URL: http://svn.apache.org/viewvc/abdera/abdera2/test/src/main/java/org/apache/abdera2/test/activities/ActivitiesTest.java?rev=1221883&r1=1221882&r2=1221883&view=diff
==============================================================================
--- abdera/abdera2/test/src/main/java/org/apache/abdera2/test/activities/ActivitiesTest.java (original)
+++ abdera/abdera2/test/src/main/java/org/apache/abdera2/test/activities/ActivitiesTest.java Wed Dec 21 21:04:22 2011
@@ -249,7 +249,7 @@ public class ActivitiesTest {
.to(Objects.ME)
.cc(PersonObject.makePerson("Jane"))
.bcc(Objects.ME)
- .bto(Objects.NETWORK)
+ .bto(Objects.NETWORK)
.get();
assertNotNull(activity.getActor());
assertNotNull(activity.getVerb());
Modified: abdera/abdera2/test/src/main/java/org/apache/abdera2/test/client/AppTest.java
URL: http://svn.apache.org/viewvc/abdera/abdera2/test/src/main/java/org/apache/abdera2/test/client/AppTest.java?rev=1221883&r1=1221882&r2=1221883&view=diff
==============================================================================
--- abdera/abdera2/test/src/main/java/org/apache/abdera2/test/client/AppTest.java (original)
+++ abdera/abdera2/test/src/main/java/org/apache/abdera2/test/client/AppTest.java Wed Dec 21 21:04:22 2011
@@ -52,11 +52,7 @@ import org.apache.abdera2.parser.ParserO
import org.apache.abdera2.protocol.client.AbderaClient;
import org.apache.abdera2.protocol.client.AbderaClientResponse;
import org.apache.abdera2.protocol.client.AbderaSession;
-import org.apache.abdera2.protocol.client.BasicClient;
-import org.apache.abdera2.protocol.client.Client;
import org.apache.abdera2.protocol.client.RequestOptions;
-import org.apache.abdera2.protocol.client.Session;
-import org.apache.abdera2.common.date.DateTimes;
import org.apache.abdera2.common.http.CacheControl;
import org.apache.abdera2.common.http.EntityTag;
import org.apache.abdera2.common.mediatype.MimeTypeHelper;
Added: abdera/abdera2/test/src/main/java/org/apache/abdera2/test/common/http/PreferenceTest.java
URL: http://svn.apache.org/viewvc/abdera/abdera2/test/src/main/java/org/apache/abdera2/test/common/http/PreferenceTest.java?rev=1221883&view=auto
==============================================================================
--- abdera/abdera2/test/src/main/java/org/apache/abdera2/test/common/http/PreferenceTest.java (added)
+++ abdera/abdera2/test/src/main/java/org/apache/abdera2/test/common/http/PreferenceTest.java Wed Dec 21 21:04:22 2011
@@ -0,0 +1,43 @@
+package org.apache.abdera2.test.common.http;
+
+import org.apache.abdera2.common.http.Preference;
+import static org.apache.abdera2.common.http.Preference.*;
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertTrue;
+
+import org.junit.Test;
+
+public class PreferenceTest {
+
+ @Test
+ public void testPreference() {
+
+ String prefs =
+ Preference.toString(
+ PREF_LENIENT,
+ WAIT(10),
+ PREF_RETURN_ASYNCH,
+ make("A","B").param("B", "c").param("C","foo bar baz").get());
+
+ assertEquals("lenient,wait=10,return-asynch,a=B;b=c;c=\"foo bar baz\"",prefs);
+
+ Iterable<Preference> list = parse(prefs);
+ assertTrue(contains(list, WAIT(10)));
+ assertTrue(contains(list, PREF_LENIENT));
+ assertTrue(contains(list, PREF_RETURN_ASYNCH));
+ assertTrue(contains(list, make("A").get()));
+
+ Preference wait = get(list,"wait");
+ assertEquals(10,wait.getIntValue());
+
+ Preference a = get(list,"a");
+ assertEquals("B",a.getValue());
+ assertTrue(a.hasParam("b"));
+ assertEquals("c",a.getParam("B"));
+
+ System.out.println(a.getParam("b"));
+ System.out.println(a.getParam("c"));
+
+ }
+
+}
Propchange: abdera/abdera2/test/src/main/java/org/apache/abdera2/test/common/http/PreferenceTest.java
------------------------------------------------------------------------------
svn:mime-type = text/plain