blob: a39204c711a6efbfa838c3d52b9bbfd0f64d974d [file] [log] [blame]
/*
* 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.sling.junit5;
import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.jupiter.api.Assertions.assertNotNull;
import static org.junit.jupiter.api.Assertions.assertTrue;
import org.apache.sling.api.resource.Resource;
import org.apache.sling.testing.mock.sling.ResourceResolverType;
import org.apache.sling.testing.mock.sling.context.modelsautoreg.ClasspathRegisteredModel;
import org.junit.jupiter.api.AfterEach;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.extension.ExtendWith;
/**
* Test with {@link SlingContext} as test method parameter.
*/
@ExtendWith(SlingContextExtension.class)
@SuppressWarnings("null")
class SlingContextTest {
@BeforeEach
void setUp(SlingContext context) {
assertEquals(ResourceResolverType.RESOURCERESOLVER_MOCK, context.resourceResolverType());
context.create().resource("/content/test", "prop1", "value1");
}
@Test
void testResource(SlingContext context) {
Resource resource = context.resourceResolver().getResource("/content/test");
assertEquals("value1", resource.getValueMap().get("prop1"));
}
@Test
public void testSlingModelClasspathRegistered(SlingContext context) {
context.request().setAttribute("prop1", "myValue");
ClasspathRegisteredModel model = context.request().adaptTo(ClasspathRegisteredModel.class);
assertEquals("myValue", model.getProp1());
}
@Test
void testResourceOperationsOnMountedFolder(SlingContext context) {
String root = context.uniqueRoot().content() + "/test-content";
context.load().folderJson("src/test/resources/test-content", root);
Resource parent = context.resourceResolver().getResource(root + "/parent");
assertNotNull(parent, "Expected to resolve the 'parent' resource.");
assertNotNull(parent.getChild("child"), "Expected to resolver the 'child' resource.");
Resource uniqueRoot = context.resourceResolver().getParent(parent);
assertNotNull(uniqueRoot, "Expected to resolve the unique root");
assertEquals(root, uniqueRoot.getPath(), "The resolved unique root is not identical to the created unique root.");
assertTrue(context.resourceResolver().listChildren(parent).hasNext(), "Expected to get a list of children.");
assertTrue(context.resourceResolver().getChildren(parent).iterator().hasNext(), "Expected to get a list of children.");
assertTrue(parent.hasChildren(), "Expected to get a list of children.");
}
@AfterEach
void tearDown(SlingContext context) throws Exception {
Resource resource = context.resourceResolver().getResource("/content/test");
assertEquals("value1", resource.getValueMap().get("prop1"));
context.resourceResolver().delete(resource);
}
}