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){
|
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 ) {
|
if (target==null ) {
|
||||||
log.error("subInLiterals was passed a null target");
|
log.error("subInLiterals was passed a null target");
|
||||||
return "blankBecauseTargetOrValueWasNull";
|
return "blankBecauseTargetOrValueWasNull";
|
||||||
|
@ -215,7 +215,7 @@ public class EditN3GeneratorVTwo {
|
||||||
String valueString = org.apache.commons.lang.StringUtils.join(n3Values, ",");
|
String valueString = org.apache.commons.lang.StringUtils.join(n3Values, ",");
|
||||||
|
|
||||||
//Substitute it in to n3
|
//Substitute it in to n3
|
||||||
String varRegex = "\\?" + var + "(?=\\.\\p{Space}|\\p{Space})";
|
String varRegex = "\\?" + var + "(?=\\p{Punct}|\\p{Space}|$)";
|
||||||
|
|
||||||
String out = null;
|
String out = null;
|
||||||
if( valueString != null )
|
if( valueString != null )
|
||||||
|
|
|
@ -385,7 +385,8 @@ public abstract class BaseDumpDirective implements TemplateDirectiveModel {
|
||||||
// and other unusual places that can cause problems.
|
// and other unusual places that can cause problems.
|
||||||
Class<?> c = method.getDeclaringClass();
|
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.Constructor.class) ||
|
||||||
c.equals(java.lang.reflect.Field.class ) )
|
c.equals(java.lang.reflect.Field.class ) )
|
||||||
continue;
|
continue;
|
||||||
|
@ -416,7 +417,8 @@ public abstract class BaseDumpDirective implements TemplateDirectiveModel {
|
||||||
TemplateModel value = model.get(propertyName);
|
TemplateModel value = model.get(propertyName);
|
||||||
properties.put(propertyName, getDump(value));
|
properties.put(propertyName, getDump(value));
|
||||||
}catch(Throwable th){
|
}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;
|
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.ModelFactory;
|
||||||
import com.hp.hpl.jena.rdf.model.ResourceFactory;
|
import com.hp.hpl.jena.rdf.model.ResourceFactory;
|
||||||
|
|
||||||
|
import edu.cornell.mannlib.vitro.webapp.edit.EditLiteral;
|
||||||
|
|
||||||
|
|
||||||
public class EditN3GeneratorVTwoTest {
|
public class EditN3GeneratorVTwoTest {
|
||||||
static EditN3GeneratorVTwo gen = new EditN3GeneratorVTwo();
|
static EditN3GeneratorVTwo gen = new EditN3GeneratorVTwo();
|
||||||
|
@ -66,6 +68,71 @@ public class EditN3GeneratorVTwoTest {
|
||||||
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
|
@Test
|
||||||
public void testSubInMultiUrisNull(){
|
public void testSubInMultiUrisNull(){
|
||||||
String n3 = "?varXYZ" ;
|
String n3 = "?varXYZ" ;
|
||||||
|
|
Loading…
Add table
Reference in a new issue