System.out.println("testSerializeWithMapping"); JsonSerDe serde = getMappedSerde();
/** * Test of getSerializedClass method, of class JsonSerDe. */ @Test public void testGetSerializedClass() throws Exception { JsonSerDe instance = new JsonSerDe(); initialize(instance); System.out.println("getSerializedClass"); Class expResult = Text.class; Class result = instance.getSerializedClass(); assertEquals(expResult, result); }
@Test public void testDeserialize2Initializations() throws Exception { JsonSerDe instance = new JsonSerDe(); initialize(instance); Writable w = new Text("{\"one\":true,\"three\":[\"red\",\"yellow\",[\"blue\",\"azure\",\"cobalt\",\"teal\"],\"orange\"],\"two\":19.5,\"four\":\"poop\"}"); JSONObject result = (JSONObject) instance.deserialize(w); assertEquals(result.get("four"), "poop"); assertTrue(result.get("three") instanceof JSONArray); assertTrue(((JSONArray) result.get("three")).get(0) instanceof String); assertEquals(((JSONArray) result.get("three")).get(0), "red"); // second initialization, new column initialize2(instance); result = (JSONObject) instance.deserialize(w); assertEquals(result.get("four"), "poop"); assertTrue(result.get("three") instanceof JSONArray); assertTrue(((JSONArray) result.get("three")).get(0) instanceof String); assertEquals(((JSONArray) result.get("three")).get(0), "red"); }
/** * Test scientific notation */ @Test public void testENotationNumbers() throws SerDeException, JSONException { System.out.println("testNumbers"); JsonSerDe serde = getNumericSerde(); Text line = new Text("{ cfloat:3.1415E02, cdouble:-1.65788E-12}"); StructObjectInspector soi = (StructObjectInspector) serde.getObjectInspector(); JSONObject result = (JSONObject) serde.deserialize(line); StructField sf = soi.getStructFieldRef("cfloat"); assertTrue(sf.getFieldObjectInspector() instanceof JavaStringFloatObjectInspector); JavaStringFloatObjectInspector foi = (JavaStringFloatObjectInspector) sf.getFieldObjectInspector(); assertEquals(3.1415E02 , foi.get(result.get("cfloat")),0.001); sf = soi.getStructFieldRef("cdouble"); assertTrue(sf.getFieldObjectInspector() instanceof JavaStringDoubleObjectInspector); JavaStringDoubleObjectInspector doi = (JavaStringDoubleObjectInspector) sf.getFieldObjectInspector(); assertEquals(-1.65788E-12 , doi.get(result.get("cdouble")),0.001); }
System.out.println("testHexSupport"); JsonSerDe serde = getNumericSerde(); Text line = new Text("{ cboolean:true, ctinyint:0x01, csmallint:0x0a, cint:0Xabcd,cbigint:0xabcd121212, cfloat:3.1415, cdouble:43424234234.4243423}");
initialize(instance);
System.out.println("testNumbers"); JsonSerDe serde = getNumericSerde(); Text line = new Text("{ cboolean:true, ctinyint:1, csmallint:200, cint:12345,cbigint:123446767687867, cfloat:3.1415, cdouble:43424234234.4243423}");
@Test public void testMapping() throws SerDeException, IOException { System.out.println("testMapping"); JsonSerDe serde = getMappedSerde(); InputStream is = this.getClass().getResourceAsStream("/testkeyword.txt"); LineNumberReader lnr = new LineNumberReader(new InputStreamReader(is)); StructObjectInspector soi = (StructObjectInspector) serde.getObjectInspector(); StructField sf = soi.getStructFieldRef("ts"); String line; while( (line = lnr.readLine()) != null ) { Text t = new Text(line); Object res = serde.deserialize(t); ObjectInspector foi = sf.getFieldObjectInspector(); assertTrue( foi instanceof JavaStringIntObjectInspector); JavaStringIntObjectInspector jsioi = (JavaStringIntObjectInspector) foi; assertEquals(1234567, jsioi.get(soi.getStructFieldData(res, sf)) ); } try { is.close(); } catch (IOException ex){} }
/** * Test of deserialize method, but passing an array. */ @Test public void testDeserialize() throws Exception { JsonSerDe instance = new JsonSerDe(); initialize(instance); System.out.println("deserialize"); Writable w = new Text("{\"one\":true,\"three\":[\"red\",\"yellow\",\"orange\"],\"two\":19.5,\"four\":\"poop\"}"); JSONObject result = (JSONObject) instance.deserialize(w); assertEquals("poop",result.get("four")); assertTrue(result.get("three") instanceof JSONArray); assertTrue( ((JSONArray)result.get("three")).get(0) instanceof String ); assertEquals("red", ((JSONArray)result.get("three")).get(0)); }
System.out.println("testNumbers"); JsonSerDe serde = getNumericSerde(); Text line = new Text("{ cboolean:true, ctinyint:-1, csmallint:-200, cint:-12345,cbigint:-123446767687867, cfloat:-3.1415, cdouble:-43424234234.4243423}");
@Test public void testDeserializePartialFieldSet() throws Exception { Writable w = new Text("{\"missing\":\"whocares\",\"one\":true,\"three\":[\"red\",\"yellow\",[\"blue\",\"azure\",\"cobalt\",\"teal\"],\"orange\"],\"two\":19.5,\"four\":\"poop\"}"); JsonSerDe instance = new JsonSerDe(); initialize(instance); JSONObject result = (JSONObject) instance.deserialize(w); assertEquals(result.get("four"),"poop"); assertTrue( result.get("three") instanceof JSONArray); assertTrue( ((JSONArray)result.get("three")).get(0) instanceof String ); assertEquals( ((JSONArray)result.get("three")).get(0),"red"); }
@Test public void testDeserialize2() throws Exception { JsonSerDe instance = new JsonSerDe(); initialize(instance); Writable w = new Text("{\"one\":true,\"three\":[\"red\",\"yellow\",[\"blue\",\"azure\",\"cobalt\",\"teal\"],\"orange\"],\"two\":19.5,\"four\":\"poop\"}"); JSONObject result = (JSONObject) instance.deserialize(w); assertEquals("poop", result.get("four")); assertTrue(result.get("three") instanceof JSONArray); assertTrue(((JSONArray) result.get("three")).get(0) instanceof String); assertEquals("red", ((JSONArray) result.get("three")).get(0)); }
public void testDeserializeNull() throws Exception { JsonSerDe instance = new JsonSerDe(); initialize(instance);
public void testDeserializeArray() throws Exception { JsonSerDe instance = new JsonSerDe(); initialize(instance);