You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@sling.apache.org by to...@apache.org on 2016/07/28 14:25:06 UTC
svn commit: r1754417 - in
/sling/trunk/contrib/extensions/distribution/core/src:
main/java/org/apache/sling/distribution/packaging/impl/
main/java/org/apache/sling/distribution/packaging/impl/importer/
main/java/org/apache/sling/distribution/queue/impl...
Author: tommaso
Date: Thu Jul 28 14:25:06 2016
New Revision: 1754417
URL: http://svn.apache.org/viewvc?rev=1754417&view=rev
Log:
SLING-5695 - minor refactoring and testing
Added:
sling/trunk/contrib/extensions/distribution/core/src/test/java/org/apache/sling/distribution/packaging/impl/ReferencePackageTest.java (with props)
sling/trunk/contrib/extensions/distribution/core/src/test/java/org/apache/sling/distribution/queue/impl/AsyncDeliveryDispatchingStrategyTest.java (with props)
Modified:
sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/packaging/impl/FileDistributionPackage.java
sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/packaging/impl/ReferencePackage.java
sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/packaging/impl/ResourceDistributionPackage.java
sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/packaging/impl/SharedDistributionPackage.java
sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/packaging/impl/SimpleDistributionPackage.java
sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/packaging/impl/importer/LocalDistributionPackageImporter.java
sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/queue/impl/jobhandling/JobHandlingDistributionQueue.java
Modified: sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/packaging/impl/FileDistributionPackage.java
URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/packaging/impl/FileDistributionPackage.java?rev=1754417&r1=1754416&r2=1754417&view=diff
==============================================================================
--- sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/packaging/impl/FileDistributionPackage.java (original)
+++ sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/packaging/impl/FileDistributionPackage.java Thu Jul 28 14:25:06 2016
@@ -72,7 +72,7 @@ public class FileDistributionPackage ext
}
@Override
- public void acquire(@Nonnull String[] holderNames) {
+ public void acquire(@Nonnull String... holderNames) {
try {
DistributionPackageUtils.acquire(getStatusFile(), holderNames);
} catch (IOException e) {
@@ -81,7 +81,7 @@ public class FileDistributionPackage ext
}
@Override
- public void release(@Nonnull String[] holderNames) {
+ public void release(@Nonnull String... holderNames) {
try {
boolean doDelete = DistributionPackageUtils.release(getStatusFile(), holderNames);
Modified: sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/packaging/impl/ReferencePackage.java
URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/packaging/impl/ReferencePackage.java?rev=1754417&r1=1754416&r2=1754417&view=diff
==============================================================================
--- sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/packaging/impl/ReferencePackage.java (original)
+++ sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/packaging/impl/ReferencePackage.java Thu Jul 28 14:25:06 2016
@@ -18,6 +18,7 @@
*/
package org.apache.sling.distribution.packaging.impl;
+import javax.annotation.CheckForNull;
import javax.annotation.Nonnull;
import java.io.ByteArrayInputStream;
import java.io.IOException;
@@ -30,7 +31,7 @@ import org.apache.sling.distribution.pac
* by its {@link DistributionPackage#getId()}.
*/
public class ReferencePackage extends AbstractDistributionPackage {
- private static final String REFERENCE_PREFIX = "reference-";
+ static final String REFERENCE_PREFIX = "reference-";
private final DistributionPackage distributionPackage;
private final String reference;
@@ -43,14 +44,14 @@ public class ReferencePackage extends Ab
}
@Override
- public void acquire(@Nonnull String[] holderNames) {
+ public void acquire(@Nonnull String... holderNames) {
if (distributionPackage instanceof AbstractDistributionPackage) {
((AbstractDistributionPackage) distributionPackage).acquire(holderNames);
}
}
@Override
- public void release(@Nonnull String[] holderNames) {
+ public void release(@Nonnull String... holderNames) {
if (distributionPackage instanceof AbstractDistributionPackage) {
((AbstractDistributionPackage) distributionPackage).release(holderNames);
}
@@ -93,9 +94,8 @@ public class ReferencePackage extends Ab
return string.startsWith(REFERENCE_PREFIX);
}
+ @CheckForNull
public static String idFromReference(String reference) {
- return reference.substring(REFERENCE_PREFIX.length());
-
-
+ return isReference(reference) ? reference.substring(REFERENCE_PREFIX.length()) : null;
}
}
Modified: sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/packaging/impl/ResourceDistributionPackage.java
URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/packaging/impl/ResourceDistributionPackage.java?rev=1754417&r1=1754416&r2=1754417&view=diff
==============================================================================
--- sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/packaging/impl/ResourceDistributionPackage.java (original)
+++ sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/packaging/impl/ResourceDistributionPackage.java Thu Jul 28 14:25:06 2016
@@ -86,7 +86,7 @@ public class ResourceDistributionPackage
}
@Override
- public void acquire(@Nonnull String[] holderNames) {
+ public void acquire(@Nonnull String... holderNames) {
try {
DistributionPackageUtils.acquire(resource, holderNames);
if (resourceResolver.hasChanges()) {
@@ -101,7 +101,7 @@ public class ResourceDistributionPackage
}
@Override
- public void release(@Nonnull String[] holderNames) {
+ public void release(@Nonnull String... holderNames) {
try {
boolean doDelete = DistributionPackageUtils.release(resource, holderNames);
Modified: sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/packaging/impl/SharedDistributionPackage.java
URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/packaging/impl/SharedDistributionPackage.java?rev=1754417&r1=1754416&r2=1754417&view=diff
==============================================================================
--- sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/packaging/impl/SharedDistributionPackage.java (original)
+++ sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/packaging/impl/SharedDistributionPackage.java Thu Jul 28 14:25:06 2016
@@ -33,12 +33,12 @@ public interface SharedDistributionPacka
/**
* acquire a reference to this package and increase the reference count.
*/
- void acquire(@Nonnull String[] holderNames);
+ void acquire(@Nonnull String... holderNames);
/**
* release a reference to this package and decrease the reference count.
* when no more references are hold the package {@code DistributionPackage#delete} method is called.
*/
- void release(@Nonnull String[] holderNames);
+ void release(@Nonnull String... holderNames);
}
Modified: sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/packaging/impl/SimpleDistributionPackage.java
URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/packaging/impl/SimpleDistributionPackage.java?rev=1754417&r1=1754416&r2=1754417&view=diff
==============================================================================
--- sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/packaging/impl/SimpleDistributionPackage.java (original)
+++ sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/packaging/impl/SimpleDistributionPackage.java Thu Jul 28 14:25:06 2016
@@ -155,12 +155,12 @@ public class SimpleDistributionPackage e
}
@Override
- public void acquire(@Nonnull String[] holderNames) {
+ public void acquire(@Nonnull String... holderNames) {
}
@Override
- public void release(@Nonnull String[] holderNames) {
+ public void release(@Nonnull String... holderNames) {
}
}
Modified: sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/packaging/impl/importer/LocalDistributionPackageImporter.java
URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/packaging/impl/importer/LocalDistributionPackageImporter.java?rev=1754417&r1=1754416&r2=1754417&view=diff
==============================================================================
--- sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/packaging/impl/importer/LocalDistributionPackageImporter.java (original)
+++ sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/packaging/impl/importer/LocalDistributionPackageImporter.java Thu Jul 28 14:25:06 2016
@@ -99,19 +99,23 @@ public class LocalDistributionPackageImp
if (reference != null) {
if (ReferencePackage.isReference(reference)) {
String actualPackageId = ReferencePackage.idFromReference(reference);
- log.info("installing from reference {}", actualPackageId);
- DistributionPackage distributionPackage = packageBuilder.getPackage(resourceResolver, actualPackageId);
- if (distributionPackage != null) {
- if (packageBuilder.installPackage(resourceResolver, distributionPackage)) {
- DistributionPackageInfo info = distributionPackage.getInfo();
- log.info("package installed {}", info);
- eventFactory.generatePackageEvent(DistributionEventTopics.IMPORTER_PACKAGE_IMPORTED, DistributionComponentKind.IMPORTER, name, info);
- return info;
+ if (actualPackageId != null) {
+ log.info("installing from reference {}", actualPackageId);
+ DistributionPackage distributionPackage = packageBuilder.getPackage(resourceResolver, actualPackageId);
+ if (distributionPackage != null) {
+ if (packageBuilder.installPackage(resourceResolver, distributionPackage)) {
+ DistributionPackageInfo info = distributionPackage.getInfo();
+ log.info("package installed {}", info);
+ eventFactory.generatePackageEvent(DistributionEventTopics.IMPORTER_PACKAGE_IMPORTED, DistributionComponentKind.IMPORTER, name, info);
+ return info;
+ } else {
+ throw new DistributionException("could not install package {}" + distributionPackage);
+ }
} else {
- throw new DistributionException("could not install package {}" + distributionPackage);
+ throw new DistributionException("could not install package from reference " + actualPackageId);
}
} else {
- throw new DistributionException("could not install package from reference " + actualPackageId);
+ throw new DistributionException("could not install package from invalid reference " + reference);
}
} else {
try {
Modified: sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/queue/impl/jobhandling/JobHandlingDistributionQueue.java
URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/queue/impl/jobhandling/JobHandlingDistributionQueue.java?rev=1754417&r1=1754416&r2=1754417&view=diff
==============================================================================
--- sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/queue/impl/jobhandling/JobHandlingDistributionQueue.java (original)
+++ sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/queue/impl/jobhandling/JobHandlingDistributionQueue.java Thu Jul 28 14:25:06 2016
@@ -119,16 +119,19 @@ public class JobHandlingDistributionQueu
int actualSkip = skip < 0 ? 0 : skip;
int actualLimit = limit < 0 ? -1 : actualSkip + limit;
-
- Collection<Job> jobs = jobManager.findJobs(QueryType.ALL, topic, actualLimit);
List<Job> result = new ArrayList<Job>();
+ try {
+ Collection<Job> jobs = jobManager.findJobs(QueryType.ALL, topic, actualLimit);
- int i = 0;
- for (Job job : jobs) {
- if (i >= actualSkip) {
- result.add(job);
+ int i = 0;
+ for (Job job : jobs) {
+ if (i >= actualSkip) {
+ result.add(job);
+ }
+ i++;
}
- i++;
+ } catch (Exception e) {
+ log.warn("could not get jobs for topic {}", topic, e);
}
return result;
Added: sling/trunk/contrib/extensions/distribution/core/src/test/java/org/apache/sling/distribution/packaging/impl/ReferencePackageTest.java
URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/distribution/core/src/test/java/org/apache/sling/distribution/packaging/impl/ReferencePackageTest.java?rev=1754417&view=auto
==============================================================================
--- sling/trunk/contrib/extensions/distribution/core/src/test/java/org/apache/sling/distribution/packaging/impl/ReferencePackageTest.java (added)
+++ sling/trunk/contrib/extensions/distribution/core/src/test/java/org/apache/sling/distribution/packaging/impl/ReferencePackageTest.java Thu Jul 28 14:25:06 2016
@@ -0,0 +1,153 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.sling.distribution.packaging.impl;
+
+import java.io.InputStream;
+import java.util.HashMap;
+
+import org.apache.sling.distribution.packaging.DistributionPackage;
+import org.apache.sling.distribution.packaging.DistributionPackageInfo;
+import org.junit.Test;
+
+import static org.junit.Assert.*;
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.when;
+
+/**
+ * Tests for {@link ReferencePackage}
+ */
+public class ReferencePackageTest {
+
+ @Test
+ public void testAcquire() throws Exception {
+ DistributionPackage distributionPackage = mock(DistributionPackage.class);
+ String type = "dummy";
+ when(distributionPackage.getType()).thenReturn(type);
+ DistributionPackageInfo info = new DistributionPackageInfo(type, new HashMap<String, Object>());
+ when(distributionPackage.getInfo()).thenReturn(info);
+ ReferencePackage referencePackage = new ReferencePackage(distributionPackage);
+ assertNotNull(referencePackage);
+ referencePackage.acquire("queue1", "queue2");
+ }
+
+ @Test
+ public void testRelease() throws Exception {
+ DistributionPackage distributionPackage = mock(DistributionPackage.class);
+ String type = "dummy";
+ when(distributionPackage.getType()).thenReturn(type);
+ DistributionPackageInfo info = new DistributionPackageInfo(type, new HashMap<String, Object>());
+ when(distributionPackage.getInfo()).thenReturn(info);
+ ReferencePackage referencePackage = new ReferencePackage(distributionPackage);
+ assertNotNull(referencePackage);
+ referencePackage.release("queue1", "queue2");
+ }
+
+ @Test
+ public void testCreateInputStream() throws Exception {
+ DistributionPackage distributionPackage = mock(DistributionPackage.class);
+ String type = "dummy";
+ when(distributionPackage.getType()).thenReturn(type);
+ DistributionPackageInfo info = new DistributionPackageInfo(type, new HashMap<String, Object>());
+ when(distributionPackage.getInfo()).thenReturn(info);
+ ReferencePackage referencePackage = new ReferencePackage(distributionPackage);
+ assertNotNull(referencePackage);
+ InputStream inputStream = referencePackage.createInputStream();
+ assertNotNull(inputStream);
+ }
+
+ @Test
+ public void testGetSize() throws Exception {
+ DistributionPackage distributionPackage = mock(DistributionPackage.class);
+ String type = "dummy";
+ when(distributionPackage.getType()).thenReturn(type);
+ DistributionPackageInfo info = new DistributionPackageInfo(type, new HashMap<String, Object>());
+ when(distributionPackage.getInfo()).thenReturn(info);
+ when(distributionPackage.getSize()).thenReturn(10L);
+ ReferencePackage referencePackage = new ReferencePackage(distributionPackage);
+ assertNotNull(referencePackage);
+ long size = referencePackage.getSize();
+ assertTrue(referencePackage.getSize() == size);
+ }
+
+ @Test
+ public void testClose() throws Exception {
+ DistributionPackage distributionPackage = mock(DistributionPackage.class);
+ String type = "dummy";
+ when(distributionPackage.getType()).thenReturn(type);
+ DistributionPackageInfo info = new DistributionPackageInfo(type, new HashMap<String, Object>());
+ when(distributionPackage.getInfo()).thenReturn(info);
+ ReferencePackage referencePackage = new ReferencePackage(distributionPackage);
+ assertNotNull(referencePackage);
+ referencePackage.close();
+ }
+
+ @Test
+ public void testDelete() throws Exception {
+ DistributionPackage distributionPackage = mock(DistributionPackage.class);
+ String type = "dummy";
+ when(distributionPackage.getType()).thenReturn(type);
+ DistributionPackageInfo info = new DistributionPackageInfo(type, new HashMap<String, Object>());
+ when(distributionPackage.getInfo()).thenReturn(info);
+ ReferencePackage referencePackage = new ReferencePackage(distributionPackage);
+ assertNotNull(referencePackage);
+ referencePackage.delete();
+ }
+
+ @Test
+ public void testGetType() throws Exception {
+ DistributionPackage distributionPackage = mock(DistributionPackage.class);
+ String type = "dummy";
+ when(distributionPackage.getType()).thenReturn(type);
+ DistributionPackageInfo info = new DistributionPackageInfo(type, new HashMap<String, Object>());
+ when(distributionPackage.getInfo()).thenReturn(info);
+ ReferencePackage referencePackage = new ReferencePackage(distributionPackage);
+ assertNotNull(referencePackage);
+ assertEquals(type, referencePackage.getType());
+ }
+
+ @Test
+ public void testGetId() throws Exception {
+ DistributionPackage distributionPackage = mock(DistributionPackage.class);
+ String type = "dummy";
+ when(distributionPackage.getType()).thenReturn(type);
+ DistributionPackageInfo info = new DistributionPackageInfo(type, new HashMap<String, Object>());
+ when(distributionPackage.getInfo()).thenReturn(info);
+ ReferencePackage referencePackage = new ReferencePackage(distributionPackage);
+ assertNotNull(referencePackage);
+ String id = referencePackage.getId();
+ assertNotNull(id);
+ }
+
+ @Test
+ public void testIsReference() throws Exception {
+ assertFalse(ReferencePackage.isReference("1231231312"));
+ assertTrue(ReferencePackage.isReference(ReferencePackage.REFERENCE_PREFIX + "12312312"));
+ }
+
+ @Test
+ public void testIdFromReference() throws Exception {
+ String reference = "132231231";
+ String id = ReferencePackage.idFromReference(reference);
+ assertNull(id);
+ id = ReferencePackage.idFromReference(ReferencePackage.REFERENCE_PREFIX + reference);
+ assertNotNull(id);
+ assertEquals(reference, id);
+ }
+
+}
\ No newline at end of file
Propchange: sling/trunk/contrib/extensions/distribution/core/src/test/java/org/apache/sling/distribution/packaging/impl/ReferencePackageTest.java
------------------------------------------------------------------------------
svn:eol-style = native
Added: sling/trunk/contrib/extensions/distribution/core/src/test/java/org/apache/sling/distribution/queue/impl/AsyncDeliveryDispatchingStrategyTest.java
URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/distribution/core/src/test/java/org/apache/sling/distribution/queue/impl/AsyncDeliveryDispatchingStrategyTest.java?rev=1754417&view=auto
==============================================================================
--- sling/trunk/contrib/extensions/distribution/core/src/test/java/org/apache/sling/distribution/queue/impl/AsyncDeliveryDispatchingStrategyTest.java (added)
+++ sling/trunk/contrib/extensions/distribution/core/src/test/java/org/apache/sling/distribution/queue/impl/AsyncDeliveryDispatchingStrategyTest.java Thu Jul 28 14:25:06 2016
@@ -0,0 +1,114 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.sling.distribution.queue.impl;
+
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+import org.apache.sling.distribution.common.DistributionException;
+import org.apache.sling.distribution.packaging.DistributionPackage;
+import org.apache.sling.distribution.packaging.DistributionPackageInfo;
+import org.apache.sling.distribution.packaging.impl.SharedDistributionPackage;
+import org.apache.sling.distribution.queue.DistributionQueue;
+import org.apache.sling.distribution.queue.DistributionQueueEntry;
+import org.apache.sling.distribution.queue.DistributionQueueItem;
+import org.apache.sling.distribution.queue.DistributionQueueItemStatus;
+import org.apache.sling.distribution.queue.DistributionQueueProvider;
+import org.apache.sling.distribution.queue.DistributionQueueState;
+import org.apache.sling.distribution.queue.DistributionQueueStatus;
+import org.junit.Test;
+
+import static org.junit.Assert.*;
+import static org.mockito.Matchers.any;
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.when;
+
+/**
+ * Tests for {@link AsyncDeliveryDispatchingStrategy}
+ */
+public class AsyncDeliveryDispatchingStrategyTest {
+
+ @Test
+ public void testAddWithNotSharedPackage() throws Exception {
+ Map<String, String> deliveryMappings = new HashMap<String, String>();
+ deliveryMappings.put("queue1", "delivery1");
+ deliveryMappings.put("queue2", "delivery2");
+ AsyncDeliveryDispatchingStrategy asyncDeliveryDispatchingStrategy = new AsyncDeliveryDispatchingStrategy(deliveryMappings);
+ DistributionPackage distributionPackage = mock(DistributionPackage.class);
+ DistributionQueueProvider queueProvider = mock(DistributionQueueProvider.class);
+ try {
+ asyncDeliveryDispatchingStrategy.add(distributionPackage, queueProvider);
+ fail("should not be able to pass not shared packages");
+ } catch (DistributionException e) {
+ // expected
+ }
+ }
+
+ @Test
+ public void testAddWithOneItemInRunningQueues() throws Exception {
+ Map<String, String> deliveryMappings = new HashMap<String, String>();
+ String queue1 = "queue1";
+ deliveryMappings.put(queue1, "delivery1");
+ String queue2 = "queue2";
+ deliveryMappings.put(queue2, "delivery2");
+ AsyncDeliveryDispatchingStrategy asyncDeliveryDispatchingStrategy = new AsyncDeliveryDispatchingStrategy(deliveryMappings);
+
+ // setup package
+ SharedDistributionPackage distributionPackage = mock(SharedDistributionPackage.class);
+ when(distributionPackage.getId()).thenReturn("1221312");
+ DistributionPackageInfo info = new DistributionPackageInfo("dummy", new HashMap<String, Object>());
+ when(distributionPackage.getInfo()).thenReturn(info);
+
+ // setup queues
+ DistributionQueueProvider queueProvider = mock(DistributionQueueProvider.class);
+ DistributionQueue dq1 = mock(DistributionQueue.class);
+ DistributionQueueItemStatus status = mock(DistributionQueueItemStatus.class);
+ DistributionQueueEntry entry = new DistributionQueueEntry("1242112", new DistributionQueueItem(distributionPackage.getId(),
+ new HashMap<String, Object>()), status);
+ when(dq1.add(any(DistributionQueueItem.class))).thenReturn(entry);
+ DistributionQueueStatus status1 = new DistributionQueueStatus(1, DistributionQueueState.RUNNING);
+ when(dq1.getStatus()).thenReturn(status1);
+ when(queueProvider.getQueue(queue1)).thenReturn(dq1);
+ DistributionQueue dq2 = mock(DistributionQueue.class);
+ when(dq2.add(any(DistributionQueueItem.class))).thenReturn(entry);
+ DistributionQueueStatus status2 = new DistributionQueueStatus(1, DistributionQueueState.RUNNING);
+ when(dq2.getStatus()).thenReturn(status2);
+ when(queueProvider.getQueue(queue2)).thenReturn(dq2);
+
+ Iterable<DistributionQueueItemStatus> statuses = asyncDeliveryDispatchingStrategy.add(distributionPackage, queueProvider);
+ assertNotNull(statuses);
+
+ }
+
+ @Test
+ public void testGetQueueNames() throws Exception {
+ Map<String, String> deliveryMappings = new HashMap<String, String>();
+ deliveryMappings.put("queue1", "delivery1");
+ deliveryMappings.put("queue2", "delivery2");
+ AsyncDeliveryDispatchingStrategy asyncDeliveryDispatchingStrategy = new AsyncDeliveryDispatchingStrategy(deliveryMappings);
+ List<String> queueNames = asyncDeliveryDispatchingStrategy.getQueueNames();
+ assertNotNull(queueNames);
+ assertEquals(4, queueNames.size());
+ assertTrue(queueNames.contains("queue1"));
+ assertTrue(queueNames.contains("queue2"));
+ assertTrue(queueNames.contains("delivery1"));
+ assertTrue(queueNames.contains("delivery2"));
+ }
+}
\ No newline at end of file
Propchange: sling/trunk/contrib/extensions/distribution/core/src/test/java/org/apache/sling/distribution/queue/impl/AsyncDeliveryDispatchingStrategyTest.java
------------------------------------------------------------------------------
svn:eol-style = native