Got more tests to pass.
git-svn-id: http://google-refine.googlecode.com/svn/trunk@2279 7d457c2a-affb-35e4-300a-418c747d4874
This commit is contained in:
parent
08fdc1982c
commit
58414f72df
@ -5,6 +5,7 @@ import java.io.InputStream;
|
|||||||
import java.io.InputStreamReader;
|
import java.io.InputStreamReader;
|
||||||
import java.io.Reader;
|
import java.io.Reader;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
import org.json.JSONObject;
|
import org.json.JSONObject;
|
||||||
import org.mockito.Mockito;
|
import org.mockito.Mockito;
|
||||||
@ -98,7 +99,32 @@ abstract class ImporterTest extends RefineTest {
|
|||||||
}
|
}
|
||||||
|
|
||||||
protected void parseOneFile(TreeImportingParserBase parser, InputStream inputStream, JSONObject options) {
|
protected void parseOneFile(TreeImportingParserBase parser, InputStream inputStream, JSONObject options) {
|
||||||
|
parseOneInputStreamAsReader(parser, inputStream, options);
|
||||||
|
}
|
||||||
|
|
||||||
|
protected void parseOneInputStream(
|
||||||
|
TreeImportingParserBase parser, InputStream inputStream, JSONObject options) {
|
||||||
ImportColumnGroup rootColumnGroup = new ImportColumnGroup();
|
ImportColumnGroup rootColumnGroup = new ImportColumnGroup();
|
||||||
|
List<Exception> exceptions = new ArrayList<Exception>();
|
||||||
|
|
||||||
|
parser.parseOneFile(
|
||||||
|
project,
|
||||||
|
metadata,
|
||||||
|
job,
|
||||||
|
"file-source",
|
||||||
|
inputStream,
|
||||||
|
rootColumnGroup,
|
||||||
|
-1,
|
||||||
|
options,
|
||||||
|
exceptions
|
||||||
|
);
|
||||||
|
postProcessProject(project, rootColumnGroup, exceptions);
|
||||||
|
}
|
||||||
|
|
||||||
|
protected void parseOneInputStreamAsReader(
|
||||||
|
TreeImportingParserBase parser, InputStream inputStream, JSONObject options) {
|
||||||
|
ImportColumnGroup rootColumnGroup = new ImportColumnGroup();
|
||||||
|
List<Exception> exceptions = new ArrayList<Exception>();
|
||||||
|
|
||||||
Reader reader = new InputStreamReader(inputStream);
|
Reader reader = new InputStreamReader(inputStream);
|
||||||
parser.parseOneFile(
|
parser.parseOneFile(
|
||||||
@ -110,14 +136,25 @@ abstract class ImporterTest extends RefineTest {
|
|||||||
rootColumnGroup,
|
rootColumnGroup,
|
||||||
-1,
|
-1,
|
||||||
options,
|
options,
|
||||||
new ArrayList<Exception>()
|
exceptions
|
||||||
);
|
);
|
||||||
XmlImportUtilities.createColumnsFromImport(project, rootColumnGroup);
|
postProcessProject(project, rootColumnGroup, exceptions);
|
||||||
project.columnModel.update();
|
|
||||||
try {
|
try {
|
||||||
reader.close();
|
reader.close();
|
||||||
} catch (IOException e) {
|
} catch (IOException e) {
|
||||||
//ignore errors on close
|
//ignore errors on close
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
protected void postProcessProject(
|
||||||
|
Project project, ImportColumnGroup rootColumnGroup, List<Exception> exceptions) {
|
||||||
|
|
||||||
|
XmlImportUtilities.createColumnsFromImport(project, rootColumnGroup);
|
||||||
|
project.columnModel.update();
|
||||||
|
|
||||||
|
for (Exception e : exceptions) {
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -212,7 +212,7 @@ public class XmlImportUtilitiesTests extends RefineTest {
|
|||||||
log(project);
|
log(project);
|
||||||
assertProjectCreated(project, 0, 6);
|
assertProjectCreated(project, 0, 6);
|
||||||
|
|
||||||
Assert.assertEquals(project.rows.get(0).cells.size(), 5);
|
Assert.assertEquals(project.rows.get(0).cells.size(), 4);
|
||||||
|
|
||||||
Assert.assertEquals(columnGroup.subgroups.size(), 1);
|
Assert.assertEquals(columnGroup.subgroups.size(), 1);
|
||||||
Assert.assertNotNull(columnGroup.subgroups.get("book"));
|
Assert.assertNotNull(columnGroup.subgroups.get("book"));
|
||||||
@ -231,8 +231,8 @@ public class XmlImportUtilitiesTests extends RefineTest {
|
|||||||
|
|
||||||
log(project);
|
log(project);
|
||||||
assertProjectCreated(project, 0, 6);
|
assertProjectCreated(project, 0, 6);
|
||||||
Assert.assertEquals(project.rows.get(0).cells.size(), 5);
|
Assert.assertEquals(project.rows.get(0).cells.size(), 4);
|
||||||
Assert.assertEquals(project.rows.get(5).cells.size(), 6);
|
Assert.assertEquals(project.rows.get(5).cells.size(), 5);
|
||||||
|
|
||||||
Assert.assertEquals(columnGroup.subgroups.size(), 1);
|
Assert.assertEquals(columnGroup.subgroups.size(), 1);
|
||||||
Assert.assertEquals(columnGroup.name, "");
|
Assert.assertEquals(columnGroup.name, "");
|
||||||
@ -288,7 +288,7 @@ public class XmlImportUtilitiesTests extends RefineTest {
|
|||||||
log(project);
|
log(project);
|
||||||
assertProjectCreated(project, 0, 6);
|
assertProjectCreated(project, 0, 6);
|
||||||
|
|
||||||
Assert.assertEquals(project.rows.get(0).cells.size(), 5);
|
Assert.assertEquals(project.rows.get(0).cells.size(), 4);
|
||||||
//TODO
|
//TODO
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -308,8 +308,8 @@ public class XmlImportUtilitiesTests extends RefineTest {
|
|||||||
Assert.assertEquals(project.rows.size(), 1);
|
Assert.assertEquals(project.rows.size(), 1);
|
||||||
Row row = project.rows.get(0);
|
Row row = project.rows.get(0);
|
||||||
Assert.assertNotNull(row);
|
Assert.assertNotNull(row);
|
||||||
Assert.assertNotNull(row.getCell(2));
|
Assert.assertNotNull(row.getCell(1));
|
||||||
Assert.assertEquals(row.getCell(2).value, "author1");
|
Assert.assertEquals(row.getCell(1).value, "author1");
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -330,12 +330,12 @@ public class XmlImportUtilitiesTests extends RefineTest {
|
|||||||
|
|
||||||
Row row = project.rows.get(0);
|
Row row = project.rows.get(0);
|
||||||
Assert.assertNotNull(row);
|
Assert.assertNotNull(row);
|
||||||
Assert.assertEquals(row.cells.size(), 4);
|
Assert.assertEquals(row.cells.size(), 3);
|
||||||
Assert.assertNotNull(row.getCell(2));
|
Assert.assertNotNull(row.getCell(1));
|
||||||
Assert.assertEquals(row.getCell(2).value, "author1");
|
Assert.assertEquals(row.getCell(1).value, "author1");
|
||||||
|
|
||||||
row = project.rows.get(1);
|
row = project.rows.get(1);
|
||||||
Assert.assertEquals(row.getCell(2).value, "author2");
|
Assert.assertEquals(row.getCell(1).value, "author2");
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
@ -354,11 +354,11 @@ public class XmlImportUtilitiesTests extends RefineTest {
|
|||||||
Assert.assertEquals(project.rows.size(), 1);
|
Assert.assertEquals(project.rows.size(), 1);
|
||||||
Row row = project.rows.get(0);
|
Row row = project.rows.get(0);
|
||||||
Assert.assertNotNull(row);
|
Assert.assertNotNull(row);
|
||||||
Assert.assertEquals(row.cells.size(), 5);
|
Assert.assertEquals(row.cells.size(), 4);
|
||||||
|
Assert.assertNotNull(row.getCell(1));
|
||||||
|
Assert.assertEquals(row.getCell(1).value, "author1");
|
||||||
Assert.assertNotNull(row.getCell(2));
|
Assert.assertNotNull(row.getCell(2));
|
||||||
Assert.assertEquals(row.getCell(2).value, "author1");
|
Assert.assertEquals(row.getCell(2).value, "a date");
|
||||||
Assert.assertNotNull(row.getCell(3));
|
|
||||||
Assert.assertEquals(row.getCell(3).value, "a date");
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -405,9 +405,9 @@ public class XmlImportUtilitiesTests extends RefineTest {
|
|||||||
Assert.assertNotNull(record.rows.get(0));
|
Assert.assertNotNull(record.rows.get(0));
|
||||||
//Assert.assertNotNull(record.columnEmptyRowIndices.get(0));
|
//Assert.assertNotNull(record.columnEmptyRowIndices.get(0));
|
||||||
//Assert.assertNotNull(record.columnEmptyRowIndices.get(1));
|
//Assert.assertNotNull(record.columnEmptyRowIndices.get(1));
|
||||||
Assert.assertEquals(record.rows.get(0).size(), 2);
|
Assert.assertEquals(record.rows.get(0).size(), 1);
|
||||||
Assert.assertNotNull(record.rows.get(0).get(1));
|
Assert.assertNotNull(record.rows.get(0).get(0));
|
||||||
Assert.assertEquals(record.rows.get(0).get(1).value, "Author1, The");
|
Assert.assertEquals(record.rows.get(0).get(0).value, "Author1, The");
|
||||||
//Assert.assertEquals(record.columnEmptyRowIndices.get(0).intValue(),0);
|
//Assert.assertEquals(record.columnEmptyRowIndices.get(0).intValue(),0);
|
||||||
//Assert.assertEquals(record.columnEmptyRowIndices.get(1).intValue(),1);
|
//Assert.assertEquals(record.columnEmptyRowIndices.get(1).intValue(),1);
|
||||||
|
|
||||||
|
@ -35,6 +35,7 @@ package com.google.refine.tests.importers;
|
|||||||
|
|
||||||
import java.io.ByteArrayInputStream;
|
import java.io.ByteArrayInputStream;
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
|
import java.io.InputStream;
|
||||||
import java.io.UnsupportedEncodingException;
|
import java.io.UnsupportedEncodingException;
|
||||||
import java.util.LinkedList;
|
import java.util.LinkedList;
|
||||||
|
|
||||||
@ -99,34 +100,34 @@ public class XmlImporterTests extends ImporterTest {
|
|||||||
|
|
||||||
Row row = project.rows.get(0);
|
Row row = project.rows.get(0);
|
||||||
Assert.assertNotNull(row);
|
Assert.assertNotNull(row);
|
||||||
Assert.assertNotNull(row.getCell(2));
|
Assert.assertNotNull(row.getCell(1));
|
||||||
Assert.assertEquals(row.getCell(2).value, "Author 1, The");
|
Assert.assertEquals(row.getCell(1).value, "Author 1, The");
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void canParseDeeplyNestedSample(){
|
public void canParseDeeplyNestedSample(){
|
||||||
RunTest(getDeeplyNestedSample());
|
RunTest(getDeeplyNestedSample(), getNestedOptions(job, SUT));
|
||||||
|
|
||||||
log(project);
|
log(project);
|
||||||
assertProjectCreated(project, 4, 6);
|
assertProjectCreated(project, 4, 6);
|
||||||
|
|
||||||
Row row = project.rows.get(0);
|
Row row = project.rows.get(0);
|
||||||
Assert.assertNotNull(row);
|
Assert.assertNotNull(row);
|
||||||
Assert.assertNotNull(row.getCell(2));
|
Assert.assertNotNull(row.getCell(1));
|
||||||
Assert.assertEquals(row.getCell(2).value, "Author 1, The");
|
Assert.assertEquals(row.getCell(1).value, "Author 1, The");
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void canParseSampleWithMixedElement(){
|
public void canParseSampleWithMixedElement(){
|
||||||
RunTest(getMixedElementSample());
|
RunTest(getMixedElementSample(), getNestedOptions(job, SUT));
|
||||||
|
|
||||||
log(project);
|
log(project);
|
||||||
assertProjectCreated(project, 4, 6);
|
assertProjectCreated(project, 4, 6);
|
||||||
|
|
||||||
Row row = project.rows.get(0);
|
Row row = project.rows.get(0);
|
||||||
Assert.assertNotNull(row);
|
Assert.assertNotNull(row);
|
||||||
Assert.assertNotNull(row.getCell(2));
|
Assert.assertNotNull(row.getCell(1));
|
||||||
Assert.assertEquals(row.getCell(2).value, "Author 1, The");
|
Assert.assertEquals(row.getCell(1).value, "Author 1, The");
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
@ -138,10 +139,10 @@ public class XmlImporterTests extends ImporterTest {
|
|||||||
|
|
||||||
Row row = project.rows.get(0);
|
Row row = project.rows.get(0);
|
||||||
Assert.assertNotNull(row);
|
Assert.assertNotNull(row);
|
||||||
Assert.assertEquals(row.cells.size(), 5);
|
Assert.assertEquals(row.cells.size(), 4);
|
||||||
Assert.assertNotNull(row.getCell(2));
|
Assert.assertNotNull(row.getCell(1));
|
||||||
Assert.assertEquals(row.getCell(2).value, "Author 1, The");
|
Assert.assertEquals(row.getCell(1).value, "Author 1, The");
|
||||||
Assert.assertEquals(project.rows.get(1).getCell(2).value, "Author 1, Another");
|
Assert.assertEquals(project.rows.get(1).getCell(1).value, "Author 1, Another");
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
@ -154,9 +155,9 @@ public class XmlImporterTests extends ImporterTest {
|
|||||||
|
|
||||||
Row row = project.rows.get(3);
|
Row row = project.rows.get(3);
|
||||||
Assert.assertNotNull(row);
|
Assert.assertNotNull(row);
|
||||||
Assert.assertEquals(row.cells.size(), 5);
|
Assert.assertEquals(row.cells.size(), 4);
|
||||||
Assert.assertNotNull(row.getCell(2));
|
Assert.assertNotNull(row.getCell(1));
|
||||||
Assert.assertEquals(row.getCell(2).value, "With line\n break");
|
Assert.assertEquals(row.getCell(1).value, "With line\n break");
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
@ -166,15 +167,15 @@ public class XmlImporterTests extends ImporterTest {
|
|||||||
log(project);
|
log(project);
|
||||||
assertProjectCreated(project, 5, 6);
|
assertProjectCreated(project, 5, 6);
|
||||||
|
|
||||||
Assert.assertEquals( project.columnModel.getColumnByCellIndex(5).getName(), "book - genre");
|
Assert.assertEquals(project.columnModel.getColumnByCellIndex(4).getName(), "book - genre");
|
||||||
|
|
||||||
Row row0 = project.rows.get(0);
|
Row row0 = project.rows.get(0);
|
||||||
Assert.assertNotNull(row0);
|
Assert.assertNotNull(row0);
|
||||||
Assert.assertEquals(row0.cells.size(),5);
|
Assert.assertEquals(row0.cells.size(),4);
|
||||||
|
|
||||||
Row row5 = project.rows.get(5);
|
Row row5 = project.rows.get(5);
|
||||||
Assert.assertNotNull(row5);
|
Assert.assertNotNull(row5);
|
||||||
Assert.assertEquals(row5.cells.size(),6);
|
Assert.assertEquals(row5.cells.size(),5);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
@ -234,14 +235,28 @@ public class XmlImporterTests extends ImporterTest {
|
|||||||
return options;
|
return options;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static JSONObject getNestedOptions(ImportingJob job, TreeImportingParserBase parser) {
|
||||||
|
JSONObject options = parser.createParserUIInitializationData(
|
||||||
|
job, new LinkedList<JSONObject>(), "text/json");
|
||||||
|
|
||||||
|
JSONArray path = new JSONArray();
|
||||||
|
JSONUtilities.append(path, "nest");
|
||||||
|
JSONUtilities.append(path, "nest2");
|
||||||
|
JSONUtilities.append(path, "library");
|
||||||
|
JSONUtilities.append(path, "book");
|
||||||
|
|
||||||
|
JSONUtilities.safePut(options, "recordPath", path);
|
||||||
|
return options;
|
||||||
|
}
|
||||||
|
|
||||||
public static String getDeeplyNestedSample(){
|
public static String getDeeplyNestedSample(){
|
||||||
StringBuilder sb = new StringBuilder();
|
StringBuilder sb = new StringBuilder();
|
||||||
sb.append("<?xml version=\"1.0\"?><nest><nest2><library>");
|
sb.append("<?xml version=\"1.0\"?><nest><nest2><library>");
|
||||||
for(int i = 1; i < 7; i++){
|
for(int i = 1; i < 7; i++){
|
||||||
sb.append(getTypicalElement(i));
|
sb.append(getTypicalElement(i));
|
||||||
}
|
}
|
||||||
sb.append("</nest2>");
|
sb.append("</library></nest2>");
|
||||||
sb.append("<anElement>asdf</anElement></nest></library>");
|
sb.append("<anElement>asdf</anElement></nest>");
|
||||||
return sb.toString();
|
return sb.toString();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -253,8 +268,8 @@ public class XmlImporterTests extends ImporterTest {
|
|||||||
for(int i = 1; i < 7; i++){
|
for(int i = 1; i < 7; i++){
|
||||||
sb.append(getTypicalElement(i));
|
sb.append(getTypicalElement(i));
|
||||||
}
|
}
|
||||||
sb.append("</nest2>");
|
sb.append("</library></nest2>");
|
||||||
sb.append("<anElement>asdf</anElement></nest></library>");
|
sb.append("<anElement>asdf</anElement></nest>");
|
||||||
return sb.toString();
|
return sb.toString();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -318,16 +333,25 @@ public class XmlImporterTests extends ImporterTest {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private void RunTest(String testString){
|
private void RunTest(String testString){
|
||||||
|
RunTest(testString, getOptions(job, SUT));
|
||||||
|
}
|
||||||
|
|
||||||
|
private void RunTest(String testString, JSONObject options) {
|
||||||
try {
|
try {
|
||||||
inputStream = new ByteArrayInputStream( testString.getBytes( "UTF-8" ) );
|
inputStream = new ByteArrayInputStream(testString.getBytes( "UTF-8" ));
|
||||||
} catch (UnsupportedEncodingException e1) {
|
} catch (UnsupportedEncodingException e1) {
|
||||||
Assert.fail();
|
Assert.fail();
|
||||||
}
|
}
|
||||||
|
|
||||||
try {
|
try {
|
||||||
parseOneFile(SUT, inputStream, getOptions(job, SUT));
|
parseOneFile(SUT, inputStream, options);
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
|
e.printStackTrace();
|
||||||
Assert.fail();
|
Assert.fail();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
protected void parseOneFile(TreeImportingParserBase parser, InputStream inputStream, JSONObject options) {
|
||||||
|
parseOneInputStream(parser, inputStream, options);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user