From a61a4b72ed83e65b1e47b1bdf4349a2b342c7f79 Mon Sep 17 00:00:00 2001 From: bdc34 Date: Fri, 12 Mar 2010 16:45:22 +0000 Subject: [PATCH] adding unit test for dependent delete --- .../jena/DependentResourceDeleteJenaTest.java | 59 +++++++++++++++++++ 1 file changed, 59 insertions(+) diff --git a/webapp/test/edu/cornell/mannlib/vitro/webapp/dao/jena/DependentResourceDeleteJenaTest.java b/webapp/test/edu/cornell/mannlib/vitro/webapp/dao/jena/DependentResourceDeleteJenaTest.java index f4fd85a7c..549c2a0cd 100644 --- a/webapp/test/edu/cornell/mannlib/vitro/webapp/dao/jena/DependentResourceDeleteJenaTest.java +++ b/webapp/test/edu/cornell/mannlib/vitro/webapp/dao/jena/DependentResourceDeleteJenaTest.java @@ -777,4 +777,63 @@ public class DependentResourceDeleteJenaTest { Assert.assertTrue( same ); } + @org.junit.Ignore @org.junit.Test + public void testDeleteWithNonZeroInDegree() { + /* + This tests deleteing a position context node from the orginization side. + Currently the required behaivor is that the position context node not be + deleted when the object property statement is deleted from the org side. + */ + String source = + "@prefix vitro: <" + VitroVocabulary.vitroURI + "> . \n" + + "@prefix ex: . \n" + + "@prefix rdf: . \n"+ + "@prefix rdfs: . \n"+ + "@prefix owl: . \n"+ + " ex:bob ex:a \"Bob\". \n" + + " ex:orgP ex:a \"orgP\". \n" + + " ex:bob ex:hasPosition ex:position1 . \n" + + " ex:orgP ex:hasPosition ex:position1 . \n" + + " ex:position1 rdf:type " + depRes + " . \n" + + " ex:position1 ex:a \"This is Position1\". \n" + + " ex:position1 ex:b \"2343\" . "; + + String expected = + "@prefix vitro: <" + VitroVocabulary.vitroURI + "> . \n" + + "@prefix ex: . \n" + + "@prefix rdf: . \n"+ + "@prefix rdfs: . \n"+ + "@prefix owl: . \n"+ + " ex:bob ex:a \"Bob\". \n" + + " ex:orgP ex:a \"orgP\". \n" + + " ex:bob ex:hasPosition ex:position1 . \n" + + " ex:position1 rdf:type " + depRes + " . \n" + + " ex:position1 ex:a \"This is Position1\". \n" + + " ex:position1 ex:hasOrgName \"org xyz\" . \n" + + " ex:position1 ex:b \"2343\" . "; + + String additions = + "@prefix ex: . \n" + + " ex:position1 ex:hasOrgName \"org xyz\" . "; + + String retractions = + "@prefix ex: . \n" + + " ex:orgP ex:hasPosition ex:position1 . "; + + Model sourceModel = (ModelFactory.createDefaultModel()).read(new StringReader(source), "", "N3"); + Model additionsModel = (ModelFactory.createDefaultModel()).read(new StringReader(additions), "", "N3"); + Model retractionsModel = (ModelFactory.createDefaultModel()).read(new StringReader(retractions), "", "N3"); + + Model depDeletes = + DependentResourceDeleteJena.getDependentResourceDeleteForChange(additionsModel, retractionsModel, sourceModel); + sourceModel.remove(depDeletes); + sourceModel.remove(retractionsModel); + sourceModel.add(additionsModel); + + Model expectedModel = (ModelFactory.createDefaultModel()).read(new StringReader(expected), "", "N3"); + boolean same = expectedModel.isIsomorphicWith( sourceModel ); + if( ! same ) printModels( expectedModel, sourceModel); + Assert.assertTrue( same ); + } + }