Package org.apache.jackrabbit.test.api
Class DocumentViewImportTest
- java.lang.Object
-
- junit.framework.Assert
-
- junit.framework.TestCase
-
- org.apache.jackrabbit.test.JUnitTest
-
- org.apache.jackrabbit.test.AbstractJCRTest
-
- org.apache.jackrabbit.test.api.DocumentViewImportTest
-
- All Implemented Interfaces:
junit.framework.Test
public class DocumentViewImportTest extends AbstractJCRTest
DocumentViewImportTestTests importXML and getImportContentHandler methods of the Workspace and Session class. Also tests the UuidBehaviour flag.
-
-
Field Summary
-
Fields inherited from class org.apache.jackrabbit.test.AbstractJCRTest
isReadOnly, jcrBaseVersion, jcrCopiedFrom, jcrCreated, jcrFrozenNode, jcrFrozenUuid, jcrIsCheckedOut, jcrlockIsDeep, jcrLockOwner, jcrMergeFailed, jcrMixinTypes, jcrPredecessors, jcrPrimaryType, jcrRootVersion, jcrSuccessors, jcrSystem, jcrUUID, jcrVersionHistory, mixLockable, mixReferenceable, mixShareable, mixSimpleVersionable, mixTitle, mixVersionable, nodeName1, nodeName2, nodeName3, nodeName4, NS_JCR_URI, NS_MIX_URI, NS_NT_URI, NS_SV_URI, ntActivity, ntBase, ntFrozenNode, ntQuery, ntVersion, ntVersionHistory, ntVersionLabels, propertyName1, propertyName2, superuser, testNodeType, testNodeTypeNoChildren, testNodeTypeTestRoot, testPath, testRoot, testRootNode, vf, workspaceName
-
-
Constructor Summary
Constructors Constructor Description DocumentViewImportTest()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description voidcheckImportDocumentView_IMPORT_UUID_COLLISION_REMOVE_EXISTING()Checks ImportUUIDBehavior.IMPORT_UUID_COLLISION_REMOVE_EXISTING i.e that the existing node is removed in case of uuid collision.voidcheckImportDocumentView_IMPORT_UUID_COLLISION_REPLACE_EXISTING()Checks ImportUUIDBehavior.IMPORT_UUID_COLLISION_REPLACE_EXISTING i.e that the existing node is replaced by the imported one node when uuid collision occurs.voidcheckImportDocumentView_IMPORT_UUID_COLLISION_THROW()Checks ImportUUIDBehavior.IMPORT_UUID_COLLISION_THROW i.e that a ItemExistsException is thrown in case of importing with an input stream or a SAXException is thrown in case of importing with a ContentHandler.voidcheckImportDocumentView_IMPORT_UUID_CREATE_NEW()ChecksImportUUIDBehavior.IMPORT_UUID_CREATE_NEWi.e.voidcheckImportSimpleXMLTree()Tests if the simple xml document defined in createSimpleDocument() is imported correctly according the specification rules given in 7.3.2voidcheckNamespaceAdded()Checks if a namespace not yet existing in the repository is registered after an according document import.voidcheckXmlTextNode(Node node)Tests if xmltext in a body of a xml element is correctly imported to a node with name jcr:xmltext and that the value of the text is stored in the singlevalued jcr:xmlcharacters property of String type.protected NodecreateAncestors(String absPath)StringcreateReferenceableNode(String name)Creates a node with given name below the testRootNode which will be referenced by the node nodeName2 and returns the UUID assigned to the created node.DocumentcreateSimpleDocument()Creates a document with some nodes and props for Namespace adding test and for correct tree structure tests after having imported.voiddoTestGetImportContentHandler()Tests getImportContentHandler method with uuidBehaviour IMPORT_UUID_CREATE_NEW.voiddoTestImportXML()Tests importXML method with uuidBehaviour IMPORT_UUID_CREATE_NEW.voiddoTestSameUUIDAtAncestor(boolean withWorkspace, boolean withHandler)Tests correct failure of importing a element wit the same UUID as the target node or an ancestor of it in case of uuidBehavior IMPORT_UUID_COLLISION_REMOVE_EXISTING.protected StringgetUnusedPrefix()Returns a namespace prefix that currently not used in the namespace registry.protected StringgetUnusedURI()Returns a namespace URI that currently not used in the namespace registry.voidimportRefNodeDocument(String absPath, String uuid, int uuidBehaviour, boolean withWorkspace, boolean withHandler)Creates a document with a element rootElem containing a jcr:uuid attribute with the given uuid as value.voidimportWithHandler(String absPath, Document document, int uuidBehaviour, boolean withWorkspace)Imports a given document using the ContentHandler received either with Workspace.getImportContentHandler or Session.getImportContentHandler.protected voidimportXML(String absPath, Document document, int uuidBehaviour, boolean withWorkspace)Imports a given document using either Workspace.importXML or Session.importXML method.booleanisMixRefRespected()Tests if jcr:uuid property of mix:referenceable nodetype is respected.voidserialize(Document document)voidsetUp()Sets up the fixture for the test cases.booleansupportsNodeType(String ntName)voidtearDown()voidtestSameUUIDAtAncestorSession()voidtestSameUUIDAtAncestorSessionHandler()voidtestSameUUIDAtAncestorWorkspace()voidtestSameUUIDAtAncestorWorkspaceHandler()voidtestSessionGetImportContentHandler()voidtestSessionImportXml()voidtestWorkspaceGetImportContentHandler()voidtestWorkspaceImportXml()-
Methods inherited from class org.apache.jackrabbit.test.AbstractJCRTest
checkSupportedOption, cleanUp, cleanUpTestRoot, createRandomString, ensureCanSetProperty, ensureCanSetProperty, ensureCanSetProperty, ensureKnowsNodeType, ensureLockingSupported, ensureMixinType, ensureMultipleWorkspacesSupported, getHelper, getJcrValue, getLocalName, getNonExistingWorkspaceName, getPrefix, getProperty, getProperty, getQualifiedName, getSize, isSupported, needsMixin, run
-
Methods inherited from class junit.framework.TestCase
assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertFalse, assertFalse, assertNotNull, assertNotNull, assertNotSame, assertNotSame, assertNull, assertNull, assertSame, assertSame, assertTrue, assertTrue, countTestCases, createResult, fail, fail, failNotEquals, failNotSame, failSame, format, getName, run, runBare, runTest, setName, toString
-
-
-
-
Field Detail
-
WORKSPACE
protected final boolean WORKSPACE
- See Also:
- Constant Field Values
-
SESSION
protected final boolean SESSION
- See Also:
- Constant Field Values
-
CONTENTHANDLER
protected boolean CONTENTHANDLER
-
STREAM
protected boolean STREAM
-
target
protected String target
-
refTarget
protected String refTarget
-
session
protected Session session
-
workspace
protected Workspace workspace
-
ntManager
protected NodeTypeManager ntManager
-
nsp
protected NamespaceRegistry nsp
-
ntUnstructured
protected String ntUnstructured
-
file
protected File file
-
referenced
protected String referenced
-
referencing
protected String referencing
-
targetNode
protected Node targetNode
-
refTargetNode
protected Node refTargetNode
-
unusedPrefix
protected String unusedPrefix
-
unusedURI
protected String unusedURI
-
TEST_PREFIX
protected final String TEST_PREFIX
- See Also:
- Constant Field Values
-
TEST_URI
protected final String TEST_URI
- See Also:
- Constant Field Values
-
XML_NS
protected final String XML_NS
- See Also:
- Constant Field Values
-
rootElem
protected static final String rootElem
- See Also:
- Constant Field Values
-
refNodeElem
protected static final String refNodeElem
- See Also:
- Constant Field Values
-
xmltextElem
protected static final String xmltextElem
- See Also:
- Constant Field Values
-
childElem
protected static final String childElem
- See Also:
- Constant Field Values
-
grandChildElem
protected static final String grandChildElem
- See Also:
- Constant Field Values
-
encodedElemName
protected static final String encodedElemName
- See Also:
- Constant Field Values
-
decodedElemName
protected static final String decodedElemName
- See Also:
- Constant Field Values
-
attributeName
protected static final String attributeName
- See Also:
- Constant Field Values
-
attributeValue
protected static final String attributeValue
- See Also:
- Constant Field Values
-
encodedAttributeName
protected static final String encodedAttributeName
- See Also:
- Constant Field Values
-
decodedAttributeName
protected static final String decodedAttributeName
- See Also:
- Constant Field Values
-
encodedAttributeValue
protected static final String encodedAttributeValue
- See Also:
- Constant Field Values
-
decodedAttributeValue
protected static final String decodedAttributeValue
- See Also:
- Constant Field Values
-
xmltext
protected String xmltext
-
respectMixRef
protected boolean respectMixRef
-
uuidBehaviour
protected int uuidBehaviour
-
factory
protected DocumentBuilderFactory factory
-
dom
protected DocumentBuilder dom
-
-
Method Detail
-
setUp
public void setUp() throws ExceptionSets up the fixture for the test cases.- Throws:
Exception
-
testWorkspaceGetImportContentHandler
public void testWorkspaceGetImportContentHandler() throws Exception- Throws:
Exception
-
testSessionGetImportContentHandler
public void testSessionGetImportContentHandler() throws Exception- Throws:
Exception
-
doTestImportXML
public void doTestImportXML() throws ExceptionTests importXML method with uuidBehaviour IMPORT_UUID_CREATE_NEW. It imports the document created with createSimpleDocument method and checks the imported tree according the rules outlined in chapter 7.3.2 of the specification.Additionally it checks the uuidBehaviour flag if the jcr:uuid property is respected during import.
-
doTestGetImportContentHandler
public void doTestGetImportContentHandler() throws ExceptionTests getImportContentHandler method with uuidBehaviour IMPORT_UUID_CREATE_NEW. It imports the document created with createSimpleDocument method and checks the imported tree according the rules outlined in chapter 7.3.2 of the specification.Additionally it checks the uuidBehaviour flag if the jcr:uuid property is respected during import.
-
checkImportSimpleXMLTree
public void checkImportSimpleXMLTree() throws RepositoryException, IOExceptionTests if the simple xml document defined in createSimpleDocument() is imported correctly according the specification rules given in 7.3.2- Throws:
RepositoryExceptionIOException
-
checkXmlTextNode
public void checkXmlTextNode(Node node) throws RepositoryException, IOException
Tests if xmltext in a body of a xml element is correctly imported to a node with name jcr:xmltext and that the value of the text is stored in the singlevalued jcr:xmlcharacters property of String type.- Throws:
RepositoryExceptionIOException
-
checkNamespaceAdded
public void checkNamespaceAdded() throws RepositoryException, IOExceptionChecks if a namespace not yet existing in the repository is registered after an according document import.- Throws:
RepositoryExceptionIOException
-
checkImportDocumentView_IMPORT_UUID_CREATE_NEW
public void checkImportDocumentView_IMPORT_UUID_CREATE_NEW() throws ExceptionChecksImportUUIDBehavior.IMPORT_UUID_CREATE_NEWi.e. that a node receives a new uuid when imported in any case.- Throws:
Exception
-
checkImportDocumentView_IMPORT_UUID_COLLISION_REMOVE_EXISTING
public void checkImportDocumentView_IMPORT_UUID_COLLISION_REMOVE_EXISTING() throws ExceptionChecks ImportUUIDBehavior.IMPORT_UUID_COLLISION_REMOVE_EXISTING i.e that the existing node is removed in case of uuid collision.- Throws:
Exception
-
checkImportDocumentView_IMPORT_UUID_COLLISION_REPLACE_EXISTING
public void checkImportDocumentView_IMPORT_UUID_COLLISION_REPLACE_EXISTING() throws ExceptionChecks ImportUUIDBehavior.IMPORT_UUID_COLLISION_REPLACE_EXISTING i.e that the existing node is replaced by the imported one node when uuid collision occurs.- Throws:
Exception
-
checkImportDocumentView_IMPORT_UUID_COLLISION_THROW
public void checkImportDocumentView_IMPORT_UUID_COLLISION_THROW() throws ExceptionChecks ImportUUIDBehavior.IMPORT_UUID_COLLISION_THROW i.e that a ItemExistsException is thrown in case of importing with an input stream or a SAXException is thrown in case of importing with a ContentHandler.- Throws:
RepositoryExceptionIOExceptionException
-
doTestSameUUIDAtAncestor
public void doTestSameUUIDAtAncestor(boolean withWorkspace, boolean withHandler) throws ExceptionTests correct failure of importing a element wit the same UUID as the target node or an ancestor of it in case of uuidBehavior IMPORT_UUID_COLLISION_REMOVE_EXISTING. The imported document contains a element with jcr:uuid attribute the same as the parent of the import target.- Throws:
Exception
-
testSameUUIDAtAncestorWorkspaceHandler
public void testSameUUIDAtAncestorWorkspaceHandler() throws Exception- Throws:
Exception
-
testSameUUIDAtAncestorWorkspace
public void testSameUUIDAtAncestorWorkspace() throws Exception- Throws:
Exception
-
testSameUUIDAtAncestorSessionHandler
public void testSameUUIDAtAncestorSessionHandler() throws Exception- Throws:
Exception
-
testSameUUIDAtAncestorSession
public void testSameUUIDAtAncestorSession() throws Exception- Throws:
Exception
-
createSimpleDocument
public Document createSimpleDocument()
Creates a document with some nodes and props for Namespace adding test and for correct tree structure tests after having imported.- Returns:
-
importXML
protected void importXML(String absPath, Document document, int uuidBehaviour, boolean withWorkspace) throws RepositoryException, IOException
Imports a given document using either Workspace.importXML or Session.importXML method.- Parameters:
absPath- the absPath to the parent node where to import the documentdocument- the document to importuuidBehaviour- how the uuid collisions should be handledwithWorkspace- if workspace or session interface should be used- Throws:
RepositoryExceptionIOException
-
importWithHandler
public void importWithHandler(String absPath, Document document, int uuidBehaviour, boolean withWorkspace) throws Exception
Imports a given document using the ContentHandler received either with Workspace.getImportContentHandler or Session.getImportContentHandler. This handler is then passed to a XML parser which parses the given document.- Parameters:
absPath- the absPath to the parent node where to import the documentdocument- the document to importuuidBehaviour- how the uuid collisions should be handledwithWorkspace- if workspace or session interface should be used- Throws:
RepositoryExceptionSAXExceptionIOExceptionException
-
isMixRefRespected
public boolean isMixRefRespected() throws RepositoryException, IOExceptionTests if jcr:uuid property of mix:referenceable nodetype is respected. This is believed as true when during import with uuidBehaviour IMPORT_UUID_COLLISION_REMOVE_EXISTING a node with the same uuid as a node to be imported will be deleted.- Returns:
- Throws:
RepositoryExceptionIOException
-
createReferenceableNode
public String createReferenceableNode(String name) throws RepositoryException, NotExecutableException
Creates a node with given name below the testRootNode which will be referenced by the node nodeName2 and returns the UUID assigned to the created node.- Parameters:
name-- Returns:
- Throws:
RepositoryExceptionNotExecutableException- if the created node is not referenceable and cannot be made referenceable by adding mix:referenceable.
-
importRefNodeDocument
public void importRefNodeDocument(String absPath, String uuid, int uuidBehaviour, boolean withWorkspace, boolean withHandler) throws Exception
Creates a document with a element rootElem containing a jcr:uuid attribute with the given uuid as value. This document is imported below the node with path absPath. If nod node at absPth it is created. If there is yet a node rootElem below the then this node is romoved in advance.- Parameters:
uuid-uuidBehaviour-withWorkspace-withHandler-- Throws:
RepositoryExceptionIOExceptionException
-
createAncestors
protected Node createAncestors(String absPath) throws RepositoryException
- Throws:
RepositoryException
-
serialize
public void serialize(Document document) throws IOException
- Throws:
IOException
-
supportsNodeType
public boolean supportsNodeType(String ntName) throws RepositoryException
- Throws:
RepositoryException
-
getUnusedPrefix
protected String getUnusedPrefix() throws RepositoryException
Returns a namespace prefix that currently not used in the namespace registry.- Returns:
- an unused namespace prefix.
- Throws:
RepositoryException
-
getUnusedURI
protected String getUnusedURI() throws RepositoryException
Returns a namespace URI that currently not used in the namespace registry.- Returns:
- an unused namespace URI.
- Throws:
RepositoryException
-
-