Adding more unit tests for EditN3Generator. Dealing with literals better
This commit is contained in:
parent
5ddd6fecad
commit
876e2d97f1
3 changed files with 74 additions and 5 deletions
|
@ -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 )
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
|
|
|
@ -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" ;
|
||||
|
|
Loading…
Add table
Reference in a new issue