Deeper integration with the Hamcrest matcher library.
<dependency>
<groupId>org.apache.sling</groupId>
<artifactId>org.apache.sling.testing.hamcrest</artifactId>
</dependency>
Note that to keep the classpath consistent this module has all its dependencies marked as provided
(except hamcrest). It relies on your own project to define the needed dependencies, such as org.apache.sling:org.apache.sling.api
.
See latest version on the downloads page.
The class org.apache.sling.testing.hamcrest.ResourceMatchers
is the main entry point. It contains static methods that can be used to create assertions.
import static org.apache.sling.hamcrest.ResourceMatchers.resourceOfType;
public void MyServiceTest {
@Test
public void loadResources() {
Map<String, Object> expectedProperties = /* define properties */;
Resource resource = /* load resource */ null;
assertThat(resource, resourceOfType("my/app"));
assertThat(resource, hasChildren("header", "body"));
assertThat(resource, resourceWithProps(expectedProperties));
}
}
The Slingshot sample application uses these matchers, see SetupServiceTest.java for an example.