Тест AEM JUnit с активом DAM
Я пытаюсь протестировать некоторые активы DAM с помощью теста JUnit в AEM.
Сначала я скопировал существующий ресурс как JSON в файл ресурсов. Затем я использую ContentLoader для записи файла JSON в смоделированный репозиторий.
final ContentLoader contentLoader = new ContentLoader(this.getResourceResolver());
contentLoader.json("content/assets/testAsset.json", "/content/assets/testAsset");
Затем я использую ResourceResolver для разрешения ресурса в destinationPath.
Resource assetRecource = resourceResolver.resolve("/content/assets/testAsset");
Все идет нормально. Когда я пытаюсь адаптировать assetRecource к классу Asset.class, получается пустой результат.
Asset asset = assetRecource.adaptTo(Asset.class); // is null
На мой взгляд, это потому, что пропущенные версии.
У кого-нибудь есть идеи как это исправить? Может быть, с ContentLoader#binaryResource()?
2 ответа
Проверьте resourceType для ресурса, который должен быть dam: Asset.
Resource assetRecource = resourceResolver.resolve("/content/assets/testAsset");
DamUtil.isAsset(assetRecource); // This would be true if the asset is dam:Asset
assetRecource.getResourceType(); // This would return the resourceType of the resource.
Возможная причина того, что adaptTo будет нулевым, только в том случае, если ресурс не адаптируется к классу активов.
Refrences:
Чтобы проверить оценки DAM, необходимо добавить приведенную ниже зависимость:
<!-- https://mvnrepository.com/artifact/org.apache.commons/commons-imaging -->
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-imaging</artifactId>
<version>1.0-R1534292</version>
</dependency>