diff --git a/contrib/dataimporthandler/src/test/java/org/apache/solr/handler/dataimport/TestXPathRecordReader.java b/contrib/dataimporthandler/src/test/java/org/apache/solr/handler/dataimport/TestXPathRecordReader.java index 84ba12bd0c0..5e99f1abee0 100644 --- a/contrib/dataimporthandler/src/test/java/org/apache/solr/handler/dataimport/TestXPathRecordReader.java +++ b/contrib/dataimporthandler/src/test/java/org/apache/solr/handler/dataimport/TestXPathRecordReader.java @@ -57,6 +57,40 @@ public class TestXPathRecordReader { Assert.assertEquals("x0", l.get(0).get("a")); Assert.assertEquals("y1", l.get(1).get("b")); } + + @Test + public void attrInRoot(){ + String xml = "\n" + + "\n" + + " \n" + + " \n" + + " 301.46\n" + + "\n" + + "\n" + + " \n" + + " \n" + + " 302.46\n" + + "\n" + + "\n" + + ""; + XPathRecordReader rr = new XPathRecordReader("/r/merchantProduct"); + rr.addField("id", "/r/merchantProduct/@id", false); + rr.addField("mid", "/r/merchantProduct/@mid", false); + rr.addField("price", "/r/merchantProduct/price", false); + rr.addField("conditionType", "/r/merchantProduct/condition/@type", false); + List> l = rr.getAllRecords(new StringReader(xml)); + Map m = l.get(0); + Assert.assertEquals("814636051", m.get("id")); + Assert.assertEquals("189973", m.get("mid")); + Assert.assertEquals("301.46", m.get("price")); + Assert.assertEquals("cond-0", m.get("conditionType")); + + m = l.get(1); + Assert.assertEquals("814636052", m.get("id")); + Assert.assertEquals("189974", m.get("mid")); + Assert.assertEquals("302.46", m.get("price")); + Assert.assertEquals("cond-1", m.get("conditionType")); + } @Test public void attributes2Level() {