@Test public void testUnsupportedParsing() throws Exception { Map value = new ObjectMapper().readValue(getClass().getResourceAsStream("attachment.json"), Map.class); Field fl = Field.parseField(value); assertEquals("person", fl.name()); assertEquals(0, fl.properties().length); }
@Test public void testCompletionParsing() throws Exception { Map value = new ObjectMapper().readValue(getClass().getResourceAsStream("completion.json"), Map.class); Field fl = Field.parseField(value); assertEquals("song", fl.name()); Field[] props = fl.properties(); assertEquals(1, props.length); assertEquals("name", props[0].name()); }
@Test public void testMultiFieldParsing() throws Exception { Map value = new ObjectMapper().readValue(getClass().getResourceAsStream("multi_field.json"), Map.class); Field fl = Field.parseField(value); assertEquals("tweet", fl.name()); assertEquals(1, fl.properties().length); Field nested = fl.properties()[0]; assertEquals("name", nested.name()); assertEquals(FieldType.STRING, nested.type()); }
@Test(expected = EsHadoopIllegalArgumentException.class) public void testMultiFieldWithoutDefaultFieldAndMultiTypesParsing() throws Exception { Map value = new ObjectMapper() .readValue( getClass().getResourceAsStream("multi_field_no_default_multi_types.json"), Map.class); Field fl = Field.parseField(value); assertEquals("tweet", fl.name()); assertEquals(1, fl.properties().length); Field nested = fl.properties()[0]; assertEquals("name", nested.name()); assertEquals(FieldType.STRING, nested.type()); }
@Test public void testFieldInclude() throws Exception { Map value = new ObjectMapper().readValue(getClass().getResourceAsStream("nested.json"), Map.class); Field fl = Field.parseField(value); Field filtered = MappingUtils.filter(fl, Collections.singleton("*a*e"), Collections.<String>emptyList()); assertThat(fl.name(), is(filtered.name())); assertThat(fl.type(), is(filtered.type())); Field[] props = filtered.properties(); assertThat(props.length, is(2)); assertThat(props[0].name(), is("date")); assertThat(props[1].name(), is("name")); }
@Test public void testFieldValidation() throws Exception { Map value = new ObjectMapper().readValue(getClass().getResourceAsStream("nested.json"), Map.class); Field fl = Field.parseField(value); List<String>[] findFixes = MappingUtils.findTypos(Collections.singletonList("nam"), fl); assertThat(findFixes[1], contains("name")); findFixes = MappingUtils.findTypos(Collections.singletonList("link.url"), fl); assertThat(findFixes[1], contains("links.url")); findFixes = MappingUtils.findTypos(Collections.singletonList("ulr"), fl); assertThat(findFixes[1], contains("links.url")); findFixes = MappingUtils.findTypos(Collections.singletonList("likn"), fl); assertThat(findFixes[1], contains("links")); findFixes = MappingUtils.findTypos(Collections.singletonList("_uid"), fl); assertThat(findFixes, is(nullValue())); }
@Test public void testBasicParsing() throws Exception { Map value = new ObjectMapper().readValue(getClass().getResourceAsStream("basic.json"), Map.class); Field fl = Field.parseField(value); }
@Test public void testNestedObjectParsing() throws Exception { Map value = new ObjectMapper().readValue(getClass().getResourceAsStream("nested.json"), Map.class); Field fl = Field.parseField(value); assertEquals("artiststimestamp", fl.name()); Field[] properties = fl.properties(); Field first = properties[0]; assertEquals("date", first.name()); assertEquals(FieldType.DATE, first.type()); Field second = properties[1]; assertEquals(FieldType.OBJECT, second.type()); assertEquals("links", second.name()); Field[] secondProps = second.properties(); assertEquals("url", secondProps[0].name()); assertEquals(FieldType.STRING, secondProps[0].type()); }
@Test public void testIpParsing() throws Exception { Map value = new ObjectMapper().readValue(getClass().getResourceAsStream("ip.json"), Map.class); Field fl = Field.parseField(value); assertEquals(1, fl.properties().length); }