You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@sling.apache.org by dk...@apache.org on 2020/09/23 19:49:42 UTC

[sling-org-apache-sling-app-cms] branch master updated: Fixing flagged bug and adding test coverage

This is an automated email from the ASF dual-hosted git repository.

dklco pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/sling-org-apache-sling-app-cms.git


The following commit(s) were added to refs/heads/master by this push:
     new ff58163  Fixing flagged bug and adding test coverage
ff58163 is described below

commit ff58163b95af774740c8c667be85bdb19a208048
Author: Dan Klco <dk...@apache.org>
AuthorDate: Wed Sep 23 15:49:25 2020 -0400

    Fixing flagged bug and adding test coverage
---
 .../core/publication/BulkPublicationJobTest.java   | 87 ++++++++++++++++++++++
 .../java/org/apache/sling/cms/feature/Main.java    | 11 +--
 2 files changed, 93 insertions(+), 5 deletions(-)

diff --git a/core/src/test/java/org/apache/sling/cms/core/publication/BulkPublicationJobTest.java b/core/src/test/java/org/apache/sling/cms/core/publication/BulkPublicationJobTest.java
new file mode 100644
index 0000000..25e594e
--- /dev/null
+++ b/core/src/test/java/org/apache/sling/cms/core/publication/BulkPublicationJobTest.java
@@ -0,0 +1,87 @@
+package org.apache.sling.cms.core.publication;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNotNull;
+
+import org.apache.sling.cms.core.helpers.SlingCMSTestHelper;
+import org.apache.sling.cms.publication.PublicationException;
+import org.apache.sling.cms.publication.PublicationManager;
+import org.apache.sling.cms.publication.PublicationManagerFactory;
+import org.apache.sling.cms.publication.PublicationType;
+import org.apache.sling.event.jobs.Job;
+import org.apache.sling.event.jobs.consumer.JobExecutionContext;
+import org.apache.sling.event.jobs.consumer.JobExecutionContext.ResultBuilder;
+import org.apache.sling.testing.mock.sling.junit.SlingContext;
+import org.junit.Before;
+import org.junit.Rule;
+import org.junit.Test;
+import org.mockito.Mockito;
+
+public class BulkPublicationJobTest {
+
+    @Rule
+    public final SlingContext context = new SlingContext();
+    private PublicationManager publicationManager;
+
+    @Before
+    public void init() {
+        SlingCMSTestHelper.initContext(context);
+
+        PublicationManagerFactory publicationManagerFactory = Mockito.mock(PublicationManagerFactory.class);
+        publicationManager = Mockito.mock(PublicationManager.class);
+        Mockito.when(publicationManagerFactory.getPublicationManager()).thenReturn(publicationManager);
+        context.registerService(PublicationManagerFactory.class, publicationManagerFactory);
+    }
+
+    @Test
+    public void testShallow() throws PublicationException {
+
+        BulkPublicationJob pubJob = context.registerInjectActivateService(new BulkPublicationJob());
+
+        JobExecutionContext jobContext = Mockito.mock(JobExecutionContext.class);
+        ResultBuilder result = Mockito.mock(ResultBuilder.class);
+        Mockito.when(jobContext.result()).thenReturn(result);
+        Job job = Mockito.mock(Job.class);
+
+        Mockito.when(job.getProperty(Mockito.matches("paths"), Mockito.any())).thenReturn(new String[] { "/content" });
+        Mockito.when(job.getProperty(Mockito.matches("type"), Mockito.any()))
+                .thenReturn(PublicationType.ADD.toString());
+        Mockito.when(job.getProperty(Mockito.matches("deep"), Mockito.anyBoolean())).thenReturn(false);
+
+        pubJob.doProcess(job, jobContext, context.resourceResolver());
+
+        Mockito.verify(publicationManager).publish(Mockito.any());
+        Mockito.verify(result).succeeded();
+    }
+
+    @Test
+    public void testDeep() throws PublicationException {
+
+        BulkPublicationJob pubJob = context.registerInjectActivateService(new BulkPublicationJob());
+
+        JobExecutionContext jobContext = Mockito.mock(JobExecutionContext.class);
+        ResultBuilder result = Mockito.mock(ResultBuilder.class);
+        Mockito.when(jobContext.result()).thenReturn(result);
+        Job job = Mockito.mock(Job.class);
+
+        Mockito.when(job.getProperty(Mockito.matches("paths"), Mockito.any())).thenReturn(new String[] { "/content" });
+        Mockito.when(job.getProperty(Mockito.matches("type"), Mockito.any()))
+                .thenReturn(PublicationType.ADD.toString());
+        Mockito.when(job.getProperty(Mockito.matches("deep"), Mockito.anyBoolean())).thenReturn(true);
+
+        pubJob.doProcess(job, jobContext, context.resourceResolver());
+
+        Mockito.verify(publicationManager, Mockito.atLeast(5)).publish(Mockito.any());
+        Mockito.verify(result).succeeded();
+    }
+
+    @Test
+    public void testMethods() throws PublicationException {
+        BulkPublicationJob pubJob = context.registerInjectActivateService(new BulkPublicationJob());
+        assertEquals("/mnt/overlay/sling-cms/content/publication/bulk", pubJob.getConfigurationPath());
+        assertNotNull(pubJob.getResolverFactory());
+        assertEquals("slingcms.bulkpublication.title", pubJob.getTitleKey());
+        assertEquals(BulkPublicationJob.TOPIC, pubJob.getTopic());
+    }
+
+}
diff --git a/feature/src/main/java/org/apache/sling/cms/feature/Main.java b/feature/src/main/java/org/apache/sling/cms/feature/Main.java
index 0780738..d4482d9 100644
--- a/feature/src/main/java/org/apache/sling/cms/feature/Main.java
+++ b/feature/src/main/java/org/apache/sling/cms/feature/Main.java
@@ -28,7 +28,10 @@ public class Main {
         System.out.println("Bootstraping Sling CMS Feature Model");
         URL propertiesUrl =  Main.class.getClassLoader().getResource("slingcms.properties");
         Properties properties = new Properties();
-        properties.load(propertiesUrl.openStream());
+        try(InputStream is = propertiesUrl.openStream()){
+            properties.load(is);
+        }
+        
 
         String version = properties.getProperty("version");
         System.out.println("Version "+version);
@@ -36,10 +39,8 @@ public class Main {
         URL farUrl = Main.class.getClassLoader().getResource("lib/slingcms.far");
         List<String> arguments = new ArrayList<>();
         arguments.addAll(Arrays.asList(args));
-        if(!arguments.contains("-f")){
-            arguments.add("-f");
-            arguments.add(farUrl.toString());
-        }
+        arguments.add("-f");
+        arguments.add(farUrl.toString());
 
         org.apache.sling.feature.launcher.impl.Main.main(arguments.toArray(new String[arguments.size()]));
     }