You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@sling.apache.org by "Mahidhar Chaluvadi (Jira)" <ji...@apache.org> on 2022/07/27 19:41:00 UTC
[jira] [Created] (SLING-11499) ContentFileResource - Unable to adapt to ModifiableValueMap
Mahidhar Chaluvadi created SLING-11499:
------------------------------------------
Summary: ContentFileResource - Unable to adapt to ModifiableValueMap
Key: SLING-11499
URL: https://issues.apache.org/jira/browse/SLING-11499
Project: Sling
Issue Type: Bug
Reporter: Mahidhar Chaluvadi
When trying to load Sling Mocks using File Vault (Content XML files instead of Json files), the src code that relies on adapting to ModifiableValueMap is returning null. Please advise on what's the right way to handle this or advise us with the fix details if this is a valid bug. Additionally feel free to reach out to me for testing the fixes or to include me in any development efforts.
Here is the sample code for reproducing the issue.
Assumptions:
# Sample content is available as a content package module as part of the project structure
# Content does contain a valid page with any component below responsive grid
{code:java}
package com.junit.sling.mocks;
import org.apache.jackrabbit.vault.util.PathUtil;
import org.apache.sling.api.resource.ModifiableValueMap;
import org.apache.sling.api.resource.Resource;
import org.apache.sling.api.resource.ResourceResolver;
import org.apache.sling.api.resource.ValueMap;
import org.apache.sling.testing.mock.sling.ResourceResolverType;
import org.apache.sling.testing.mock.sling.junit5.SlingContext;
import org.apache.sling.testing.mock.sling.junit5.SlingContextExtension;
import org.apache.sling.testing.mock.sling.loader.ContentLoader;
import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.extension.ExtendWith;
import java.io.File;
@ExtendWith({SlingContextExtension.class})
public class AEMMocksJUnit5ModifiableValueMap {
public final SlingContext slingContext = new SlingContext(ResourceResolverType.RESOURCERESOLVER_MOCK);
private static final String TEST_RESOURCE = "/content/junit-core-mock-data/somepage/jcr:content/root/responsivegrid/somecomponent";
private static final String VAULT_FS_HOME = "/ui.content.sample/src/main/content/jcr_root";
private final ResourceResolver resourceResolver = slingContext.resourceResolver();
private Resource finalJsonResource;
@BeforeEach
public void setUpDefaultMockContent() {
ContentLoader contentLoader = slingContext.load();
File bundleDirectory = new File(System.getProperty("user.dir")).getParentFile();
final String VAULT_FS_HOME_ABS_PATH = PathUtil.append(bundleDirectory.getPath(),VAULT_FS_HOME);
contentLoader.folderFileVaultXml(VAULT_FS_HOME_ABS_PATH,"/conf");
contentLoader.folderFileVaultXml(VAULT_FS_HOME_ABS_PATH,"/content");
slingContext.runMode("author");
}
@Test
public void testModifiableValueMap() {
finalJsonResource = resourceResolver.getResource(TEST_RESOURCE);
if (finalJsonResource != null)
Assertions.assertNotNull(finalJsonResource.adaptTo(ValueMap.class));
// Code below is not meant to return null
Assertions.assertNull(finalJsonResource.adaptTo(ModifiableValueMap.class));
}
} {code}
Thanks
--
This message was sent by Atlassian Jira
(v8.20.10#820010)