/[fenfire]/fenfire/org/fenfire/modules/pp/PPActionsImpl.test
ViewVC logotype

Diff of /fenfire/org/fenfire/modules/pp/PPActionsImpl.test

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1.4 by mudyc, Mon Mar 31 12:37:47 2003 UTC revision 1.5 by mudyc, Tue Apr 15 14:57:14 2003 UTC
# Line 1  Line 1 
1  #(c): Matti Katila  # to be implemented
2    
 from org.fenfire.vocab import PP, SPATIAL, ALPH  
 from org.fenfire.modules.pp import *  
 from org.fenfire.impl import ModularSpace, SimpleVStreamTexter  
 from org.fenfire.util import URN5Namespace  
 from org.nongnu.alph import impl  
 from com.hp.hpl.mesa.rdf import jena  
 from com.hp.hpl.mesa.rdf.jena.vocabulary import RDF  
   
 def setUp():  
     global model, space, ppact  
     model = jena.mem.ModelMem()  
     space = ModularSpace(SimpleVStreamTexter(  
         impl.FakeSpanMaker(),  
         impl.Enfilade1DImpl.Enfilade1DImplMaker()),  
                          model)  
     ppact = PPActionsImpl(space)  
   
 def checkIter(slctr):  
     iter = model.listStatements(slctr)  
     assert iter.hasNext() == 1  
     stmt = iter.next()  
     assert iter.hasNext() == 0  
     return stmt  
   
 def testNewPaper():  
     paper = ppact.newPaper()  
     assert paper != ''  
   
     slctr = jena.common.SelectorImpl(None, RDF.type, PP.paperType)  
     stmt = checkIter(slctr)  
     assert stmt.getSubject().toString() == paper  
   
     # XXX does not check creation time  
   
 def testNewNote():  
     paper = URN5Namespace.instance.generateId()  
     paperRes = jena.common.ResourceImpl(paper)  
     note = ppact.newNote(paper, -123, 456, 'This is a new note')  
     noteRes = jena.common.ResourceImpl(note)  
   
     # type test - NoteType  
     slctr = jena.common.SelectorImpl(noteRes, RDF.type, PP.noteType)  
     stmt = checkIter(slctr)  
     assert stmt.getSubject().toString() == note  
   
     # has note any content?  
     slctr = jena.common.SelectorImpl(noteRes, RDF.type, ALPH.cloneType)  
     stmt = checkIter(slctr)  
     assert stmt.getSubject().toString() == note  
       
     # is node on paper?  
     slctr = jena.common.SelectorImpl(paperRes, PP.contains, noteRes)  
     stmt = checkIter(slctr)  
     assert stmt.getSubject().toString() == paper  
     assert stmt.getObject().toString() == note  
   
     # x coord ok?  
     slctr = jena.common.SelectorImpl(noteRes, SPATIAL.coordX, None)  
     stmt = checkIter(slctr)  
     assert stmt.getObject().toString() == '-123'  
   
     # y coord ok?  
     slctr = jena.common.SelectorImpl(noteRes, SPATIAL.coordY, None)  
     stmt = checkIter(slctr)  
     assert stmt.getObject().toString() == '456'  
   
     # depth ok?  
     slctr = jena.common.SelectorImpl(noteRes, PP.depth, None)  
     stmt = checkIter(slctr)  
     assert stmt.getObject().toString() == '10'  
   
 def testAssoc():  
     assocPos()  
     assocNeg()  
   
 def assocPos():  
     paper = URN5Namespace.instance.generateId()  
     noteA = ppact.newNote(paper, 12, 45, 'This is A')  
     noteARes = jena.common.ResourceImpl(noteA)  
     noteB = ppact.newNote(paper, 23, 56, 'This is B')  
     noteBRes = jena.common.ResourceImpl(noteB)  
   
     ppact.assocNotes(noteA, 1, noteB)  
   
     # noteA -> ?  
     slctr = jena.common.SelectorImpl(None, PP.association, noteARes)  
     iter = model.listStatements(slctr)  
     assert iter.hasNext() == 0  
       
     slctr = jena.common.SelectorImpl(noteARes, PP.association, None)  
     stmt = checkIter(slctr)  
     assert stmt.getObject().toString() == noteB  
       
     # ? <- noteB  
     slctr = jena.common.SelectorImpl(noteBRes, PP.association, None)  
     iter = model.listStatements(slctr)  
     assert iter.hasNext() == 0  
   
     slctr = jena.common.SelectorImpl(None, PP.association, noteBRes)  
     stmt = checkIter(slctr)  
     assert stmt.getSubject().toString() == noteA  
   
   
 def assocNeg():  
     paper = URN5Namespace.instance.generateId()  
     noteA = ppact.newNote(paper, 12, 45, 'This is A')  
     noteARes = jena.common.ResourceImpl(noteA)  
     noteB = ppact.newNote(paper, 23, 56, 'This is B')  
     noteBRes = jena.common.ResourceImpl(noteB)  
   
     ppact.assocNotes(noteA, -1, noteB)  
   
     # noteA -> ?  
     slctr = jena.common.SelectorImpl(noteARes, PP.association, None)  
     iter = model.listStatements(slctr)  
     assert iter.hasNext() == 0  
       
     slctr = jena.common.SelectorImpl(None, PP.association, noteARes)  
     stmt = checkIter(slctr)  
     assert stmt.getSubject().toString() == noteB  
       
     # ? <- noteB  
     slctr = jena.common.SelectorImpl(None, PP.association, noteBRes)  
     iter = model.listStatements(slctr)  
     assert iter.hasNext() == 0  
   
     slctr = jena.common.SelectorImpl(noteBRes, PP.association, None)  
     stmt = checkIter(slctr)  
     assert stmt.getObject().toString() == noteA  
   
   
 def testInsertAndDeleteText():  
     paper = URN5Namespace.instance.generateId()  
     note = ppact.newNote(paper, -12, -45, 'This is a test')  
     noteRes = jena.common.ResourceImpl(note)  
     print note  
   
     ppact.insertText(note, 5, 'FOO! ')  
   
     # insert test  
     #assert stmt.getObject().toString() == 'This FOO! is a test'  
   
     #delete test  
     ppact.deleteText(note, 5, 8)  
     #assert stmt.getObject().toString() == 'This ! is a test'  
   
     print 'XXX untested, unimplemented'  
       

Legend:
Removed from v.1.4  
changed lines
  Added in v.1.5

savannah-hackers-public@gnu.org
ViewVC Help
Powered by ViewVC 1.1.26