You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@sling.apache.org by ro...@apache.org on 2017/11/07 10:23:35 UTC
[sling-org-apache-sling-testing-sling-mock] 19/37: SLING-5067
rewrite unit tests to use new "uniqueRoot" feature
This is an automated email from the ASF dual-hosted git repository.
rombert pushed a commit to annotated tag org.apache.sling.testing.sling-mock-1.6.0
in repository https://gitbox.apache.org/repos/asf/sling-org-apache-sling-testing-sling-mock.git
commit b24a116b3382692b57b999bc07d6b177a45ff57f
Author: Stefan Seifert <ss...@apache.org>
AuthorDate: Mon Sep 28 20:37:21 2015 +0000
SLING-5067 rewrite unit tests to use new "uniqueRoot" feature
git-svn-id: https://svn.apache.org/repos/asf/sling/trunk/testing/mocks/sling-mock@1705765 13f79535-47bb-0310-9956-ffa450edef68
---
.../testing/mock/sling/context/UniqueRoot.java | 4 +-
.../resource/AbstractJcrResourceResolverTest.java | 46 +++++-------
.../AbstractSlingCrudResourceResolverTest.java | 81 ++++++++--------------
3 files changed, 50 insertions(+), 81 deletions(-)
diff --git a/src/main/java/org/apache/sling/testing/mock/sling/context/UniqueRoot.java b/src/main/java/org/apache/sling/testing/mock/sling/context/UniqueRoot.java
index 20f836b..471c657 100644
--- a/src/main/java/org/apache/sling/testing/mock/sling/context/UniqueRoot.java
+++ b/src/main/java/org/apache/sling/testing/mock/sling/context/UniqueRoot.java
@@ -33,8 +33,8 @@ import com.google.common.collect.ImmutableMap;
/**
* Manages unique root paths in JCR repository.
- * This is important for resource resolver types like JCR_JACKRABBIT and JCR_OAK
- * where the repository is not cleand for each test run. This class provides
+ * This is important for resource resolver types like JCR_JACKRABBIT
+ * where the repository is not cleaned for each test run. This class provides
* unique root paths for each run, and cleans them up when done.
*/
public class UniqueRoot {
diff --git a/src/test/java/org/apache/sling/testing/mock/sling/resource/AbstractJcrResourceResolverTest.java b/src/test/java/org/apache/sling/testing/mock/sling/resource/AbstractJcrResourceResolverTest.java
index 8012308..2726da9 100644
--- a/src/test/java/org/apache/sling/testing/mock/sling/resource/AbstractJcrResourceResolverTest.java
+++ b/src/test/java/org/apache/sling/testing/mock/sling/resource/AbstractJcrResourceResolverTest.java
@@ -18,6 +18,7 @@
*/
package org.apache.sling.testing.mock.sling.resource;
+import static org.apache.sling.jcr.resource.JcrResourceConstants.NT_SLING_ORDERED_FOLDER;
import static org.apache.sling.jcr.resource.JcrResourceConstants.SLING_RESOURCE_TYPE_PROPERTY;
import static org.junit.Assert.assertArrayEquals;
import static org.junit.Assert.assertEquals;
@@ -41,13 +42,13 @@ import org.apache.commons.lang3.time.DateUtils;
import org.apache.jackrabbit.JcrConstants;
import org.apache.sling.api.resource.PersistenceException;
import org.apache.sling.api.resource.Resource;
-import org.apache.sling.api.resource.ResourceResolver;
import org.apache.sling.api.resource.ResourceUtil;
import org.apache.sling.api.resource.ValueMap;
-import org.apache.sling.testing.mock.sling.MockSling;
import org.apache.sling.testing.mock.sling.ResourceResolverType;
+import org.apache.sling.testing.mock.sling.junit.SlingContext;
import org.junit.After;
import org.junit.Before;
+import org.junit.Rule;
import org.junit.Test;
import com.google.common.collect.ImmutableList;
@@ -59,6 +60,9 @@ import com.google.common.collect.ImmutableMap;
*/
public abstract class AbstractJcrResourceResolverTest {
+ @Rule
+ public SlingContext context = new SlingContext(getResourceResolverType());
+
private static final String STRING_VALUE = "value1";
private static final String[] STRING_ARRAY_VALUE = new String[] { "value1", "value2" };
private static final int INTEGER_VALUE = 25;
@@ -68,21 +72,14 @@ public abstract class AbstractJcrResourceResolverTest {
private static final Calendar CALENDAR_VALUE = Calendar.getInstance();
private static final byte[] BINARY_VALUE = new byte[] { 0x01, 0x02, 0x03, 0x04, 0x05, 0x06 };
- private ResourceResolver resourceResolver;
private Session session;
protected Node testRoot;
- private static volatile long rootNodeCounter;
protected abstract ResourceResolverType getResourceResolverType();
- protected ResourceResolver newResourceResolver() {
- return MockSling.newResourceResolver(getResourceResolverType());
- }
-
@Before
public final void setUp() throws RepositoryException {
- resourceResolver = newResourceResolver();
- session = resourceResolver.adaptTo(Session.class);
+ session = context.resourceResolver().adaptTo(Session.class);
// prepare some test data using JCR API
Node rootNode = getTestRootNode();
@@ -106,28 +103,21 @@ public abstract class AbstractJcrResourceResolverTest {
@After
public final void tearDown() {
testRoot = null;
- resourceResolver.close();
}
/**
* Return a test root node, created on demand, with a unique path
*/
private Node getTestRootNode() throws RepositoryException {
- if (testRoot == null) {
- final Node root = session.getRootNode();
- if (getResourceResolverType() == ResourceResolverType.JCR_JACKRABBIT) {
- final Node classRoot = root.addNode(getClass().getSimpleName());
- testRoot = classRoot.addNode(System.currentTimeMillis() + "_" + (rootNodeCounter++));
- } else {
- testRoot = root.addNode("test", JcrConstants.NT_UNSTRUCTURED);
- }
+ if (this.testRoot == null) {
+ this.testRoot = context.resourceResolver().getResource(context.uniqueRoot().content()).adaptTo(Node.class);
}
return testRoot;
}
@Test
public void testGetResourcesAndValues() throws IOException, RepositoryException {
- Resource resource1 = resourceResolver.getResource(getTestRootNode().getPath() + "/node1");
+ Resource resource1 = context.resourceResolver().getResource(getTestRootNode().getPath() + "/node1");
assertNotNull(resource1);
assertEquals("node1", resource1.getName());
@@ -160,9 +150,9 @@ public abstract class AbstractJcrResourceResolverTest {
@Test
public void testCreateNodeWithPrimaryType() throws RepositoryException, PersistenceException {
- Resource parent = resourceResolver.getResource(getTestRootNode().getPath());
+ Resource parent = context.resourceResolver().getResource(getTestRootNode().getPath());
- Resource child = resourceResolver.create(parent, "nodeTypeResource", ImmutableMap.<String, Object> builder()
+ Resource child = context.resourceResolver().create(parent, "nodeTypeResource", ImmutableMap.<String, Object> builder()
.put(SLING_RESOURCE_TYPE_PROPERTY, JcrConstants.NT_UNSTRUCTURED).build());
assertNotNull(child);
assertEquals(JcrConstants.NT_UNSTRUCTURED, child.getResourceType());
@@ -171,12 +161,12 @@ public abstract class AbstractJcrResourceResolverTest {
@Test
public void testCreateNodeWithResourceType() throws RepositoryException, PersistenceException {
- Resource parent = resourceResolver.getResource(getTestRootNode().getPath());
+ Resource parent = context.resourceResolver().getResource(getTestRootNode().getPath());
- Resource child = ResourceUtil.getOrCreateResource(resourceResolver, parent.getPath() + "/intermediate/child",
+ Resource child = ResourceUtil.getOrCreateResource(context.resourceResolver(), parent.getPath() + "/intermediate/child",
"sling/resource/type", JcrConstants.NT_UNSTRUCTURED, true);
assertNotNull(child);
- assertEquals(JcrConstants.NT_UNSTRUCTURED, parent.getResourceType());
+ assertEquals(NT_SLING_ORDERED_FOLDER, parent.getResourceType());
assertEquals("sling/resource/type", child.getResourceType());
}
@@ -188,11 +178,11 @@ public abstract class AbstractJcrResourceResolverTest {
return;
}
- Resource testRootResource = resourceResolver.getResource(getTestRootNode().getPath());
- resourceResolver.delete(testRootResource);
+ Resource testRootResource = context.resourceResolver().getResource(getTestRootNode().getPath());
+ context.resourceResolver().delete(testRootResource);
assertTrue(session.hasPendingChanges());
- resourceResolver.commit();
+ context.resourceResolver().commit();
assertFalse(session.hasPendingChanges());
}
diff --git a/src/test/java/org/apache/sling/testing/mock/sling/resource/AbstractSlingCrudResourceResolverTest.java b/src/test/java/org/apache/sling/testing/mock/sling/resource/AbstractSlingCrudResourceResolverTest.java
index 9880ef5..e9f4dbd 100644
--- a/src/test/java/org/apache/sling/testing/mock/sling/resource/AbstractSlingCrudResourceResolverTest.java
+++ b/src/test/java/org/apache/sling/testing/mock/sling/resource/AbstractSlingCrudResourceResolverTest.java
@@ -38,14 +38,13 @@ import org.apache.commons.lang3.StringUtils;
import org.apache.jackrabbit.JcrConstants;
import org.apache.sling.api.resource.PersistenceException;
import org.apache.sling.api.resource.Resource;
-import org.apache.sling.api.resource.ResourceResolver;
import org.apache.sling.api.resource.ResourceUtil;
import org.apache.sling.api.resource.ValueMap;
-import org.apache.sling.testing.mock.sling.MockSling;
import org.apache.sling.testing.mock.sling.ResourceResolverType;
import org.apache.sling.testing.mock.sling.builder.ContentBuilder;
-import org.junit.After;
+import org.apache.sling.testing.mock.sling.junit.SlingContext;
import org.junit.Before;
+import org.junit.Rule;
import org.junit.Test;
import com.google.common.collect.ImmutableList;
@@ -57,6 +56,9 @@ import com.google.common.collect.Lists;
* used to create the test data.
*/
public abstract class AbstractSlingCrudResourceResolverTest {
+
+ @Rule
+ public SlingContext context = new SlingContext(getResourceResolverType());
private static final String STRING_VALUE = "value1";
private static final String[] STRING_ARRAY_VALUE = new String[] { "value1", "value2" };
@@ -67,19 +69,11 @@ public abstract class AbstractSlingCrudResourceResolverTest {
private static final Calendar CALENDAR_VALUE = Calendar.getInstance();
private static final byte[] BINARY_VALUE = new byte[] { 0x01, 0x02, 0x03, 0x04, 0x05, 0x06 };
- protected ResourceResolver resourceResolver;
protected Resource testRoot;
- private static volatile long rootNodeCounter;
-
protected abstract ResourceResolverType getResourceResolverType();
- protected ResourceResolver newResourceResolver() {
- return MockSling.newResourceResolver(getResourceResolverType());
- }
-
@Before
public final void setUp() throws IOException {
- this.resourceResolver = newResourceResolver();
// prepare some test data using Sling CRUD API
Resource rootNode = getTestRootResource();
@@ -94,20 +88,14 @@ public abstract class AbstractSlingCrudResourceResolverTest {
props.put("dateProp", DATE_VALUE);
props.put("calendarProp", CALENDAR_VALUE);
props.put("binaryProp", new ByteArrayInputStream(BINARY_VALUE));
- Resource node1 = this.resourceResolver.create(rootNode, "node1", props);
+ Resource node1 = context.resourceResolver().create(rootNode, "node1", props);
- resourceResolver.create(node1, "node11", ImmutableMap.<String, Object>builder()
+ context.resourceResolver().create(node1, "node11", ImmutableMap.<String, Object>builder()
.put("stringProp11", STRING_VALUE)
.build());
- this.resourceResolver.create(node1, "node12", ValueMap.EMPTY);
+ context.resourceResolver().create(node1, "node12", ValueMap.EMPTY);
- this.resourceResolver.commit();
- }
-
- @After
- public final void tearDown() {
- this.testRoot = null;
- this.resourceResolver.close();
+ context.resourceResolver().commit();
}
/**
@@ -116,23 +104,14 @@ public abstract class AbstractSlingCrudResourceResolverTest {
*/
protected Resource getTestRootResource() throws PersistenceException {
if (this.testRoot == null) {
- Map<String, Object> props = new HashMap<String, Object>();
- props.put(JcrConstants.JCR_PRIMARYTYPE, JcrConstants.NT_UNSTRUCTURED);
- final Resource root = this.resourceResolver.getResource("/");
- if (getResourceResolverType() == ResourceResolverType.JCR_MOCK
- || getResourceResolverType() == ResourceResolverType.RESOURCERESOLVER_MOCK) {
- this.testRoot = this.resourceResolver.create(root, "test", props);
- } else {
- this.testRoot = this.resourceResolver.create(root, getClass().getSimpleName() + "_"
- + System.currentTimeMillis() + "_" + (rootNodeCounter++), props);
- }
+ this.testRoot = context.resourceResolver().getResource(context.uniqueRoot().content());
}
return this.testRoot;
}
@Test
public void testSimpleProperties() throws IOException {
- Resource resource1 = this.resourceResolver.getResource(getTestRootResource().getPath() + "/node1");
+ Resource resource1 = context.resourceResolver().getResource(getTestRootResource().getPath() + "/node1");
assertNotNull(resource1);
assertEquals("node1", resource1.getName());
@@ -146,7 +125,7 @@ public abstract class AbstractSlingCrudResourceResolverTest {
@Test
public void testSimpleProperties_DeepPathAccess() throws IOException {
- Resource resource1 = resourceResolver.getResource(testRoot.getPath());
+ Resource resource1 = context.resourceResolver().getResource(testRoot.getPath());
assertNotNull(resource1);
assertEquals(testRoot.getName(), resource1.getName());
@@ -161,7 +140,7 @@ public abstract class AbstractSlingCrudResourceResolverTest {
@Test
public void testDateProperty() throws IOException {
- Resource resource1 = this.resourceResolver.getResource(getTestRootResource().getPath() + "/node1");
+ Resource resource1 = context.resourceResolver().getResource(getTestRootResource().getPath() + "/node1");
ValueMap props = ResourceUtil.getValueMap(resource1);
// TODO: enable this test when JCR resource implementation supports
// writing Date objects (SLING-3846)
@@ -174,7 +153,7 @@ public abstract class AbstractSlingCrudResourceResolverTest {
@Test
public void testDatePropertyToCalendar() throws IOException {
- Resource resource1 = this.resourceResolver.getResource(getTestRootResource().getPath() + "/node1");
+ Resource resource1 = context.resourceResolver().getResource(getTestRootResource().getPath() + "/node1");
ValueMap props = ResourceUtil.getValueMap(resource1);
// TODO: enable this test when JCR resource implementation supports
// writing Date objects (SLING-3846)
@@ -189,14 +168,14 @@ public abstract class AbstractSlingCrudResourceResolverTest {
@Test
public void testCalendarProperty() throws IOException {
- Resource resource1 = this.resourceResolver.getResource(getTestRootResource().getPath() + "/node1");
+ Resource resource1 = context.resourceResolver().getResource(getTestRootResource().getPath() + "/node1");
ValueMap props = ResourceUtil.getValueMap(resource1);
assertEquals(CALENDAR_VALUE.getTime(), props.get("calendarProp", Calendar.class).getTime());
}
@Test
public void testCalendarPropertyToDate() throws IOException {
- Resource resource1 = this.resourceResolver.getResource(getTestRootResource().getPath() + "/node1");
+ Resource resource1 = context.resourceResolver().getResource(getTestRootResource().getPath() + "/node1");
ValueMap props = ResourceUtil.getValueMap(resource1);
Date dateValue = props.get("calendarProp", Date.class);
assertNotNull(dateValue);
@@ -205,7 +184,7 @@ public abstract class AbstractSlingCrudResourceResolverTest {
@Test
public void testListChildren() throws IOException {
- Resource resource1 = this.resourceResolver.getResource(getTestRootResource().getPath() + "/node1");
+ Resource resource1 = context.resourceResolver().getResource(getTestRootResource().getPath() + "/node1");
List<Resource> children = ImmutableList.copyOf(resource1.listChildren());
assertEquals(2, children.size());
@@ -215,15 +194,15 @@ public abstract class AbstractSlingCrudResourceResolverTest {
@Test
public void testListChildren_RootNode() throws IOException {
- Resource resource1 = resourceResolver.getResource("/");
+ Resource resource1 = context.resourceResolver().getResource("/");
List<Resource> children = Lists.newArrayList(resource1.listChildren());
assertFalse(children.isEmpty());
- assertTrue(containsResource(children, getTestRootResource()));
+ assertTrue(containsResource(children, getTestRootResource().getParent()));
children = Lists.newArrayList(resource1.getChildren());
assertFalse(children.isEmpty());
- assertTrue(containsResource(children, getTestRootResource()));
+ assertTrue(containsResource(children, getTestRootResource().getParent()));
}
private boolean containsResource(List<Resource> children, Resource resource) {
@@ -237,7 +216,7 @@ public abstract class AbstractSlingCrudResourceResolverTest {
@Test
public void testBinaryData() throws IOException {
- Resource resource1 = this.resourceResolver.getResource(getTestRootResource().getPath() + "/node1");
+ Resource resource1 = context.resourceResolver().getResource(getTestRootResource().getPath() + "/node1");
Resource binaryPropResource = resource1.getChild("binaryProp");
InputStream is = binaryPropResource.adaptTo(InputStream.class);
@@ -255,29 +234,29 @@ public abstract class AbstractSlingCrudResourceResolverTest {
@Test
public void testPrimaryTypeResourceType() throws PersistenceException {
- Resource resource = this.resourceResolver.getResource(getTestRootResource().getPath());
+ Resource resource = context.resourceResolver().getResource(getTestRootResource().getPath() + "/node1");
assertEquals(JcrConstants.NT_UNSTRUCTURED, resource.getResourceType());
}
@Test
public void testGetRootResourceByNullPath() {
- Resource rootResource = this.resourceResolver.resolve((String)null);
+ Resource rootResource = context.resourceResolver().resolve((String)null);
assertNotNull(rootResource);
assertEquals("/", rootResource.getPath());
}
@Test
public void testSearchPath() {
- ContentBuilder builder = new ContentBuilder(this.resourceResolver);
+ ContentBuilder builder = new ContentBuilder(context.resourceResolver());
builder.resource("/libs/any/path");
- Resource resource = this.resourceResolver.getResource("any/path");
+ Resource resource = context.resourceResolver().getResource("any/path");
assertNotNull(resource);
assertEquals("/libs/any/path", resource.getPath());
builder.resource("/apps/any/path");
- resource = this.resourceResolver.getResource("any/path");
+ resource = context.resourceResolver().getResource("any/path");
assertNotNull(resource);
assertEquals("/apps/any/path", resource.getPath());
}
@@ -290,11 +269,11 @@ public abstract class AbstractSlingCrudResourceResolverTest {
return;
}
- resourceResolver.delete(getTestRootResource());
- assertTrue(resourceResolver.hasChanges());
+ context.resourceResolver().delete(getTestRootResource());
+ assertTrue(context.resourceResolver().hasChanges());
- resourceResolver.commit();
- assertFalse(resourceResolver.hasChanges());
+ context.resourceResolver().commit();
+ assertFalse(context.resourceResolver().hasChanges());
}
}
--
To stop receiving notification emails like this one, please contact
"commits@sling.apache.org" <co...@sling.apache.org>.