SLING-10095 - Add negative test cases (#95)
diff --git a/src/test/java/org/apache/sling/distribution/journal/bookkeeper/ContentPackageExtractorTest.java b/src/test/java/org/apache/sling/distribution/journal/bookkeeper/ContentPackageExtractorTest.java
index ecb416f..4fc9f8c 100644
--- a/src/test/java/org/apache/sling/distribution/journal/bookkeeper/ContentPackageExtractorTest.java
+++ b/src/test/java/org/apache/sling/distribution/journal/bookkeeper/ContentPackageExtractorTest.java
@@ -19,7 +19,10 @@
package org.apache.sling.distribution.journal.bookkeeper;
import static java.util.Collections.singletonList;
+import static org.apache.jackrabbit.vault.fs.api.ProgressTrackerListener.Mode.PATHS;
import static org.apache.sling.api.resource.ResourceUtil.getOrCreateResource;
+import static org.mockito.Matchers.any;
+import static org.mockito.Mockito.doAnswer;
import static org.mockito.Mockito.doThrow;
import static org.mockito.Mockito.never;
import static org.mockito.Mockito.verify;
@@ -51,6 +54,7 @@
import org.mockito.Mock;
import org.mockito.Mockito;
import org.mockito.runners.MockitoJUnitRunner;
+import org.mockito.stubbing.Answer;
import org.osgi.framework.BundleContext;
@RunWith(MockitoJUnitRunner.class)
@@ -151,6 +155,23 @@
extractor.handle(resourceResolver, singletonList(node.getPath()));
}
+ @Test(expected = DistributionException.class)
+ public void testFailedInstallWithError() throws Exception {
+
+ Answer<Void> errorAndThrow = run -> {
+ ImportOptions opts = (ImportOptions) run.getArguments()[0];
+ opts.getListener().onError(PATHS, "Failed due to XYZ", new PackageException());
+ throw new PackageException();
+ };
+
+ doAnswer(errorAndThrow).when(pkg)
+ .install(any(ImportOptions.class));
+
+ Resource node = createImportedPackage();
+ ContentPackageExtractor extractor = new ContentPackageExtractor(packaging, PackageHandling.Install);
+ extractor.handle(resourceResolver, singletonList(node.getPath()));
+ }
+
@Test
public void testNotContentPackagePath() throws Exception {
@@ -174,6 +195,20 @@
verify(pkg, never()).install(Mockito.any(ImportOptions.class));
}
+ @Test
+ public void testNullPath() throws Exception {
+ ContentPackageExtractor extractor = new ContentPackageExtractor(packaging, PackageHandling.Install);
+ extractor.handle(resourceResolver, singletonList(null));
+ verify(pkg, never()).install(Mockito.any(ImportOptions.class));
+ }
+
+ @Test
+ public void testNullPackageNode() throws Exception {
+ ContentPackageExtractor extractor = new ContentPackageExtractor(packaging, PackageHandling.Install);
+ extractor.handle(resourceResolver, singletonList("/does/not/exist"));
+ verify(pkg, never()).install(Mockito.any(ImportOptions.class));
+ }
+
private Resource createImportedPackage() throws PersistenceException {
return createImportedPackage(createEtcPackages());
}
diff --git a/src/test/java/org/apache/sling/distribution/journal/bookkeeper/ErrorListenerTest.java b/src/test/java/org/apache/sling/distribution/journal/bookkeeper/ErrorListenerTest.java
index a1a3295..33b0427 100644
--- a/src/test/java/org/apache/sling/distribution/journal/bookkeeper/ErrorListenerTest.java
+++ b/src/test/java/org/apache/sling/distribution/journal/bookkeeper/ErrorListenerTest.java
@@ -63,6 +63,15 @@
assertMessage(message);
}
+ @Test
+ public void testOnMessage() {
+ errorListener.onMessage(PATHS, "action", path);
+ errorListener.onError(PATHS, path, exception);
+ String message = errorListener.getLastErrorMessage();
+ assertNotNull(message);
+ assertMessage(message);
+ }
+
private void assertMessage(String message) {
assertTrue(message.contains(errorMsg));
assertTrue(message.contains(path));