Adding more unit tests for EditN3Generator. Dealing with literals better

This commit is contained in:
briancaruso 2011-11-18 17:07:52 +00:00
parent 5ddd6fecad
commit 876e2d97f1
3 changed files with 74 additions and 5 deletions

View file

@ -148,7 +148,7 @@ public class EditN3GeneratorVTwo {
*
*/
protected String subInLiterals(String var, Literal literal, String target){
String varRegex = "\\?" + var + "(?=\\.\\p{Space}|\\p{Space})";
String varRegex = "\\?" + var + "(?=\\p{Punct}||\\p{Space}|&)";
if (target==null ) {
log.error("subInLiterals was passed a null target");
return "blankBecauseTargetOrValueWasNull";
@ -215,7 +215,7 @@ public class EditN3GeneratorVTwo {
String valueString = org.apache.commons.lang.StringUtils.join(n3Values, ",");
//Substitute it in to n3
String varRegex = "\\?" + var + "(?=\\.\\p{Space}|\\p{Space})";
String varRegex = "\\?" + var + "(?=\\p{Punct}|\\p{Space}|$)";
String out = null;
if( valueString != null )

View file

@ -385,7 +385,8 @@ public abstract class BaseDumpDirective implements TemplateDirectiveModel {
// and other unusual places that can cause problems.
Class<?> c = method.getDeclaringClass();
if (c.equals(java.lang.Object.class) ||
if (c == null ||
c.equals(java.lang.Object.class) ||
c.equals(java.lang.reflect.Constructor.class) ||
c.equals(java.lang.reflect.Field.class ) )
continue;
@ -416,7 +417,8 @@ public abstract class BaseDumpDirective implements TemplateDirectiveModel {
TemplateModel value = model.get(propertyName);
properties.put(propertyName, getDump(value));
}catch(Throwable th){
log.error("problem dumping " + propertyName + " on " + object.getClass().getName(), th);
log.error("problem dumping " + propertyName + " on " + object.getClass().getName() +
" declared in " + c.getName(), th);
}
continue;
}

View file

@ -17,6 +17,8 @@ import com.hp.hpl.jena.rdf.model.Model;
import com.hp.hpl.jena.rdf.model.ModelFactory;
import com.hp.hpl.jena.rdf.model.ResourceFactory;
import edu.cornell.mannlib.vitro.webapp.edit.EditLiteral;
public class EditN3GeneratorVTwoTest {
static EditN3GeneratorVTwo gen = new EditN3GeneratorVTwo();
@ -63,9 +65,74 @@ public class EditN3GeneratorVTwoTest {
Assert.assertEquals("<ABC>.", targets.get(0));
Assert.assertEquals("<ABC>;", targets.get(1));
Assert.assertEquals("<ABC>]", targets.get(2));
Assert.assertEquals("<ABC>,", targets.get(3));
Assert.assertEquals("<ABC>,", targets.get(3));
}
@Test
public void testPunctAfterVarNameForLiterals(){
List<String> targets = Arrays.asList("?var.","?var;","?var]","?var,");
Map keyToValues = new HashMap();
keyToValues.put("var", Arrays.asList(new EditLiteral("ABC", null, null)));
gen.subInMultiLiterals(keyToValues, targets);
Assert.assertNotNull(targets);
Assert.assertEquals(4,targets.size());
Assert.assertEquals("\"ABC\".", targets.get(0));
Assert.assertEquals("\"ABC\";", targets.get(1));
Assert.assertEquals("\"ABC\"]", targets.get(2));
Assert.assertEquals("\"ABC\",", targets.get(3));
}
@Test
public void testLiterlasWithDatatypes(){
List<String> targets = Arrays.asList("?var.","?var;","?var]","?var,","?var", " ?var ");
String value = "ABC";
String datatype = "http://someDataType.com/bleck";
String expected = '"' + value + '"' + "^^<" + datatype + ">";
Map keyToValues = new HashMap();
keyToValues.put("var", Arrays.asList(new EditLiteral(value,datatype,null)));
gen.subInMultiLiterals(keyToValues, targets);
Assert.assertNotNull(targets);
Assert.assertEquals(6,targets.size());
Assert.assertEquals( expected + ".", targets.get(0));
Assert.assertEquals(expected + ";", targets.get(1));
Assert.assertEquals(expected + "]", targets.get(2));
Assert.assertEquals(expected + ",", targets.get(3));
Assert.assertEquals(expected , targets.get(4));
Assert.assertEquals(" " + expected + " ", targets.get(5));
}
@Test
public void testLiterlasWithLang(){
List<String> targets = Arrays.asList("?var.","?var;","?var]","?var,","?var", " ?var ");
String value = "ABC";
String datatype = null;
String lang = "XYZ";
String expected = '"' + value + '"' + "@" + lang + "";
Map keyToValues = new HashMap();
keyToValues.put("var", Arrays.asList(new EditLiteral(value,datatype,lang)));
gen.subInMultiLiterals(keyToValues, targets);
Assert.assertNotNull(targets);
Assert.assertEquals(6,targets.size());
Assert.assertEquals( expected + ".", targets.get(0));
Assert.assertEquals(expected + ";", targets.get(1));
Assert.assertEquals(expected + "]", targets.get(2));
Assert.assertEquals(expected + ",", targets.get(3));
Assert.assertEquals(expected , targets.get(4));
Assert.assertEquals(" " + expected + " ", targets.get(5));
}
@Test
public void testSubInMultiUrisNull(){
String n3 = "?varXYZ" ;