You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@devicemap.apache.org by re...@apache.org on 2014/07/23 01:32:54 UTC
svn commit: r1612726 - in
/incubator/devicemap/trunk/devicemap/java/classifier: ./
src/main/java/org/apache/devicemap/ src/main/java/org/apache/devicemap/data/
src/main/java/org/apache/devicemap/loader/impl/
src/test/java/org/apache/devicemap/
Author: rezan
Date: Tue Jul 22 23:32:54 2014
New Revision: 1612726
URL: http://svn.apache.org/r1612726
Log:
classify() map cannot be modified
Added:
incubator/devicemap/trunk/devicemap/java/classifier/src/test/java/org/apache/devicemap/DeviceMapClientUnitTest.java
- copied, changed from r1612721, incubator/devicemap/trunk/devicemap/java/classifier/src/test/java/org/apache/devicemap/DeviceMapClientJarTest.java
Modified:
incubator/devicemap/trunk/devicemap/java/classifier/pom.xml
incubator/devicemap/trunk/devicemap/java/classifier/src/main/java/org/apache/devicemap/DeviceMapClient.java
incubator/devicemap/trunk/devicemap/java/classifier/src/main/java/org/apache/devicemap/data/DeviceType.java
incubator/devicemap/trunk/devicemap/java/classifier/src/main/java/org/apache/devicemap/loader/impl/DDRLoader.java
Modified: incubator/devicemap/trunk/devicemap/java/classifier/pom.xml
URL: http://svn.apache.org/viewvc/incubator/devicemap/trunk/devicemap/java/classifier/pom.xml?rev=1612726&r1=1612725&r2=1612726&view=diff
==============================================================================
--- incubator/devicemap/trunk/devicemap/java/classifier/pom.xml (original)
+++ incubator/devicemap/trunk/devicemap/java/classifier/pom.xml Tue Jul 22 23:32:54 2014
@@ -26,6 +26,7 @@
<groupId>org.apache</groupId>
<artifactId>apache</artifactId>
<version>14</version>
+ <relativePath></relativePath>
</parent>
<groupId>org.apache.devicemap</groupId>
Modified: incubator/devicemap/trunk/devicemap/java/classifier/src/main/java/org/apache/devicemap/DeviceMapClient.java
URL: http://svn.apache.org/viewvc/incubator/devicemap/trunk/devicemap/java/classifier/src/main/java/org/apache/devicemap/DeviceMapClient.java?rev=1612726&r1=1612725&r2=1612726&view=diff
==============================================================================
--- incubator/devicemap/trunk/devicemap/java/classifier/src/main/java/org/apache/devicemap/DeviceMapClient.java (original)
+++ incubator/devicemap/trunk/devicemap/java/classifier/src/main/java/org/apache/devicemap/DeviceMapClient.java Tue Jul 22 23:32:54 2014
@@ -20,6 +20,7 @@ package org.apache.devicemap;
import java.io.IOException;
import java.util.ArrayList;
+import java.util.Collections;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@@ -36,10 +37,15 @@ public class DeviceMapClient {
//indexes
private Map<String, DeviceType> devices;
private Map<String, List<DeviceType>> patterns;
+
+ private Map<String, String> unknown;
public DeviceMapClient() {
devices = null;
patterns = null;
+ unknown = new HashMap<String, String>();
+ unknown.put("id", Constants.UNKNOWN_ID);
+ unknown = Collections.unmodifiableMap(unknown);
}
public void initDeviceData(LoaderOption option) throws IOException {
@@ -159,8 +165,6 @@ public class DeviceMapClient {
}
private Map<String, String> getUnknownDevice() {
- Map<String, String> unknown = new HashMap<String, String>();
- unknown.put("id", Constants.UNKNOWN_ID);
return unknown;
}
Modified: incubator/devicemap/trunk/devicemap/java/classifier/src/main/java/org/apache/devicemap/data/DeviceType.java
URL: http://svn.apache.org/viewvc/incubator/devicemap/trunk/devicemap/java/classifier/src/main/java/org/apache/devicemap/data/DeviceType.java?rev=1612726&r1=1612725&r2=1612726&view=diff
==============================================================================
--- incubator/devicemap/trunk/devicemap/java/classifier/src/main/java/org/apache/devicemap/data/DeviceType.java (original)
+++ incubator/devicemap/trunk/devicemap/java/classifier/src/main/java/org/apache/devicemap/data/DeviceType.java Tue Jul 22 23:32:54 2014
@@ -18,6 +18,7 @@
*/
package org.apache.devicemap.data;
+import java.util.Collections;
import java.util.Map;
public class DeviceType {
@@ -42,7 +43,7 @@ public class DeviceType {
+ "parentId='" + parentId + "',"
+ "type='" + type + "',"
+ "pattern=" + pattern + ","
- + "attribytes=" + attributes + ".";
+ + "attributes=" + attributes + ".";
}
public String getId() {
@@ -80,4 +81,8 @@ public class DeviceType {
public void setAttributes(Map<String, String> attributes) {
this.attributes = attributes;
}
+
+ public void lockAttributes() {
+ attributes = Collections.unmodifiableMap(attributes);
+ }
}
Modified: incubator/devicemap/trunk/devicemap/java/classifier/src/main/java/org/apache/devicemap/loader/impl/DDRLoader.java
URL: http://svn.apache.org/viewvc/incubator/devicemap/trunk/devicemap/java/classifier/src/main/java/org/apache/devicemap/loader/impl/DDRLoader.java?rev=1612726&r1=1612725&r2=1612726&view=diff
==============================================================================
--- incubator/devicemap/trunk/devicemap/java/classifier/src/main/java/org/apache/devicemap/loader/impl/DDRLoader.java (original)
+++ incubator/devicemap/trunk/devicemap/java/classifier/src/main/java/org/apache/devicemap/loader/impl/DDRLoader.java Tue Jul 22 23:32:54 2014
@@ -210,6 +210,7 @@ public class DDRLoader implements Loader
private void setParentAttributes() {
for (DeviceType device : devices.values()) {
mergeParent(device);
+ device.lockAttributes();
}
}
Copied: incubator/devicemap/trunk/devicemap/java/classifier/src/test/java/org/apache/devicemap/DeviceMapClientUnitTest.java (from r1612721, incubator/devicemap/trunk/devicemap/java/classifier/src/test/java/org/apache/devicemap/DeviceMapClientJarTest.java)
URL: http://svn.apache.org/viewvc/incubator/devicemap/trunk/devicemap/java/classifier/src/test/java/org/apache/devicemap/DeviceMapClientUnitTest.java?p2=incubator/devicemap/trunk/devicemap/java/classifier/src/test/java/org/apache/devicemap/DeviceMapClientUnitTest.java&p1=incubator/devicemap/trunk/devicemap/java/classifier/src/test/java/org/apache/devicemap/DeviceMapClientJarTest.java&r1=1612721&r2=1612726&rev=1612726&view=diff
==============================================================================
--- incubator/devicemap/trunk/devicemap/java/classifier/src/test/java/org/apache/devicemap/DeviceMapClientJarTest.java (original)
+++ incubator/devicemap/trunk/devicemap/java/classifier/src/test/java/org/apache/devicemap/DeviceMapClientUnitTest.java Tue Jul 22 23:32:54 2014
@@ -23,19 +23,60 @@ import org.junit.Assert;
import org.junit.Test;
import org.apache.devicemap.loader.LoaderOption;
+import org.junit.BeforeClass;
-public class DeviceMapClientJarTest {
-
+public class DeviceMapClientUnitTest {
+
+ private static DeviceMapClient client;
+
+ @BeforeClass
+ public static void setupDeviceMapClient() throws Exception {
+ client = new DeviceMapClient();
+ client.initDeviceData(LoaderOption.JAR);
+ }
+
@Test
- public void DeviceMapClientJarTest() throws Exception {
- DeviceMapClient client = new DeviceMapClient();
+ public void DeviceMapClientUnknownTest() throws Exception {
+ Map<String, String> m = client.classify("");
- client.initDeviceData(LoaderOption.JAR);
+ Assert.assertEquals("test ua not unknown", Constants.UNKNOWN_ID, m.get("id"));
+
+ m = client.classify(null);
+
+ Assert.assertEquals("test ua not unknown", Constants.UNKNOWN_ID, m.get("id"));
+ }
+ @Test
+ public void DeviceMapClientMutateTest() throws Exception {
String test = "Mozilla/5.0 (Linux; U; Android 2.2; en; HTC Aria A6380 Build/ERE27) AppleWebKit/540.13+ (KHTML, like Gecko) Version/3.1 Mobile Safari/524.15.0";
Map<String, String> m = client.classify(test);
Assert.assertEquals("test ua not htc aria", "HTC Aria", m.get("id"));
+
+ try {
+ m.put("mutate", "true");
+ Assert.fail("UnsupportedOperationException expected when changing result map");
+ } catch(UnsupportedOperationException uoe) {
+ //pass
+ } catch(Exception ex) {
+ Assert.fail("UnsupportedOperationException expected when changing result map");
+ }
+ }
+
+ @Test
+ public void DeviceMapClientMutateUnknownTest() throws Exception {
+ Map<String, String> m = client.classify("unknown");
+
+ Assert.assertEquals("test ua not unknown", Constants.UNKNOWN_ID, m.get("id"));
+
+ try {
+ m.put("mutate", "true");
+ Assert.fail("UnsupportedOperationException expected when changing result map");
+ } catch(UnsupportedOperationException uoe) {
+ //pass
+ } catch(Exception ex) {
+ Assert.fail("UnsupportedOperationException expected when changing result map");
+ }
}
}