You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@sling.apache.org by ss...@apache.org on 2014/10/13 13:54:43 UTC
svn commit: r1631356 [1/9] - in /sling/trunk: ./ testing/jcr-mock/
testing/jcr-mock/src/ testing/jcr-mock/src/main/
testing/jcr-mock/src/main/java/ testing/jcr-mock/src/main/java/org/
testing/jcr-mock/src/main/java/org/apache/ testing/jcr-mock/src/main...
Author: sseifert
Date: Mon Oct 13 11:54:39 2014
New Revision: 1631356
URL: http://svn.apache.org/r1631356
Log:
SLING-4042 Donate sling-mock, jcr-mock, osgi-mock implementation
Added:
sling/trunk/testing/jcr-mock/
sling/trunk/testing/jcr-mock/pom.xml (with props)
sling/trunk/testing/jcr-mock/src/
sling/trunk/testing/jcr-mock/src/main/
sling/trunk/testing/jcr-mock/src/main/java/
sling/trunk/testing/jcr-mock/src/main/java/org/
sling/trunk/testing/jcr-mock/src/main/java/org/apache/
sling/trunk/testing/jcr-mock/src/main/java/org/apache/sling/
sling/trunk/testing/jcr-mock/src/main/java/org/apache/sling/testing/
sling/trunk/testing/jcr-mock/src/main/java/org/apache/sling/testing/mock/
sling/trunk/testing/jcr-mock/src/main/java/org/apache/sling/testing/mock/jcr/
sling/trunk/testing/jcr-mock/src/main/java/org/apache/sling/testing/mock/jcr/AbstractItem.java (with props)
sling/trunk/testing/jcr-mock/src/main/java/org/apache/sling/testing/mock/jcr/ItemFilter.java (with props)
sling/trunk/testing/jcr-mock/src/main/java/org/apache/sling/testing/mock/jcr/MockJcr.java (with props)
sling/trunk/testing/jcr-mock/src/main/java/org/apache/sling/testing/mock/jcr/MockNamespaceRegistry.java (with props)
sling/trunk/testing/jcr-mock/src/main/java/org/apache/sling/testing/mock/jcr/MockNode.java (with props)
sling/trunk/testing/jcr-mock/src/main/java/org/apache/sling/testing/mock/jcr/MockNodeType.java (with props)
sling/trunk/testing/jcr-mock/src/main/java/org/apache/sling/testing/mock/jcr/MockNodeTypeManager.java (with props)
sling/trunk/testing/jcr-mock/src/main/java/org/apache/sling/testing/mock/jcr/MockNodeTypes.java (with props)
sling/trunk/testing/jcr-mock/src/main/java/org/apache/sling/testing/mock/jcr/MockObservationManager.java (with props)
sling/trunk/testing/jcr-mock/src/main/java/org/apache/sling/testing/mock/jcr/MockProperty.java (with props)
sling/trunk/testing/jcr-mock/src/main/java/org/apache/sling/testing/mock/jcr/MockRepository.java (with props)
sling/trunk/testing/jcr-mock/src/main/java/org/apache/sling/testing/mock/jcr/MockSession.java (with props)
sling/trunk/testing/jcr-mock/src/main/java/org/apache/sling/testing/mock/jcr/MockWorkspace.java (with props)
sling/trunk/testing/jcr-mock/src/main/java/org/apache/sling/testing/mock/jcr/ResourceUtil.java (with props)
sling/trunk/testing/jcr-mock/src/main/java/org/apache/sling/testing/mock/jcr/package-info.java (with props)
sling/trunk/testing/jcr-mock/src/site/
sling/trunk/testing/jcr-mock/src/site/markdown/
sling/trunk/testing/jcr-mock/src/site/markdown/index.md
sling/trunk/testing/jcr-mock/src/site/markdown/usage.md
sling/trunk/testing/jcr-mock/src/test/
sling/trunk/testing/jcr-mock/src/test/java/
sling/trunk/testing/jcr-mock/src/test/java/org/
sling/trunk/testing/jcr-mock/src/test/java/org/apache/
sling/trunk/testing/jcr-mock/src/test/java/org/apache/sling/
sling/trunk/testing/jcr-mock/src/test/java/org/apache/sling/testing/
sling/trunk/testing/jcr-mock/src/test/java/org/apache/sling/testing/mock/
sling/trunk/testing/jcr-mock/src/test/java/org/apache/sling/testing/mock/jcr/
sling/trunk/testing/jcr-mock/src/test/java/org/apache/sling/testing/mock/jcr/AbstractItemTest.java (with props)
sling/trunk/testing/jcr-mock/src/test/java/org/apache/sling/testing/mock/jcr/MockNodeTest.java (with props)
sling/trunk/testing/jcr-mock/src/test/java/org/apache/sling/testing/mock/jcr/MockPropertyTest.java (with props)
sling/trunk/testing/jcr-mock/src/test/java/org/apache/sling/testing/mock/jcr/MockRepositoryTest.java (with props)
sling/trunk/testing/jcr-mock/src/test/java/org/apache/sling/testing/mock/jcr/MockSessionTest.java (with props)
sling/trunk/testing/jcr-mock/src/test/java/org/apache/sling/testing/mock/jcr/MockWorkspaceTest.java (with props)
sling/trunk/testing/jcr-mock/src/test/java/org/apache/sling/testing/mock/jcr/ResourceUtilTest.java (with props)
sling/trunk/testing/osgi-mock/
sling/trunk/testing/osgi-mock/pom.xml (with props)
sling/trunk/testing/osgi-mock/src/
sling/trunk/testing/osgi-mock/src/main/
sling/trunk/testing/osgi-mock/src/main/java/
sling/trunk/testing/osgi-mock/src/main/java/org/
sling/trunk/testing/osgi-mock/src/main/java/org/apache/
sling/trunk/testing/osgi-mock/src/main/java/org/apache/sling/
sling/trunk/testing/osgi-mock/src/main/java/org/apache/sling/testing/
sling/trunk/testing/osgi-mock/src/main/java/org/apache/sling/testing/mock/
sling/trunk/testing/osgi-mock/src/main/java/org/apache/sling/testing/mock/osgi/
sling/trunk/testing/osgi-mock/src/main/java/org/apache/sling/testing/mock/osgi/MockBundle.java (with props)
sling/trunk/testing/osgi-mock/src/main/java/org/apache/sling/testing/mock/osgi/MockBundleContext.java (with props)
sling/trunk/testing/osgi-mock/src/main/java/org/apache/sling/testing/mock/osgi/MockComponentContext.java (with props)
sling/trunk/testing/osgi-mock/src/main/java/org/apache/sling/testing/mock/osgi/MockFilter.java (with props)
sling/trunk/testing/osgi-mock/src/main/java/org/apache/sling/testing/mock/osgi/MockLogService.java (with props)
sling/trunk/testing/osgi-mock/src/main/java/org/apache/sling/testing/mock/osgi/MockOsgi.java (with props)
sling/trunk/testing/osgi-mock/src/main/java/org/apache/sling/testing/mock/osgi/MockServiceReference.java (with props)
sling/trunk/testing/osgi-mock/src/main/java/org/apache/sling/testing/mock/osgi/MockServiceRegistration.java (with props)
sling/trunk/testing/osgi-mock/src/main/java/org/apache/sling/testing/mock/osgi/OsgiMetadataUtil.java (with props)
sling/trunk/testing/osgi-mock/src/main/java/org/apache/sling/testing/mock/osgi/ReflectionServiceUtil.java (with props)
sling/trunk/testing/osgi-mock/src/main/resources/
sling/trunk/testing/osgi-mock/src/main/resources/simplelogger.properties (with props)
sling/trunk/testing/osgi-mock/src/site/
sling/trunk/testing/osgi-mock/src/site/markdown/
sling/trunk/testing/osgi-mock/src/site/markdown/index.md
sling/trunk/testing/osgi-mock/src/site/markdown/usage.md
sling/trunk/testing/osgi-mock/src/test/
sling/trunk/testing/osgi-mock/src/test/java/
sling/trunk/testing/osgi-mock/src/test/java/org/
sling/trunk/testing/osgi-mock/src/test/java/org/apache/
sling/trunk/testing/osgi-mock/src/test/java/org/apache/sling/
sling/trunk/testing/osgi-mock/src/test/java/org/apache/sling/testing/
sling/trunk/testing/osgi-mock/src/test/java/org/apache/sling/testing/mock/
sling/trunk/testing/osgi-mock/src/test/java/org/apache/sling/testing/mock/osgi/
sling/trunk/testing/osgi-mock/src/test/java/org/apache/sling/testing/mock/osgi/MockBundleContextTest.java (with props)
sling/trunk/testing/osgi-mock/src/test/java/org/apache/sling/testing/mock/osgi/MockBundleTest.java (with props)
sling/trunk/testing/osgi-mock/src/test/java/org/apache/sling/testing/mock/osgi/MockComponentContextTest.java (with props)
sling/trunk/testing/osgi-mock/src/test/java/org/apache/sling/testing/mock/osgi/MockFilterTest.java (with props)
sling/trunk/testing/osgi-mock/src/test/java/org/apache/sling/testing/mock/osgi/MockLogServiceTest.java (with props)
sling/trunk/testing/osgi-mock/src/test/java/org/apache/sling/testing/mock/osgi/MockServiceReferenceTest.java (with props)
sling/trunk/testing/osgi-mock/src/test/java/org/apache/sling/testing/mock/osgi/OsgiMetadataUtilTest.java (with props)
sling/trunk/testing/osgi-mock/src/test/java/org/apache/sling/testing/mock/osgi/ReflectionServiceUtilTest.java (with props)
sling/trunk/testing/osgi-mock/src/test/java/org/apache/sling/testing/mock/osgi/package-info.java (with props)
sling/trunk/testing/osgi-mock/src/test/resources/
sling/trunk/testing/osgi-mock/src/test/resources/META-INF/
sling/trunk/testing/osgi-mock/src/test/resources/META-INF/test.txt (with props)
sling/trunk/testing/osgi-mock/src/test/resources/OSGI-INF/
sling/trunk/testing/osgi-mock/src/test/resources/OSGI-INF/org.apache.sling.testing.mock.osgi.OsgiMetadataUtilTest.xml (with props)
sling/trunk/testing/osgi-mock/src/test/resources/OSGI-INF/org.apache.sling.testing.mock.osgi.ReflectionServiceUtilTest.xml (with props)
sling/trunk/testing/osgi-mock/src/test/resources/simplelogger.properties (with props)
sling/trunk/testing/sling-mock/
sling/trunk/testing/sling-mock-jackrabbit/
sling/trunk/testing/sling-mock-jackrabbit/pom.xml (with props)
sling/trunk/testing/sling-mock-jackrabbit/src/
sling/trunk/testing/sling-mock-jackrabbit/src/main/
sling/trunk/testing/sling-mock-jackrabbit/src/main/java/
sling/trunk/testing/sling-mock-jackrabbit/src/main/java/org/
sling/trunk/testing/sling-mock-jackrabbit/src/main/java/org/apache/
sling/trunk/testing/sling-mock-jackrabbit/src/main/java/org/apache/sling/
sling/trunk/testing/sling-mock-jackrabbit/src/main/java/org/apache/sling/testing/
sling/trunk/testing/sling-mock-jackrabbit/src/main/java/org/apache/sling/testing/mock/
sling/trunk/testing/sling-mock-jackrabbit/src/main/java/org/apache/sling/testing/mock/sling/
sling/trunk/testing/sling-mock-jackrabbit/src/main/java/org/apache/sling/testing/mock/sling/jackrabbit/
sling/trunk/testing/sling-mock-jackrabbit/src/main/java/org/apache/sling/testing/mock/sling/jackrabbit/JackrabbitMockResourceResolverAdapter.java (with props)
sling/trunk/testing/sling-mock-jackrabbit/src/test/
sling/trunk/testing/sling-mock-jackrabbit/src/test/java/
sling/trunk/testing/sling-mock-jackrabbit/src/test/java/org/
sling/trunk/testing/sling-mock-jackrabbit/src/test/java/org/apache/
sling/trunk/testing/sling-mock-jackrabbit/src/test/java/org/apache/sling/
sling/trunk/testing/sling-mock-jackrabbit/src/test/java/org/apache/sling/testing/
sling/trunk/testing/sling-mock-jackrabbit/src/test/java/org/apache/sling/testing/mock/
sling/trunk/testing/sling-mock-jackrabbit/src/test/java/org/apache/sling/testing/mock/sling/
sling/trunk/testing/sling-mock-jackrabbit/src/test/java/org/apache/sling/testing/mock/sling/jackrabbit/
sling/trunk/testing/sling-mock-jackrabbit/src/test/java/org/apache/sling/testing/mock/sling/jackrabbit/contentimport/
sling/trunk/testing/sling-mock-jackrabbit/src/test/java/org/apache/sling/testing/mock/sling/jackrabbit/contentimport/ContentLoaderBinaryTest.java (with props)
sling/trunk/testing/sling-mock-jackrabbit/src/test/java/org/apache/sling/testing/mock/sling/jackrabbit/contentimport/ContentLoaderJsonDamTest.java (with props)
sling/trunk/testing/sling-mock-jackrabbit/src/test/java/org/apache/sling/testing/mock/sling/jackrabbit/contentimport/ContentLoaderJsonTest.java (with props)
sling/trunk/testing/sling-mock-jackrabbit/src/test/java/org/apache/sling/testing/mock/sling/jackrabbit/resource/
sling/trunk/testing/sling-mock-jackrabbit/src/test/java/org/apache/sling/testing/mock/sling/jackrabbit/resource/JcrResourceResolverTest.java (with props)
sling/trunk/testing/sling-mock-jackrabbit/src/test/java/org/apache/sling/testing/mock/sling/jackrabbit/resource/SlingCrudResourceResolverTest.java (with props)
sling/trunk/testing/sling-mock/pom.xml (with props)
sling/trunk/testing/sling-mock/src/
sling/trunk/testing/sling-mock/src/main/
sling/trunk/testing/sling-mock/src/main/java/
sling/trunk/testing/sling-mock/src/main/java/org/
sling/trunk/testing/sling-mock/src/main/java/org/apache/
sling/trunk/testing/sling-mock/src/main/java/org/apache/sling/
sling/trunk/testing/sling-mock/src/main/java/org/apache/sling/testing/
sling/trunk/testing/sling-mock/src/main/java/org/apache/sling/testing/mock/
sling/trunk/testing/sling-mock/src/main/java/org/apache/sling/testing/mock/sling/
sling/trunk/testing/sling-mock/src/main/java/org/apache/sling/testing/mock/sling/JcrMockResourceResolverAdapter.java (with props)
sling/trunk/testing/sling-mock/src/main/java/org/apache/sling/testing/mock/sling/MockAdapterManager.java (with props)
sling/trunk/testing/sling-mock/src/main/java/org/apache/sling/testing/mock/sling/MockJcrResourceResolverFactory.java (with props)
sling/trunk/testing/sling-mock/src/main/java/org/apache/sling/testing/mock/sling/MockResourceResolverFactoryActivator.java (with props)
sling/trunk/testing/sling-mock/src/main/java/org/apache/sling/testing/mock/sling/MockSling.java (with props)
sling/trunk/testing/sling-mock/src/main/java/org/apache/sling/testing/mock/sling/MockSlingRepository.java (with props)
sling/trunk/testing/sling-mock/src/main/java/org/apache/sling/testing/mock/sling/MockSlingScriptHelper.java (with props)
sling/trunk/testing/sling-mock/src/main/java/org/apache/sling/testing/mock/sling/RRMockMockResourceResolverAdapter.java (with props)
sling/trunk/testing/sling-mock/src/main/java/org/apache/sling/testing/mock/sling/ResourceResolverType.java (with props)
sling/trunk/testing/sling-mock/src/main/java/org/apache/sling/testing/mock/sling/ThreadsafeMockAdapterManagerWrapper.java (with props)
sling/trunk/testing/sling-mock/src/main/java/org/apache/sling/testing/mock/sling/builder/
sling/trunk/testing/sling-mock/src/main/java/org/apache/sling/testing/mock/sling/builder/ContentBuilder.java (with props)
sling/trunk/testing/sling-mock/src/main/java/org/apache/sling/testing/mock/sling/builder/package-info.java (with props)
sling/trunk/testing/sling-mock/src/main/java/org/apache/sling/testing/mock/sling/context/
sling/trunk/testing/sling-mock/src/main/java/org/apache/sling/testing/mock/sling/context/ContextResourceResolverFactory.java (with props)
sling/trunk/testing/sling-mock/src/main/java/org/apache/sling/testing/mock/sling/context/SlingContextImpl.java (with props)
sling/trunk/testing/sling-mock/src/main/java/org/apache/sling/testing/mock/sling/context/package-info.java (with props)
sling/trunk/testing/sling-mock/src/main/java/org/apache/sling/testing/mock/sling/junit/
sling/trunk/testing/sling-mock/src/main/java/org/apache/sling/testing/mock/sling/junit/SlingContext.java (with props)
sling/trunk/testing/sling-mock/src/main/java/org/apache/sling/testing/mock/sling/junit/SlingContextCallback.java (with props)
sling/trunk/testing/sling-mock/src/main/java/org/apache/sling/testing/mock/sling/junit/package-info.java (with props)
sling/trunk/testing/sling-mock/src/main/java/org/apache/sling/testing/mock/sling/loader/
sling/trunk/testing/sling-mock/src/main/java/org/apache/sling/testing/mock/sling/loader/ContentLoader.java (with props)
sling/trunk/testing/sling-mock/src/main/java/org/apache/sling/testing/mock/sling/loader/package-info.java (with props)
sling/trunk/testing/sling-mock/src/main/java/org/apache/sling/testing/mock/sling/package-info.java (with props)
sling/trunk/testing/sling-mock/src/main/java/org/apache/sling/testing/mock/sling/services/
sling/trunk/testing/sling-mock/src/main/java/org/apache/sling/testing/mock/sling/services/MockMimeTypeService.java (with props)
sling/trunk/testing/sling-mock/src/main/java/org/apache/sling/testing/mock/sling/services/MockModelAdapterFactory.java (with props)
sling/trunk/testing/sling-mock/src/main/java/org/apache/sling/testing/mock/sling/services/MockSlingSettingService.java (with props)
sling/trunk/testing/sling-mock/src/main/java/org/apache/sling/testing/mock/sling/servlet/
sling/trunk/testing/sling-mock/src/main/java/org/apache/sling/testing/mock/sling/servlet/CookieSupport.java (with props)
sling/trunk/testing/sling-mock/src/main/java/org/apache/sling/testing/mock/sling/servlet/HeaderSupport.java (with props)
sling/trunk/testing/sling-mock/src/main/java/org/apache/sling/testing/mock/sling/servlet/MockHttpSession.java (with props)
sling/trunk/testing/sling-mock/src/main/java/org/apache/sling/testing/mock/sling/servlet/MockRequestPathInfo.java (with props)
sling/trunk/testing/sling-mock/src/main/java/org/apache/sling/testing/mock/sling/servlet/MockServletContext.java (with props)
sling/trunk/testing/sling-mock/src/main/java/org/apache/sling/testing/mock/sling/servlet/MockSlingHttpServletRequest.java (with props)
sling/trunk/testing/sling-mock/src/main/java/org/apache/sling/testing/mock/sling/servlet/MockSlingHttpServletResponse.java (with props)
sling/trunk/testing/sling-mock/src/main/java/org/apache/sling/testing/mock/sling/servlet/ResponseBodySupport.java (with props)
sling/trunk/testing/sling-mock/src/main/java/org/apache/sling/testing/mock/sling/servlet/package-info.java (with props)
sling/trunk/testing/sling-mock/src/main/java/org/apache/sling/testing/mock/sling/spi/
sling/trunk/testing/sling-mock/src/main/java/org/apache/sling/testing/mock/sling/spi/ResourceResolverTypeAdapter.java (with props)
sling/trunk/testing/sling-mock/src/site/
sling/trunk/testing/sling-mock/src/site/markdown/
sling/trunk/testing/sling-mock/src/site/markdown/index.md
sling/trunk/testing/sling-mock/src/site/markdown/resource-resolver-types.md
sling/trunk/testing/sling-mock/src/site/markdown/usage-content-loader.md
sling/trunk/testing/sling-mock/src/site/markdown/usage-mocks.md
sling/trunk/testing/sling-mock/src/test/
sling/trunk/testing/sling-mock/src/test/java/
sling/trunk/testing/sling-mock/src/test/java/org/
sling/trunk/testing/sling-mock/src/test/java/org/apache/
sling/trunk/testing/sling-mock/src/test/java/org/apache/sling/
sling/trunk/testing/sling-mock/src/test/java/org/apache/sling/testing/
sling/trunk/testing/sling-mock/src/test/java/org/apache/sling/testing/mock/
sling/trunk/testing/sling-mock/src/test/java/org/apache/sling/testing/mock/sling/
sling/trunk/testing/sling-mock/src/test/java/org/apache/sling/testing/mock/sling/MockAdapterManagerTest.java (with props)
sling/trunk/testing/sling-mock/src/test/java/org/apache/sling/testing/mock/sling/MockSlingRepositoryTest.java (with props)
sling/trunk/testing/sling-mock/src/test/java/org/apache/sling/testing/mock/sling/MockSlingScriptHelperTest.java (with props)
sling/trunk/testing/sling-mock/src/test/java/org/apache/sling/testing/mock/sling/builder/
sling/trunk/testing/sling-mock/src/test/java/org/apache/sling/testing/mock/sling/builder/ContentBuilderTest.java (with props)
sling/trunk/testing/sling-mock/src/test/java/org/apache/sling/testing/mock/sling/context/
sling/trunk/testing/sling-mock/src/test/java/org/apache/sling/testing/mock/sling/context/SlingContextImplTest.java (with props)
sling/trunk/testing/sling-mock/src/test/java/org/apache/sling/testing/mock/sling/jcrmock/
sling/trunk/testing/sling-mock/src/test/java/org/apache/sling/testing/mock/sling/jcrmock/loader/
sling/trunk/testing/sling-mock/src/test/java/org/apache/sling/testing/mock/sling/jcrmock/loader/ContentLoaderBinaryTest.java (with props)
sling/trunk/testing/sling-mock/src/test/java/org/apache/sling/testing/mock/sling/jcrmock/loader/ContentLoaderJsonDamTest.java (with props)
sling/trunk/testing/sling-mock/src/test/java/org/apache/sling/testing/mock/sling/jcrmock/loader/ContentLoaderJsonTest.java (with props)
sling/trunk/testing/sling-mock/src/test/java/org/apache/sling/testing/mock/sling/jcrmock/resource/
sling/trunk/testing/sling-mock/src/test/java/org/apache/sling/testing/mock/sling/jcrmock/resource/JcrResourceResolverTest.java (with props)
sling/trunk/testing/sling-mock/src/test/java/org/apache/sling/testing/mock/sling/jcrmock/resource/SlingCrudResourceResolverTest.java (with props)
sling/trunk/testing/sling-mock/src/test/java/org/apache/sling/testing/mock/sling/junit/
sling/trunk/testing/sling-mock/src/test/java/org/apache/sling/testing/mock/sling/junit/SlingContextTest.java (with props)
sling/trunk/testing/sling-mock/src/test/java/org/apache/sling/testing/mock/sling/loader/
sling/trunk/testing/sling-mock/src/test/java/org/apache/sling/testing/mock/sling/loader/AbstractContentLoaderBinaryTest.java (with props)
sling/trunk/testing/sling-mock/src/test/java/org/apache/sling/testing/mock/sling/loader/AbstractContentLoaderJsonDamTest.java (with props)
sling/trunk/testing/sling-mock/src/test/java/org/apache/sling/testing/mock/sling/loader/AbstractContentLoaderJsonTest.java (with props)
sling/trunk/testing/sling-mock/src/test/java/org/apache/sling/testing/mock/sling/resource/
sling/trunk/testing/sling-mock/src/test/java/org/apache/sling/testing/mock/sling/resource/AbstractJcrResourceResolverTest.java (with props)
sling/trunk/testing/sling-mock/src/test/java/org/apache/sling/testing/mock/sling/resource/AbstractSlingCrudResourceResolverTest.java (with props)
sling/trunk/testing/sling-mock/src/test/java/org/apache/sling/testing/mock/sling/rrmock/
sling/trunk/testing/sling-mock/src/test/java/org/apache/sling/testing/mock/sling/rrmock/loader/
sling/trunk/testing/sling-mock/src/test/java/org/apache/sling/testing/mock/sling/rrmock/loader/ContentLoaderBinaryTest.java (with props)
sling/trunk/testing/sling-mock/src/test/java/org/apache/sling/testing/mock/sling/rrmock/loader/ContentLoaderJsonDamTest.java (with props)
sling/trunk/testing/sling-mock/src/test/java/org/apache/sling/testing/mock/sling/rrmock/loader/ContentLoaderJsonTest.java (with props)
sling/trunk/testing/sling-mock/src/test/java/org/apache/sling/testing/mock/sling/rrmock/resource/
sling/trunk/testing/sling-mock/src/test/java/org/apache/sling/testing/mock/sling/rrmock/resource/SlingCrudResourceResolverTest.java (with props)
sling/trunk/testing/sling-mock/src/test/java/org/apache/sling/testing/mock/sling/services/
sling/trunk/testing/sling-mock/src/test/java/org/apache/sling/testing/mock/sling/services/MockMimeTypeServiceTest.java (with props)
sling/trunk/testing/sling-mock/src/test/java/org/apache/sling/testing/mock/sling/services/MockModelAdapterFactoryTest.java (with props)
sling/trunk/testing/sling-mock/src/test/java/org/apache/sling/testing/mock/sling/services/MockSlingSettingServiceTest.java (with props)
sling/trunk/testing/sling-mock/src/test/java/org/apache/sling/testing/mock/sling/servlet/
sling/trunk/testing/sling-mock/src/test/java/org/apache/sling/testing/mock/sling/servlet/MockHttpSessionTest.java (with props)
sling/trunk/testing/sling-mock/src/test/java/org/apache/sling/testing/mock/sling/servlet/MockRequestPathInfoTest.java (with props)
sling/trunk/testing/sling-mock/src/test/java/org/apache/sling/testing/mock/sling/servlet/MockServletContextTest.java (with props)
sling/trunk/testing/sling-mock/src/test/java/org/apache/sling/testing/mock/sling/servlet/MockSlingHttpServletRequestTest.java (with props)
sling/trunk/testing/sling-mock/src/test/java/org/apache/sling/testing/mock/sling/servlet/MockSlingHttpServletResponseTest.java (with props)
sling/trunk/testing/sling-mock/src/test/resources/
sling/trunk/testing/sling-mock/src/test/resources/json-import-samples/
sling/trunk/testing/sling-mock/src/test/resources/json-import-samples/content.json (with props)
sling/trunk/testing/sling-mock/src/test/resources/json-import-samples/dam.json (with props)
sling/trunk/testing/sling-mock/src/test/resources/sample-image.gif (with props)
Modified:
sling/trunk/pom.xml
Modified: sling/trunk/pom.xml
URL: http://svn.apache.org/viewvc/sling/trunk/pom.xml?rev=1631356&r1=1631355&r2=1631356&view=diff
==============================================================================
--- sling/trunk/pom.xml (original)
+++ sling/trunk/pom.xml Mon Oct 13 11:54:39 2014
@@ -194,6 +194,10 @@
<module>testing/junit/remote</module>
<module>testing/junit/performance</module>
<module>testing/resourceresolver-mock</module>
+ <module>testing/jcr-mock</module>
+ <module>testing/osgi-mock</module>
+ <module>testing/sling-mock</module>
+ <module>testing/sling-mock-jackrabbit</module>
<module>testing/sling-pax-util</module>
<!-- Installer -->
Added: sling/trunk/testing/jcr-mock/pom.xml
URL: http://svn.apache.org/viewvc/sling/trunk/testing/jcr-mock/pom.xml?rev=1631356&view=auto
==============================================================================
--- sling/trunk/testing/jcr-mock/pom.xml (added)
+++ sling/trunk/testing/jcr-mock/pom.xml Mon Oct 13 11:54:39 2014
@@ -0,0 +1,91 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<!--
+ Licensed to the Apache Software Foundation (ASF) under one
+ or more contributor license agreements. See the NOTICE file
+ distributed with this work for additional information
+ regarding copyright ownership. The ASF licenses this file
+ to you under the Apache License, Version 2.0 (the
+ "License"); you may not use this file except in compliance
+ with the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing,
+ software distributed under the License is distributed on an
+ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ KIND, either express or implied. See the License for the
+ specific language governing permissions and limitations
+ under the License.
+-->
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+
+ <modelVersion>4.0.0</modelVersion>
+ <parent>
+ <groupId>org.apache.sling</groupId>
+ <artifactId>sling</artifactId>
+ <version>22</version>
+ <relativePath>../../parent/pom.xml</relativePath>
+ </parent>
+
+ <artifactId>org.apache.sling.testing.jcr-mock</artifactId>
+ <version>1.0.0-SNAPSHOT</version>
+ <packaging>jar</packaging>
+
+ <name>Apache Sling Testing JCR Mock</name>
+ <description>Mock implementation of selected JCR APIs.</description>
+
+ <properties>
+ <sling.java.version>6</sling.java.version>
+ </properties>
+
+ <dependencies>
+
+ <dependency>
+ <groupId>javax.jcr</groupId>
+ <artifactId>jcr</artifactId>
+ <version>2.0</version>
+ <scope>compile</scope>
+ </dependency>
+
+ <dependency>
+ <groupId>org.apache.jackrabbit</groupId>
+ <artifactId>jackrabbit-jcr-commons</artifactId>
+ <version>2.8.0</version>
+ <scope>compile</scope>
+ </dependency>
+
+ <dependency>
+ <groupId>com.google.guava</groupId>
+ <artifactId>guava</artifactId>
+ <version>15.0</version>
+ <scope>compile</scope>
+ </dependency>
+
+ <dependency>
+ <groupId>org.apache.commons</groupId>
+ <artifactId>commons-lang3</artifactId>
+ <version>3.0.1</version>
+ <scope>compile</scope>
+ </dependency>
+
+ <dependency>
+ <groupId>commons-io</groupId>
+ <artifactId>commons-io</artifactId>
+ <version>2.4</version>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.mockito</groupId>
+ <artifactId>mockito-all</artifactId>
+ <version>1.9.5</version>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
+ <groupId>junit</groupId>
+ <artifactId>junit</artifactId>
+ <scope>test</scope>
+ </dependency>
+
+ </dependencies>
+
+</project>
Propchange: sling/trunk/testing/jcr-mock/pom.xml
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: sling/trunk/testing/jcr-mock/pom.xml
------------------------------------------------------------------------------
--- svn:keywords (added)
+++ svn:keywords Mon Oct 13 11:54:39 2014
@@ -0,0 +1 @@
+LastChangedDate LastChangedRevision LastChangedBy HeadURL Id Author
Propchange: sling/trunk/testing/jcr-mock/pom.xml
------------------------------------------------------------------------------
svn:mime-type = text/plain
Added: sling/trunk/testing/jcr-mock/src/main/java/org/apache/sling/testing/mock/jcr/AbstractItem.java
URL: http://svn.apache.org/viewvc/sling/trunk/testing/jcr-mock/src/main/java/org/apache/sling/testing/mock/jcr/AbstractItem.java?rev=1631356&view=auto
==============================================================================
--- sling/trunk/testing/jcr-mock/src/main/java/org/apache/sling/testing/mock/jcr/AbstractItem.java (added)
+++ sling/trunk/testing/jcr-mock/src/main/java/org/apache/sling/testing/mock/jcr/AbstractItem.java Mon Oct 13 11:54:39 2014
@@ -0,0 +1,129 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.sling.testing.mock.jcr;
+
+import javax.jcr.Item;
+import javax.jcr.ItemNotFoundException;
+import javax.jcr.ItemVisitor;
+import javax.jcr.Node;
+import javax.jcr.RepositoryException;
+import javax.jcr.Session;
+
+import org.apache.commons.lang3.StringUtils;
+
+/**
+ * Mock {@link Item} implementation.
+ */
+abstract class AbstractItem implements Item {
+
+ private final String path;
+ private final Session session;
+
+ public AbstractItem(final String path, final Session session) {
+ this.path = path;
+ this.session = session;
+ }
+
+ @Override
+ public String getName() {
+ return ResourceUtil.getName(this.path);
+ }
+
+ @Override
+ public String getPath() {
+ return this.path;
+ }
+
+ @Override
+ public Node getParent() throws RepositoryException {
+ return (Node) getSession().getItem(ResourceUtil.getParent(this.path));
+ }
+
+ @Override
+ public Session getSession() {
+ return this.session;
+ }
+
+ @Override
+ public boolean isModified() {
+ return false;
+ }
+
+ @Override
+ public boolean isNew() {
+ return false;
+ }
+
+ @Override
+ public Item getAncestor(final int depth) throws RepositoryException {
+ if (depth < 0 || depth > getDepth()) {
+ throw new ItemNotFoundException();
+ }
+ return this.session.getItem(ResourceUtil.getParent(this.path, depth));
+ }
+
+ protected String makeAbsolutePath(final String relativePath) {
+ String absolutePath = relativePath;
+ // ensure the path is absolute and normalized
+ if (!StringUtils.startsWith(absolutePath, "/")) {
+ absolutePath = this.path + "/" + absolutePath; // NOPMD
+ }
+ return ResourceUtil.normalize(absolutePath);
+ }
+
+ protected MockSession getMockedSession() {
+ return (MockSession) this.session;
+ }
+
+ @Override
+ public void remove() throws RepositoryException {
+ getSession().removeItem(getPath());
+ }
+
+ @Override
+ public int getDepth() throws RepositoryException {
+ if (StringUtils.equals("/", this.path)) {
+ return 0;
+ } else {
+ return StringUtils.countMatches(this.path, "/");
+ }
+ }
+
+ // --- unsupported operations ---
+ @Override
+ public void accept(final ItemVisitor visitor) {
+ throw new UnsupportedOperationException();
+ }
+
+ @Override
+ public boolean isSame(final Item otherItem) {
+ throw new UnsupportedOperationException();
+ }
+
+ @Override
+ public void refresh(final boolean keepChanges) {
+ throw new UnsupportedOperationException();
+ }
+
+ @Override
+ public void save() {
+ throw new UnsupportedOperationException();
+ }
+
+}
Propchange: sling/trunk/testing/jcr-mock/src/main/java/org/apache/sling/testing/mock/jcr/AbstractItem.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: sling/trunk/testing/jcr-mock/src/main/java/org/apache/sling/testing/mock/jcr/AbstractItem.java
------------------------------------------------------------------------------
--- svn:keywords (added)
+++ svn:keywords Mon Oct 13 11:54:39 2014
@@ -0,0 +1 @@
+LastChangedDate LastChangedRevision LastChangedBy HeadURL Id Author
Propchange: sling/trunk/testing/jcr-mock/src/main/java/org/apache/sling/testing/mock/jcr/AbstractItem.java
------------------------------------------------------------------------------
svn:mime-type = text/plain
Added: sling/trunk/testing/jcr-mock/src/main/java/org/apache/sling/testing/mock/jcr/ItemFilter.java
URL: http://svn.apache.org/viewvc/sling/trunk/testing/jcr-mock/src/main/java/org/apache/sling/testing/mock/jcr/ItemFilter.java?rev=1631356&view=auto
==============================================================================
--- sling/trunk/testing/jcr-mock/src/main/java/org/apache/sling/testing/mock/jcr/ItemFilter.java (added)
+++ sling/trunk/testing/jcr-mock/src/main/java/org/apache/sling/testing/mock/jcr/ItemFilter.java Mon Oct 13 11:54:39 2014
@@ -0,0 +1,31 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.sling.testing.mock.jcr;
+
+import javax.jcr.Item;
+import javax.jcr.RepositoryException;
+
+/**
+ * Used internally for filtering items in JCR data map.
+ */
+interface ItemFilter {
+
+ boolean accept(Item item) throws RepositoryException;
+
+}
Propchange: sling/trunk/testing/jcr-mock/src/main/java/org/apache/sling/testing/mock/jcr/ItemFilter.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: sling/trunk/testing/jcr-mock/src/main/java/org/apache/sling/testing/mock/jcr/ItemFilter.java
------------------------------------------------------------------------------
--- svn:keywords (added)
+++ svn:keywords Mon Oct 13 11:54:39 2014
@@ -0,0 +1 @@
+LastChangedDate LastChangedRevision LastChangedBy HeadURL Id Author
Propchange: sling/trunk/testing/jcr-mock/src/main/java/org/apache/sling/testing/mock/jcr/ItemFilter.java
------------------------------------------------------------------------------
svn:mime-type = text/plain
Added: sling/trunk/testing/jcr-mock/src/main/java/org/apache/sling/testing/mock/jcr/MockJcr.java
URL: http://svn.apache.org/viewvc/sling/trunk/testing/jcr-mock/src/main/java/org/apache/sling/testing/mock/jcr/MockJcr.java?rev=1631356&view=auto
==============================================================================
--- sling/trunk/testing/jcr-mock/src/main/java/org/apache/sling/testing/mock/jcr/MockJcr.java (added)
+++ sling/trunk/testing/jcr-mock/src/main/java/org/apache/sling/testing/mock/jcr/MockJcr.java Mon Oct 13 11:54:39 2014
@@ -0,0 +1,62 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.sling.testing.mock.jcr;
+
+import javax.jcr.Repository;
+import javax.jcr.RepositoryException;
+import javax.jcr.Session;
+
+/**
+ * Factory for mock JCR objects.
+ */
+public final class MockJcr {
+
+ /**
+ * Default workspace name
+ */
+ public static final String DEFAULT_WORKSPACE = "mockedWorkspace";
+
+ private MockJcr() {
+ // static methods only
+ }
+
+ /**
+ * Create a new mocked in-memory JCR repository. Beware: each session has
+ * its own data store.
+ * @return JCR repository
+ */
+ public static Repository newRepository() {
+ return new MockRepository();
+ }
+
+ /**
+ * Create a new mocked in-memory JCR session. It contains only the root
+ * node. All data of the session is thrown away if it gets garbage
+ * collected.
+ * @return JCR session
+ */
+ public static Session newSession() {
+ try {
+ return newRepository().login();
+ } catch (RepositoryException ex) {
+ throw new RuntimeException("Creating mocked JCR session failed.", ex);
+ }
+ }
+
+}
Propchange: sling/trunk/testing/jcr-mock/src/main/java/org/apache/sling/testing/mock/jcr/MockJcr.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: sling/trunk/testing/jcr-mock/src/main/java/org/apache/sling/testing/mock/jcr/MockJcr.java
------------------------------------------------------------------------------
--- svn:keywords (added)
+++ svn:keywords Mon Oct 13 11:54:39 2014
@@ -0,0 +1 @@
+LastChangedDate LastChangedRevision LastChangedBy HeadURL Id Author
Propchange: sling/trunk/testing/jcr-mock/src/main/java/org/apache/sling/testing/mock/jcr/MockJcr.java
------------------------------------------------------------------------------
svn:mime-type = text/plain
Added: sling/trunk/testing/jcr-mock/src/main/java/org/apache/sling/testing/mock/jcr/MockNamespaceRegistry.java
URL: http://svn.apache.org/viewvc/sling/trunk/testing/jcr-mock/src/main/java/org/apache/sling/testing/mock/jcr/MockNamespaceRegistry.java?rev=1631356&view=auto
==============================================================================
--- sling/trunk/testing/jcr-mock/src/main/java/org/apache/sling/testing/mock/jcr/MockNamespaceRegistry.java (added)
+++ sling/trunk/testing/jcr-mock/src/main/java/org/apache/sling/testing/mock/jcr/MockNamespaceRegistry.java Mon Oct 13 11:54:39 2014
@@ -0,0 +1,72 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.sling.testing.mock.jcr;
+
+import java.util.Set;
+
+import javax.jcr.NamespaceRegistry;
+import javax.jcr.RepositoryException;
+
+import com.google.common.collect.BiMap;
+import com.google.common.collect.HashBiMap;
+
+/**
+ * Mock {@link NamespaceRegistry} implementation.
+ */
+class MockNamespaceRegistry implements NamespaceRegistry {
+
+ private final BiMap<String, String> namespacePrefixMapping = HashBiMap.create();
+
+ public MockNamespaceRegistry() {
+ this.namespacePrefixMapping.put("jcr", "http://www.jcp.org/jcr/1.0");
+ }
+
+ @Override
+ public String getURI(final String prefix) {
+ return this.namespacePrefixMapping.get(prefix);
+ }
+
+ @Override
+ public String getPrefix(final String uri) {
+ return this.namespacePrefixMapping.inverse().get(uri);
+ }
+
+ @Override
+ public void registerNamespace(final String prefix, final String uri) {
+ this.namespacePrefixMapping.put(prefix, uri);
+ }
+
+ @Override
+ public void unregisterNamespace(final String prefix) {
+ this.namespacePrefixMapping.remove(prefix);
+ }
+
+ @Override
+ public String[] getPrefixes() throws RepositoryException {
+ Set<String> keys = this.namespacePrefixMapping.keySet();
+ return keys.toArray(new String[keys.size()]);
+ }
+
+ @Override
+ public String[] getURIs() throws RepositoryException {
+ Set<String> values = this.namespacePrefixMapping.values();
+ return values.toArray(new String[values.size()]);
+ }
+
+}
Propchange: sling/trunk/testing/jcr-mock/src/main/java/org/apache/sling/testing/mock/jcr/MockNamespaceRegistry.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: sling/trunk/testing/jcr-mock/src/main/java/org/apache/sling/testing/mock/jcr/MockNamespaceRegistry.java
------------------------------------------------------------------------------
--- svn:keywords (added)
+++ svn:keywords Mon Oct 13 11:54:39 2014
@@ -0,0 +1 @@
+LastChangedDate LastChangedRevision LastChangedBy HeadURL Id Author
Propchange: sling/trunk/testing/jcr-mock/src/main/java/org/apache/sling/testing/mock/jcr/MockNamespaceRegistry.java
------------------------------------------------------------------------------
svn:mime-type = text/plain
Added: sling/trunk/testing/jcr-mock/src/main/java/org/apache/sling/testing/mock/jcr/MockNode.java
URL: http://svn.apache.org/viewvc/sling/trunk/testing/jcr-mock/src/main/java/org/apache/sling/testing/mock/jcr/MockNode.java?rev=1631356&view=auto
==============================================================================
--- sling/trunk/testing/jcr-mock/src/main/java/org/apache/sling/testing/mock/jcr/MockNode.java (added)
+++ sling/trunk/testing/jcr-mock/src/main/java/org/apache/sling/testing/mock/jcr/MockNode.java Mon Oct 13 11:54:39 2014
@@ -0,0 +1,499 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.sling.testing.mock.jcr;
+
+import java.io.InputStream;
+import java.math.BigDecimal;
+import java.util.Calendar;
+import java.util.UUID;
+import java.util.regex.Pattern;
+
+import javax.jcr.Binary;
+import javax.jcr.Item;
+import javax.jcr.ItemNotFoundException;
+import javax.jcr.Node;
+import javax.jcr.NodeIterator;
+import javax.jcr.Property;
+import javax.jcr.PropertyIterator;
+import javax.jcr.RangeIterator;
+import javax.jcr.RepositoryException;
+import javax.jcr.Session;
+import javax.jcr.Value;
+import javax.jcr.lock.Lock;
+import javax.jcr.nodetype.NodeDefinition;
+import javax.jcr.nodetype.NodeType;
+import javax.jcr.version.Version;
+import javax.jcr.version.VersionHistory;
+
+import org.apache.jackrabbit.JcrConstants;
+import org.apache.jackrabbit.commons.iterator.NodeIteratorAdapter;
+import org.apache.jackrabbit.commons.iterator.PropertyIteratorAdapter;
+
+/**
+ * Mock {@link Node} implementation
+ */
+class MockNode extends AbstractItem implements Node {
+
+ private final UUID uuid = UUID.randomUUID();
+ private final NodeType nodeType;
+
+ public MockNode(final String path, final Session session, final NodeType nodeType) {
+ super(path, session);
+ this.nodeType = nodeType;
+ }
+
+ @Override
+ public Node addNode(final String relPath) throws RepositoryException {
+ return addNode(relPath, JcrConstants.NT_UNSTRUCTURED);
+ }
+
+ @Override
+ public Node addNode(final String relPath, final String primaryNodeTypeName) throws RepositoryException {
+ String path = makeAbsolutePath(relPath);
+ Node node = new MockNode(path, getSession(), new MockNodeType(primaryNodeTypeName));
+ getMockedSession().addItem(node);
+ return node;
+ }
+
+ @Override
+ public Node getNode(final String relPath) throws RepositoryException {
+ String path = makeAbsolutePath(relPath);
+ return getSession().getNode(path);
+ }
+
+ @Override
+ public NodeIterator getNodes() throws RepositoryException {
+ RangeIterator items = getMockedSession().listChildren(getPath(), new ItemFilter() {
+ @Override
+ public boolean accept(final Item item) {
+ return item instanceof Node;
+ }
+ });
+ return new NodeIteratorAdapter(items, items.getSize());
+ }
+
+ @Override
+ public NodeIterator getNodes(final String namePattern) throws RepositoryException {
+ final Pattern pattern = Pattern.compile(namePattern);
+ RangeIterator items = getMockedSession().listChildren(getPath(), new ItemFilter() {
+ @Override
+ public boolean accept(final Item item) throws RepositoryException {
+ return (item instanceof Node) && pattern.matcher(item.getName()).matches();
+ }
+ });
+ return new NodeIteratorAdapter(items, items.getSize());
+ }
+
+ @Override
+ public PropertyIterator getProperties() throws RepositoryException {
+ RangeIterator items = getMockedSession().listChildren(getPath(), new ItemFilter() {
+ @Override
+ public boolean accept(final Item item) {
+ return item instanceof Property;
+ }
+ });
+ return new PropertyIteratorAdapter(items, items.getSize());
+ }
+
+ @Override
+ public PropertyIterator getProperties(final String namePattern) throws RepositoryException {
+ final Pattern pattern = Pattern.compile(namePattern);
+ RangeIterator items = getMockedSession().listChildren(getPath(), new ItemFilter() {
+ @Override
+ public boolean accept(final Item item) throws RepositoryException {
+ return (item instanceof Property) && pattern.matcher(item.getName()).matches();
+ }
+ });
+ return new PropertyIteratorAdapter(items, items.getSize());
+ }
+
+ @Override
+ public Property getProperty(final String relPath) throws RepositoryException {
+ String path = makeAbsolutePath(relPath);
+ return getSession().getProperty(path);
+ }
+
+ @Override
+ public String getIdentifier() {
+ return this.uuid.toString();
+ }
+
+ @Override
+ public String getUUID() {
+ return getIdentifier();
+ }
+
+ @Override
+ public boolean hasNode(final String relPath) throws RepositoryException {
+ String path = makeAbsolutePath(relPath);
+ return getSession().nodeExists(path);
+ }
+
+ @Override
+ public boolean hasNodes() throws RepositoryException {
+ return getNodes().hasNext();
+ }
+
+ @Override
+ public boolean hasProperties() throws RepositoryException {
+ return getProperties().hasNext();
+ }
+
+ @Override
+ public boolean hasProperty(final String relPath) throws RepositoryException {
+ String path = makeAbsolutePath(relPath);
+ return getSession().propertyExists(path);
+ }
+
+ @Override
+ public Property setProperty(final String name, final Value value) throws RepositoryException {
+ Property property = new MockProperty(getPath() + "/" + name, getSession());
+ property.setValue(value);
+ getMockedSession().addItem(property);
+ return property;
+ }
+
+ @Override
+ public Property setProperty(final String name, final Value[] values) throws RepositoryException {
+ Property property = new MockProperty(getPath() + "/" + name, getSession());
+ property.setValue(values);
+ getMockedSession().addItem(property);
+ return property;
+ }
+
+ @Override
+ public Property setProperty(final String name, final String[] values) throws RepositoryException {
+ Property property = new MockProperty(getPath() + "/" + name, getSession());
+ property.setValue(values);
+ getMockedSession().addItem(property);
+ return property;
+ }
+
+ @Override
+ public Property setProperty(final String name, final String value) throws RepositoryException {
+ Property property = new MockProperty(getPath() + "/" + name, getSession());
+ property.setValue(value);
+ getMockedSession().addItem(property);
+ return property;
+ }
+
+ @Override
+ @SuppressWarnings("deprecation")
+ public Property setProperty(final String name, final InputStream value) throws RepositoryException {
+ Property property = new MockProperty(getPath() + "/" + name, getSession());
+ property.setValue(value);
+ getMockedSession().addItem(property);
+ return property;
+ }
+
+ @Override
+ public Property setProperty(final String name, final boolean value) throws RepositoryException {
+ Property property = new MockProperty(getPath() + "/" + name, getSession());
+ property.setValue(value);
+ getMockedSession().addItem(property);
+ return property;
+ }
+
+ @Override
+ public Property setProperty(final String name, final double value) throws RepositoryException {
+ Property property = new MockProperty(getPath() + "/" + name, getSession());
+ property.setValue(value);
+ getMockedSession().addItem(property);
+ return property;
+ }
+
+ @Override
+ public Property setProperty(final String name, final long value) throws RepositoryException {
+ Property property = new MockProperty(getPath() + "/" + name, getSession());
+ property.setValue(value);
+ getMockedSession().addItem(property);
+ return property;
+ }
+
+ @Override
+ public Property setProperty(final String name, final Calendar value) throws RepositoryException {
+ Property property = new MockProperty(getPath() + "/" + name, getSession());
+ property.setValue(value);
+ getMockedSession().addItem(property);
+ return property;
+ }
+
+ @Override
+ public Property setProperty(final String name, final Node value) throws RepositoryException {
+ Property property = new MockProperty(getPath() + "/" + name, getSession());
+ property.setValue(value);
+ getMockedSession().addItem(property);
+ return property;
+ }
+
+ @Override
+ public Property setProperty(final String name, final Binary value) throws RepositoryException {
+ Property property = new MockProperty(getPath() + "/" + name, getSession());
+ property.setValue(value);
+ getMockedSession().addItem(property);
+ return property;
+ }
+
+ @Override
+ public Property setProperty(final String name, final BigDecimal value) throws RepositoryException {
+ Property property = new MockProperty(getPath() + "/" + name, getSession());
+ property.setValue(value);
+ getMockedSession().addItem(property);
+ return property;
+ }
+
+ @Override
+ public boolean isNode() {
+ return true;
+ }
+
+ @Override
+ public boolean isNodeType(final String nodeTypeName) throws RepositoryException {
+ return this.nodeType.isNodeType(nodeTypeName);
+ }
+
+ @Override
+ public NodeType getPrimaryNodeType() {
+ return this.nodeType;
+ }
+
+ @Override
+ public Item getPrimaryItem() throws RepositoryException {
+ // support "jcr:content" node and "jcr:data" property as primary items
+ if (hasProperty(JcrConstants.JCR_DATA)) {
+ return getProperty(JcrConstants.JCR_DATA);
+ } else if (hasNode(JcrConstants.JCR_CONTENT)) {
+ return getNode(JcrConstants.JCR_CONTENT);
+ } else {
+ throw new ItemNotFoundException();
+ }
+ }
+
+ // --- unsupported operations ---
+ @Override
+ public Property setProperty(final String name, final Value value, final int type) {
+ throw new UnsupportedOperationException();
+ }
+
+ @Override
+ public Property setProperty(final String name, final Value[] values, final int type) {
+ throw new UnsupportedOperationException();
+ }
+
+ @Override
+ public Property setProperty(final String name, final String[] values, final int type) {
+ throw new UnsupportedOperationException();
+ }
+
+ @Override
+ public Property setProperty(final String name, final String value, final int type) {
+ throw new UnsupportedOperationException();
+ }
+
+ @Override
+ public void addMixin(final String pMixinName) {
+ throw new UnsupportedOperationException();
+ }
+
+ @Override
+ public boolean canAddMixin(final String pMixinName) {
+ throw new UnsupportedOperationException();
+ }
+
+ @Override
+ public void cancelMerge(final Version pVersion) {
+ throw new UnsupportedOperationException();
+ }
+
+ @Override
+ public Version checkin() {
+ throw new UnsupportedOperationException();
+ }
+
+ @Override
+ public void checkout() {
+ throw new UnsupportedOperationException();
+ }
+
+ @Override
+ public void doneMerge(final Version pVersion) {
+ throw new UnsupportedOperationException();
+ }
+
+ @Override
+ public Version getBaseVersion() {
+ throw new UnsupportedOperationException();
+ }
+
+ @Override
+ public String getCorrespondingNodePath(final String workspaceName) {
+ throw new UnsupportedOperationException();
+ }
+
+ @Override
+ public NodeDefinition getDefinition() {
+ throw new UnsupportedOperationException();
+ }
+
+ @Override
+ public int getIndex() {
+ throw new UnsupportedOperationException();
+ }
+
+ @Override
+ public Lock getLock() {
+ throw new UnsupportedOperationException();
+ }
+
+ @Override
+ public NodeType[] getMixinNodeTypes() {
+ throw new UnsupportedOperationException();
+ }
+
+ @Override
+ public PropertyIterator getReferences() {
+ throw new UnsupportedOperationException();
+ }
+
+ @Override
+ public VersionHistory getVersionHistory() {
+ throw new UnsupportedOperationException();
+ }
+
+ @Override
+ public boolean holdsLock() {
+ throw new UnsupportedOperationException();
+ }
+
+ @Override
+ public boolean isCheckedOut() {
+ throw new UnsupportedOperationException();
+ }
+
+ @Override
+ public boolean isLocked() {
+ throw new UnsupportedOperationException();
+ }
+
+ @Override
+ public Lock lock(final boolean isDeep, final boolean isSessionScoped) {
+ throw new UnsupportedOperationException();
+ }
+
+ @Override
+ public NodeIterator merge(final String srcWorkspace, final boolean bestEffort) {
+ throw new UnsupportedOperationException();
+ }
+
+ @Override
+ public void orderBefore(final String srcChildRelPath, final String destChildRelPath) {
+ throw new UnsupportedOperationException();
+ }
+
+ @Override
+ public void removeMixin(final String mixinName) {
+ throw new UnsupportedOperationException();
+ }
+
+ @Override
+ public void restore(final String versionName, final boolean removeExisting) {
+ throw new UnsupportedOperationException();
+ }
+
+ @Override
+ public void restore(final Version version, final boolean removeExisting) {
+ throw new UnsupportedOperationException();
+ }
+
+ @Override
+ public void restore(final Version version, final String relPath, final boolean removeExisting) {
+ throw new UnsupportedOperationException();
+ }
+
+ @Override
+ public void restoreByLabel(final String versionLabel, final boolean removeExisting) {
+ throw new UnsupportedOperationException();
+ }
+
+ @Override
+ public void unlock() {
+ throw new UnsupportedOperationException();
+ }
+
+ @Override
+ public void update(final String srcWorkspaceName) {
+ throw new UnsupportedOperationException();
+ }
+
+ @Override
+ public void followLifecycleTransition(final String transition) {
+ throw new UnsupportedOperationException();
+ }
+
+ @Override
+ public String[] getAllowedLifecycleTransistions() {
+ throw new UnsupportedOperationException();
+ }
+
+ @Override
+ public NodeIterator getNodes(final String[] nameGlobs) {
+ throw new UnsupportedOperationException();
+ }
+
+ @Override
+ public PropertyIterator getProperties(final String[] nameGlobs) {
+ throw new UnsupportedOperationException();
+ }
+
+ @Override
+ public PropertyIterator getReferences(final String name) {
+ throw new UnsupportedOperationException();
+ }
+
+ @Override
+ public NodeIterator getSharedSet() {
+ throw new UnsupportedOperationException();
+ }
+
+ @Override
+ public PropertyIterator getWeakReferences() {
+ throw new UnsupportedOperationException();
+ }
+
+ @Override
+ public PropertyIterator getWeakReferences(final String name) {
+ throw new UnsupportedOperationException();
+ }
+
+ @Override
+ public void removeShare() {
+ throw new UnsupportedOperationException();
+ }
+
+ @Override
+ public void removeSharedSet() {
+ throw new UnsupportedOperationException();
+ }
+
+ @Override
+ public void setPrimaryType(final String pNodeTypeName) {
+ throw new UnsupportedOperationException();
+ }
+
+}
Propchange: sling/trunk/testing/jcr-mock/src/main/java/org/apache/sling/testing/mock/jcr/MockNode.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: sling/trunk/testing/jcr-mock/src/main/java/org/apache/sling/testing/mock/jcr/MockNode.java
------------------------------------------------------------------------------
--- svn:keywords (added)
+++ svn:keywords Mon Oct 13 11:54:39 2014
@@ -0,0 +1 @@
+LastChangedDate LastChangedRevision LastChangedBy HeadURL Id Author
Propchange: sling/trunk/testing/jcr-mock/src/main/java/org/apache/sling/testing/mock/jcr/MockNode.java
------------------------------------------------------------------------------
svn:mime-type = text/plain
Added: sling/trunk/testing/jcr-mock/src/main/java/org/apache/sling/testing/mock/jcr/MockNodeType.java
URL: http://svn.apache.org/viewvc/sling/trunk/testing/jcr-mock/src/main/java/org/apache/sling/testing/mock/jcr/MockNodeType.java?rev=1631356&view=auto
==============================================================================
--- sling/trunk/testing/jcr-mock/src/main/java/org/apache/sling/testing/mock/jcr/MockNodeType.java (added)
+++ sling/trunk/testing/jcr-mock/src/main/java/org/apache/sling/testing/mock/jcr/MockNodeType.java Mon Oct 13 11:54:39 2014
@@ -0,0 +1,155 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.sling.testing.mock.jcr;
+
+import javax.jcr.Value;
+import javax.jcr.nodetype.NodeDefinition;
+import javax.jcr.nodetype.NodeType;
+import javax.jcr.nodetype.NodeTypeIterator;
+import javax.jcr.nodetype.PropertyDefinition;
+
+/**
+ * Mock {@link NodeType} implementation.
+ */
+class MockNodeType implements NodeType {
+
+ private final String name;
+
+ public MockNodeType(final String name) {
+ this.name = name;
+ }
+
+ @Override
+ public String getName() {
+ return this.name;
+ }
+
+ @Override
+ public boolean isNodeType(final String nodeTypeName) {
+ // node type inheritance not supported
+ return this.name.equals(nodeTypeName);
+ }
+
+ // --- unsupported operations ---
+ @Override
+ public boolean canAddChildNode(final String childNodeName) {
+ throw new UnsupportedOperationException();
+ }
+
+ @Override
+ public boolean canAddChildNode(final String childNodeName, final String nodeTypeName) {
+ throw new UnsupportedOperationException();
+ }
+
+ @Override
+ public boolean canRemoveItem(final String itemName) {
+ throw new UnsupportedOperationException();
+ }
+
+ @Override
+ public boolean canSetProperty(final String propertyName, final Value value) {
+ throw new UnsupportedOperationException();
+ }
+
+ @Override
+ public boolean canSetProperty(final String propertyName, final Value[] values) {
+ throw new UnsupportedOperationException();
+ }
+
+ @Override
+ public NodeDefinition[] getChildNodeDefinitions() {
+ throw new UnsupportedOperationException();
+ }
+
+ @Override
+ public NodeDefinition[] getDeclaredChildNodeDefinitions() {
+ throw new UnsupportedOperationException();
+ }
+
+ @Override
+ public PropertyDefinition[] getDeclaredPropertyDefinitions() {
+ throw new UnsupportedOperationException();
+ }
+
+ @Override
+ public NodeType[] getDeclaredSupertypes() {
+ throw new UnsupportedOperationException();
+ }
+
+ @Override
+ public String getPrimaryItemName() {
+ throw new UnsupportedOperationException();
+ }
+
+ @Override
+ public PropertyDefinition[] getPropertyDefinitions() {
+ throw new UnsupportedOperationException();
+ }
+
+ @Override
+ public NodeType[] getSupertypes() {
+ throw new UnsupportedOperationException();
+ }
+
+ @Override
+ public boolean hasOrderableChildNodes() {
+ throw new UnsupportedOperationException();
+ }
+
+ @Override
+ public boolean isMixin() {
+ throw new UnsupportedOperationException();
+ }
+
+ @Override
+ public boolean canRemoveNode(final String nodeName) {
+ throw new UnsupportedOperationException();
+ }
+
+ @Override
+ public boolean canRemoveProperty(final String propertyName) {
+ throw new UnsupportedOperationException();
+ }
+
+ @Override
+ public NodeTypeIterator getDeclaredSubtypes() {
+ throw new UnsupportedOperationException();
+ }
+
+ @Override
+ public NodeTypeIterator getSubtypes() {
+ throw new UnsupportedOperationException();
+ }
+
+ @Override
+ public String[] getDeclaredSupertypeNames() {
+ throw new UnsupportedOperationException();
+ }
+
+ @Override
+ public boolean isAbstract() {
+ throw new UnsupportedOperationException();
+ }
+
+ @Override
+ public boolean isQueryable() {
+ throw new UnsupportedOperationException();
+ }
+
+}
Propchange: sling/trunk/testing/jcr-mock/src/main/java/org/apache/sling/testing/mock/jcr/MockNodeType.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: sling/trunk/testing/jcr-mock/src/main/java/org/apache/sling/testing/mock/jcr/MockNodeType.java
------------------------------------------------------------------------------
--- svn:keywords (added)
+++ svn:keywords Mon Oct 13 11:54:39 2014
@@ -0,0 +1 @@
+LastChangedDate LastChangedRevision LastChangedBy HeadURL Id Author
Propchange: sling/trunk/testing/jcr-mock/src/main/java/org/apache/sling/testing/mock/jcr/MockNodeType.java
------------------------------------------------------------------------------
svn:mime-type = text/plain
Added: sling/trunk/testing/jcr-mock/src/main/java/org/apache/sling/testing/mock/jcr/MockNodeTypeManager.java
URL: http://svn.apache.org/viewvc/sling/trunk/testing/jcr-mock/src/main/java/org/apache/sling/testing/mock/jcr/MockNodeTypeManager.java?rev=1631356&view=auto
==============================================================================
--- sling/trunk/testing/jcr-mock/src/main/java/org/apache/sling/testing/mock/jcr/MockNodeTypeManager.java (added)
+++ sling/trunk/testing/jcr-mock/src/main/java/org/apache/sling/testing/mock/jcr/MockNodeTypeManager.java Mon Oct 13 11:54:39 2014
@@ -0,0 +1,103 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.sling.testing.mock.jcr;
+
+import javax.jcr.nodetype.NodeDefinitionTemplate;
+import javax.jcr.nodetype.NodeType;
+import javax.jcr.nodetype.NodeTypeDefinition;
+import javax.jcr.nodetype.NodeTypeIterator;
+import javax.jcr.nodetype.NodeTypeManager;
+import javax.jcr.nodetype.NodeTypeTemplate;
+import javax.jcr.nodetype.PropertyDefinitionTemplate;
+
+/**
+ * Mock {@link NodeTypeManager} implementation.
+ */
+class MockNodeTypeManager implements NodeTypeManager {
+
+ @Override
+ public NodeType getNodeType(String nodeTypeName) {
+ // accept all node types and return a mock
+ return new MockNodeType(nodeTypeName);
+ }
+
+ @Override
+ public boolean hasNodeType(String name) {
+ // accept all node types
+ return true;
+ }
+
+ // --- unsupported operations ---
+
+ @Override
+ public NodeTypeIterator getAllNodeTypes() {
+ throw new UnsupportedOperationException();
+ }
+
+ @Override
+ public NodeTypeIterator getPrimaryNodeTypes() {
+ throw new UnsupportedOperationException();
+ }
+
+ @Override
+ public NodeTypeIterator getMixinNodeTypes() {
+ throw new UnsupportedOperationException();
+ }
+
+ @Override
+ public NodeTypeTemplate createNodeTypeTemplate() {
+ throw new UnsupportedOperationException();
+ }
+
+ @Override
+ public NodeTypeTemplate createNodeTypeTemplate(NodeTypeDefinition ntd) {
+ throw new UnsupportedOperationException();
+ }
+
+ @Override
+ public NodeDefinitionTemplate createNodeDefinitionTemplate() {
+ throw new UnsupportedOperationException();
+ }
+
+ @Override
+ public PropertyDefinitionTemplate createPropertyDefinitionTemplate() {
+ throw new UnsupportedOperationException();
+ }
+
+ @Override
+ public NodeType registerNodeType(NodeTypeDefinition ntd, boolean allowUpdate) {
+ throw new UnsupportedOperationException();
+ }
+
+ @Override
+ public NodeTypeIterator registerNodeTypes(NodeTypeDefinition[] ntds, boolean allowUpdate) {
+ throw new UnsupportedOperationException();
+ }
+
+ @Override
+ public void unregisterNodeType(String name) {
+ throw new UnsupportedOperationException();
+ }
+
+ @Override
+ public void unregisterNodeTypes(String[] names) {
+ throw new UnsupportedOperationException();
+ }
+
+}
Propchange: sling/trunk/testing/jcr-mock/src/main/java/org/apache/sling/testing/mock/jcr/MockNodeTypeManager.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: sling/trunk/testing/jcr-mock/src/main/java/org/apache/sling/testing/mock/jcr/MockNodeTypeManager.java
------------------------------------------------------------------------------
--- svn:keywords (added)
+++ svn:keywords Mon Oct 13 11:54:39 2014
@@ -0,0 +1 @@
+LastChangedDate LastChangedRevision LastChangedBy HeadURL Id Author
Propchange: sling/trunk/testing/jcr-mock/src/main/java/org/apache/sling/testing/mock/jcr/MockNodeTypeManager.java
------------------------------------------------------------------------------
svn:mime-type = text/plain
Added: sling/trunk/testing/jcr-mock/src/main/java/org/apache/sling/testing/mock/jcr/MockNodeTypes.java
URL: http://svn.apache.org/viewvc/sling/trunk/testing/jcr-mock/src/main/java/org/apache/sling/testing/mock/jcr/MockNodeTypes.java?rev=1631356&view=auto
==============================================================================
--- sling/trunk/testing/jcr-mock/src/main/java/org/apache/sling/testing/mock/jcr/MockNodeTypes.java (added)
+++ sling/trunk/testing/jcr-mock/src/main/java/org/apache/sling/testing/mock/jcr/MockNodeTypes.java Mon Oct 13 11:54:39 2014
@@ -0,0 +1,49 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.sling.testing.mock.jcr;
+
+import javax.jcr.nodetype.NodeType;
+
+import org.apache.jackrabbit.JcrConstants;
+
+/**
+ * Collection of mocked node type instances.
+ */
+public final class MockNodeTypes {
+
+ private MockNodeTypes() {
+ // constants only
+ }
+
+ /**
+ * Node type NT_UNSTRUCTURED
+ */
+ public static final NodeType NT_UNSTRUCTURED = new MockNodeType(JcrConstants.NT_UNSTRUCTURED);
+
+ /**
+ * Node type NT_FOLDER
+ */
+ public static final NodeType NT_FOLDER = new MockNodeType(JcrConstants.NT_FOLDER);
+
+ /**
+ * Node type NT_FILE
+ */
+ public static final NodeType NT_FILE = new MockNodeType(JcrConstants.NT_FILE);
+
+}
Propchange: sling/trunk/testing/jcr-mock/src/main/java/org/apache/sling/testing/mock/jcr/MockNodeTypes.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: sling/trunk/testing/jcr-mock/src/main/java/org/apache/sling/testing/mock/jcr/MockNodeTypes.java
------------------------------------------------------------------------------
--- svn:keywords (added)
+++ svn:keywords Mon Oct 13 11:54:39 2014
@@ -0,0 +1 @@
+LastChangedDate LastChangedRevision LastChangedBy HeadURL Id Author
Propchange: sling/trunk/testing/jcr-mock/src/main/java/org/apache/sling/testing/mock/jcr/MockNodeTypes.java
------------------------------------------------------------------------------
svn:mime-type = text/plain
Added: sling/trunk/testing/jcr-mock/src/main/java/org/apache/sling/testing/mock/jcr/MockObservationManager.java
URL: http://svn.apache.org/viewvc/sling/trunk/testing/jcr-mock/src/main/java/org/apache/sling/testing/mock/jcr/MockObservationManager.java?rev=1631356&view=auto
==============================================================================
--- sling/trunk/testing/jcr-mock/src/main/java/org/apache/sling/testing/mock/jcr/MockObservationManager.java (added)
+++ sling/trunk/testing/jcr-mock/src/main/java/org/apache/sling/testing/mock/jcr/MockObservationManager.java Mon Oct 13 11:54:39 2014
@@ -0,0 +1,65 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.sling.testing.mock.jcr;
+
+import javax.jcr.RepositoryException;
+import javax.jcr.observation.EventJournal;
+import javax.jcr.observation.EventListener;
+import javax.jcr.observation.EventListenerIterator;
+import javax.jcr.observation.ObservationManager;
+
+/**
+ * Mock {@link ObservationManager} implementation.
+ */
+class MockObservationManager implements ObservationManager {
+
+ @Override
+ public void addEventListener(final EventListener listener, final int eventTypes, final String absPath,
+ final boolean isDeep, final String[] uuid, final String[] nodeTypeName, final boolean noLocal) {
+ // do nothing
+ }
+
+ @Override
+ public void removeEventListener(final EventListener listener) {
+ // do nothing
+ }
+
+ // --- unsupported operations ---
+ @Override
+ public EventListenerIterator getRegisteredEventListeners() {
+ throw new UnsupportedOperationException();
+ }
+
+ @Override
+ public void setUserData(final String userData) {
+ throw new UnsupportedOperationException();
+ }
+
+ @Override
+ public EventJournal getEventJournal() throws RepositoryException {
+ throw new UnsupportedOperationException();
+ }
+
+ @Override
+ public EventJournal getEventJournal(final int eventTypes, final String absPath, final boolean isDeep,
+ final String[] uuid, final String[] nodeTypeName) {
+ throw new UnsupportedOperationException();
+ }
+
+}
Propchange: sling/trunk/testing/jcr-mock/src/main/java/org/apache/sling/testing/mock/jcr/MockObservationManager.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: sling/trunk/testing/jcr-mock/src/main/java/org/apache/sling/testing/mock/jcr/MockObservationManager.java
------------------------------------------------------------------------------
--- svn:keywords (added)
+++ svn:keywords Mon Oct 13 11:54:39 2014
@@ -0,0 +1 @@
+LastChangedDate LastChangedRevision LastChangedBy HeadURL Id Author
Propchange: sling/trunk/testing/jcr-mock/src/main/java/org/apache/sling/testing/mock/jcr/MockObservationManager.java
------------------------------------------------------------------------------
svn:mime-type = text/plain
Added: sling/trunk/testing/jcr-mock/src/main/java/org/apache/sling/testing/mock/jcr/MockProperty.java
URL: http://svn.apache.org/viewvc/sling/trunk/testing/jcr-mock/src/main/java/org/apache/sling/testing/mock/jcr/MockProperty.java?rev=1631356&view=auto
==============================================================================
--- sling/trunk/testing/jcr-mock/src/main/java/org/apache/sling/testing/mock/jcr/MockProperty.java (added)
+++ sling/trunk/testing/jcr-mock/src/main/java/org/apache/sling/testing/mock/jcr/MockProperty.java Mon Oct 13 11:54:39 2014
@@ -0,0 +1,306 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.sling.testing.mock.jcr;
+
+import java.io.InputStream;
+import java.math.BigDecimal;
+import java.util.Calendar;
+
+import javax.jcr.Binary;
+import javax.jcr.Node;
+import javax.jcr.Property;
+import javax.jcr.RepositoryException;
+import javax.jcr.Session;
+import javax.jcr.Value;
+import javax.jcr.ValueFormatException;
+import javax.jcr.nodetype.NodeType;
+import javax.jcr.nodetype.PropertyDefinition;
+
+import org.apache.jackrabbit.value.BinaryValue;
+
+/**
+ * Mock {@link Property} implementation
+ */
+class MockProperty extends AbstractItem implements Property {
+
+ private Value[] values;
+ private boolean isMultiple;
+
+ public MockProperty(final String path, final Session session) throws RepositoryException {
+ super(path, session);
+ this.values = new Value[] { getSession().getValueFactory().createValue("") };
+ }
+
+ private Value internalGetValue() throws ValueFormatException {
+ if (this.values.length > 1) {
+ throw new ValueFormatException(this
+ + " is a multi-valued property, so it's values can only be retrieved as an array");
+ } else {
+ return this.values[0];
+ }
+ }
+
+ @Override
+ public Value getValue() throws ValueFormatException {
+ return internalGetValue();
+ }
+
+ @Override
+ public Value[] getValues() {
+ Value[] valuesCopy = new Value[this.values.length];
+ for (int i = 0; i < this.values.length; i++) {
+ valuesCopy[i] = this.values[i];
+ }
+ return valuesCopy;
+ }
+
+ @Override
+ public void setValue(final Value newValue) {
+ this.values = new Value[] { newValue };
+ this.isMultiple = false;
+ }
+
+ @Override
+ public void setValue(final Value[] newValues) {
+ this.values = new Value[newValues.length];
+ for (int i = 0; i < newValues.length; i++) {
+ this.values[i] = newValues[i];
+ }
+ this.isMultiple = true;
+ }
+
+ @Override
+ public void setValue(final String newValue) throws RepositoryException {
+ this.values = new Value[] { getSession().getValueFactory().createValue(newValue) };
+ this.isMultiple = false;
+ }
+
+ @Override
+ public void setValue(final String[] newValues) throws RepositoryException {
+ this.values = new Value[newValues.length];
+ for (int i = 0; i < newValues.length; i++) {
+ this.values[i] = getSession().getValueFactory().createValue(newValues[i]);
+ }
+ this.isMultiple = true;
+ }
+
+ @Override
+ public void setValue(final InputStream newValue) throws RepositoryException {
+ this.values = new Value[] { new BinaryValue(newValue) };
+ this.isMultiple = false;
+ }
+
+ @Override
+ public void setValue(final long newValue) throws RepositoryException {
+ this.values = new Value[] { getSession().getValueFactory().createValue(newValue) };
+ this.isMultiple = false;
+ }
+
+ @Override
+ public void setValue(final double newValue) throws RepositoryException {
+ this.values = new Value[] { getSession().getValueFactory().createValue(newValue) };
+ this.isMultiple = false;
+ }
+
+ @Override
+ public void setValue(final Calendar newValue) throws RepositoryException {
+ this.values = new Value[] { getSession().getValueFactory().createValue(newValue) };
+ this.isMultiple = false;
+ }
+
+ @Override
+ public void setValue(final boolean newValue) throws RepositoryException {
+ this.values = new Value[] { getSession().getValueFactory().createValue(newValue) };
+ this.isMultiple = false;
+ }
+
+ @Override
+ public void setValue(final Node newValue) throws RepositoryException {
+ this.values = new Value[] { getSession().getValueFactory().createValue(newValue) };
+ this.isMultiple = false;
+ }
+
+ @Override
+ public void setValue(final Binary newValue) throws RepositoryException {
+ this.values = new Value[] { new BinaryValue(newValue) };
+ this.isMultiple = false;
+ }
+
+ @Override
+ public void setValue(final BigDecimal newValue) throws RepositoryException {
+ this.values = new Value[] { getSession().getValueFactory().createValue(newValue) };
+ this.isMultiple = false;
+ }
+
+ @Override
+ public boolean getBoolean() throws RepositoryException {
+ return internalGetValue().getBoolean();
+ }
+
+ @Override
+ public Calendar getDate() throws RepositoryException {
+ return internalGetValue().getDate();
+ }
+
+ @Override
+ public double getDouble() throws RepositoryException {
+ return internalGetValue().getDouble();
+ }
+
+ @Override
+ public long getLong() throws RepositoryException {
+ return internalGetValue().getLong();
+ }
+
+ @Override
+ public String getString() throws RepositoryException {
+ return internalGetValue().getString();
+ }
+
+ @Override
+ @SuppressWarnings("deprecation")
+ public InputStream getStream() throws RepositoryException {
+ return internalGetValue().getStream();
+ }
+
+ @Override
+ public Binary getBinary() throws RepositoryException {
+ return internalGetValue().getBinary();
+ }
+
+ @Override
+ public BigDecimal getDecimal() throws RepositoryException {
+ return internalGetValue().getDecimal();
+ }
+
+ @Override
+ public int getType() throws RepositoryException {
+ return this.values[0].getType();
+ }
+
+ @Override
+ public long getLength() throws RepositoryException {
+ return getValue().getString().length();
+ }
+
+ @Override
+ public long[] getLengths() throws RepositoryException {
+ long[] lengths = new long[this.values.length];
+ for (int i = 0; i < this.values.length; i++) {
+ lengths[i] = this.values[i].getString().length();
+ }
+ return lengths;
+ }
+
+ @Override
+ public boolean isNode() {
+ return false;
+ }
+
+ @Override
+ public boolean isMultiple() {
+ return this.isMultiple;
+ }
+
+ @Override
+ public PropertyDefinition getDefinition() {
+ return new MockPropertyDefinition();
+ }
+
+ // --- unsupported operations ---
+ @Override
+ public Node getNode() {
+ throw new UnsupportedOperationException();
+ }
+
+ @Override
+ public Property getProperty() {
+ throw new UnsupportedOperationException();
+ }
+
+ private final class MockPropertyDefinition implements PropertyDefinition {
+
+ @Override
+ public boolean isMultiple() {
+ return MockProperty.this.isMultiple();
+ }
+
+ // --- unsupported operations ---
+ @Override
+ public Value[] getDefaultValues() {
+ throw new UnsupportedOperationException();
+ }
+
+ @Override
+ public int getRequiredType() {
+ throw new UnsupportedOperationException();
+ }
+
+ @Override
+ public String[] getValueConstraints() {
+ throw new UnsupportedOperationException();
+ }
+
+ @Override
+ public NodeType getDeclaringNodeType() {
+ throw new UnsupportedOperationException();
+ }
+
+ @Override
+ public String getName() {
+ throw new UnsupportedOperationException();
+ }
+
+ @Override
+ public int getOnParentVersion() {
+ throw new UnsupportedOperationException();
+ }
+
+ @Override
+ public boolean isAutoCreated() {
+ throw new UnsupportedOperationException();
+ }
+
+ @Override
+ public boolean isMandatory() {
+ throw new UnsupportedOperationException();
+ }
+
+ @Override
+ public boolean isProtected() {
+ throw new UnsupportedOperationException();
+ }
+
+ @Override
+ public String[] getAvailableQueryOperators() {
+ throw new UnsupportedOperationException();
+ }
+
+ @Override
+ public boolean isFullTextSearchable() {
+ throw new UnsupportedOperationException();
+ }
+
+ @Override
+ public boolean isQueryOrderable() {
+ throw new UnsupportedOperationException();
+ }
+ }
+
+}
Propchange: sling/trunk/testing/jcr-mock/src/main/java/org/apache/sling/testing/mock/jcr/MockProperty.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: sling/trunk/testing/jcr-mock/src/main/java/org/apache/sling/testing/mock/jcr/MockProperty.java
------------------------------------------------------------------------------
--- svn:keywords (added)
+++ svn:keywords Mon Oct 13 11:54:39 2014
@@ -0,0 +1 @@
+LastChangedDate LastChangedRevision LastChangedBy HeadURL Id Author
Propchange: sling/trunk/testing/jcr-mock/src/main/java/org/apache/sling/testing/mock/jcr/MockProperty.java
------------------------------------------------------------------------------
svn:mime-type = text/plain