UdgerIpTest.java
1package org.udger.parser;
2
3import java.io.IOException;
4import java.io.InputStream;
5import java.net.UnknownHostException;
6import java.sql.SQLException;
7
8import javax.json.JsonArray;
9import javax.json.JsonObject;
10import javax.json.JsonReader;
11
12public class UdgerIpTest {
13
14 public static void main(String args[]) {
15 InputStream is = UdgerUaTest.class.getResourceAsStream("test_ip.json");
16 JsonReader jr = javax.json.Json.createReader(is);
17 JsonArray ja = jr.readArray();
18 UdgerParser up = null;
19 try {
20 UdgerParser.ParserDbData parserDbData = new UdgerParser.ParserDbData("udgerdb_v3.dat");
21 up = new UdgerParser(parserDbData);
22 for (int i=0; i < ja.size(); i++) {
23 JsonObject jar = ja.getJsonObject(i);
24 JsonObject jor = jar.getJsonObject("ret");
25 String query = jar.getJsonObject("test").getString("teststring");
26 try {
27 UdgerIpResult ret = up.parseIp(query);
28 System.out.print("### Test : " + (i+1) + " - ");
29 if (checkResult(ret, jor)) {
30 System.out.println("SUCCEEDED");
31 } else {
32 System.out.println("FAILED!");
33 }
34 System.out.println("Query: " + query);
35// System.out.println("Result: " + ReflectionToStringBuilder.toString(ret, ToStringStyle.MULTI_LINE_STYLE));
36
37 } catch (SQLException e) {
38 e.printStackTrace();
39 } catch (UnknownHostException e) {
40 // TODO Auto-generated catch block
41 e.printStackTrace();
42 }
43 }
44 } finally {
45 if (up != null) {
46 try {
47 up.close();
48 } catch (IOException e) {
49 }
50 }
51 }
52 }
53
54 private static boolean checkResult(UdgerIpResult ret, JsonObject jor) {
55 boolean result = true;
56 result = testEqual(jor, "ip_classification_code", ret.getIpClassificationCode()) && result;
57 result = testEqual(jor, "datacenter_homepage", ret.getDataCenterHomePage()) && result;
58 result = testEqual(jor, "crawler_respect_robotstxt", ret.getCrawlerRespectRobotstxt()) && result;
59 result = testEqual(jor, "crawler_family_vendor_code", ret.getCrawlerFamilyVendorCode()) && result;
60 result = testEqual(jor, "crawler_category", ret.getCrawlerCategory()) && result;
61 result = testEqual(jor, "crawler_ver_major", ret.getCrawlerVerMajor()) && result;
62 result = testEqual(jor, "ip_country", ret.getIpCountry()) && result;
63 result = testEqual(jor, "crawler_ver", ret.getCrawlerVer()) && result;
64 result = testEqual(jor, "crawler_name", ret.getCrawlerName()) && result;
65 result = testEqual(jor, "ip_city", ret.getIpCity()) && result;
66 result = testEqual(jor, "datacenter_name_code", ret.getDataCenterNameCode()) && result;
67 result = testEqual(jor, "crawler_family_info_url", ret.getCrawlerFamilyInfoUrl()) && result;
68 result = testEqual(jor, "ip_country_code", ret.getIpCountryCode()) && result;
69 result = testEqual(jor, "ip_ver", String.valueOf(ret.getIpVer())) && result;
70 result = testEqual(jor, "ip_classification", ret.getIpClassification()) && result;
71 result = testEqual(jor, "crawler_family_code", ret.getCrawlerFamilyCode()) && result;
72 result = testEqual(jor, "crawler_family_icon", ret.getCrawlerFamilyIcon()) && result;
73 result = testEqual(jor, "crawler_family_homepage", ret.getCrawlerFamilyHomepage()) && result;
74 result = testEqual(jor, "crawler_family_vendor_homepage", ret.getCrawlerFamilyVendorHomepage()) && result;
75 result = testEqual(jor, "datacenter_name", ret.getDataCenterName()) && result;
76 result = testEqual(jor, "ip", ret.getIp()) && result;
77 result = testEqual(jor, "crawler_family", ret.getCrawlerFamily()) && result;
78 result = testEqual(jor, "ip_hostname", ret.getIpHostname()) && result;
79 result = testEqual(jor, "crawler_category_code", ret.getCrawlerCategoryCode()) && result;
80 result = testEqual(jor, "crawler_family_vendor", ret.getCrawlerFamilyVendor()) && result;
81 return result;
82 }
83
84 private static boolean testEqual(JsonObject jor, String test, String ret) {
85 String expected = jor.getString(test);
86 if (!expected.equals(ret)) {
87 System.out.println("Failed \"" + test + "\" : value=" + ret + " expected:" + expected);
88 return false;
89 }
90 return true;
91 }
92}
UdgerIpResult parseIp(String ipString)