public ScrollReaderTest(boolean readMetadata, String metadataField) { this.readMetadata = readMetadata; this.metadataField = metadataField; reader = new ScrollReader(getScrollReaderCfg()); }
@Test public void testScrollMultiValueList() throws IOException { reader = new ScrollReader(getScrollReaderCfg()); InputStream stream = getClass().getResourceAsStream(scrollData("list")); List<Object[]> read = reader.read(stream).getHits(); assertEquals(1, read.size()); Object[] objects = read.get(0); Map map = (Map) read.get(0)[1]; List links = (List) map.get("links"); assertTrue(links.contains(null)); }
@Test public void testScrollWithSource() throws IOException { reader = new ScrollReader(getScrollReaderCfg()); InputStream stream = getClass().getResourceAsStream(scrollData("source")); List<Object[]> read = reader.read(stream).getHits(); assertEquals(3, read.size()); Object[] objects = read.get(0); assertTrue(((Map) objects[1]).containsKey("source")); }
@Test public void testScrollWithoutSource() throws IOException { reader = new ScrollReader(getScrollReaderCfg()); InputStream stream = getClass().getResourceAsStream(scrollData("empty-source")); List<Object[]> read = reader.read(stream).getHits(); assertEquals(2, read.size()); Object[] objects = read.get(0); if (readMetadata) { assertTrue(((Map) objects[1]).containsKey(metadataField)); } else { assertTrue(((Map) objects[1]).isEmpty()); } }
@Test public void testScrollWithMultipleTypes() throws Exception { MappingSet mappings = getLegacyMappingSet("multi-type"); // Make our own scroll reader, that ignores unmapped values like the rest of the code ScrollReaderConfigBuilder scrollCfg = getScrollReaderCfg().setResolvedMapping(mappings.getResolvedView()); ScrollReader myReader = new ScrollReader(scrollCfg); InputStream stream = getClass().getResourceAsStream(scrollData("multi-type")); List<Object[]> read = myReader.read(stream).getHits(); assertEquals(3, read.size()); Object[] row1 = read.get(0); assertTrue(((Map) row1[1]).containsKey("field1")); assertEquals("value1", ((Map) row1[1]).get("field1")); assertTrue(((Map) row1[1]).containsKey("field2")); assertEquals("value2", ((Map) row1[1]).get("field2")); Object[] row2 = read.get(1); assertTrue(((Map) row2[1]).containsKey("field3")); assertEquals("value3", ((Map) row2[1]).get("field3")); Object[] row3 = read.get(2); assertTrue(((Map) row3[1]).containsKey("field4")); assertEquals("value4", ((Map) row3[1]).get("field4")); }
@Test public void testScrollWithNestedFields() throws IOException { MappingSet fl = getMappingSet("source"); ScrollReaderConfigBuilder scrollReaderConfig = getScrollReaderCfg().setResolvedMapping(fl.getResolvedView()); reader = new ScrollReader(scrollReaderConfig); InputStream stream = getClass().getResourceAsStream(scrollData("source")); List<Object[]> read = reader.read(stream).getHits(); assertEquals(3, read.size()); Object[] objects = read.get(0); assertTrue(((Map) objects[1]).containsKey("source")); Map map = (Map) read.get(2)[1]; Map number = (Map) map.get("links"); Object value = number.get("number"); assertNotNull(value); assertTrue(value instanceof Short); assertEquals(Short.valueOf((short) 125), value); }
MappingSet mappings = getMappingSet("join"); ScrollReaderConfigBuilder scrollCfg = getScrollReaderCfg().setResolvedMapping(mappings.getResolvedView()); ScrollReader myReader = new ScrollReader(scrollCfg);