patterns) {
this.patterns = patterns;
}
@@ -140,4 +140,9 @@ public class RequestPatterns implements ISerializableObject{
}
return isFound;
}
+
+ @Override
+ public String toString() {
+ return patterns.toString();
+ }
}
diff --git a/tests/unit/com/raytheon/uf/edex/datadelivery/retrieval/handlers/DeserializeRetrievedDataFromDirectoryTest.java b/tests/unit/com/raytheon/uf/edex/datadelivery/retrieval/handlers/DeserializeRetrievedDataFromIngestTest.java
similarity index 62%
rename from tests/unit/com/raytheon/uf/edex/datadelivery/retrieval/handlers/DeserializeRetrievedDataFromDirectoryTest.java
rename to tests/unit/com/raytheon/uf/edex/datadelivery/retrieval/handlers/DeserializeRetrievedDataFromIngestTest.java
index 3667a9d91e..72afe2b0ed 100644
--- a/tests/unit/com/raytheon/uf/edex/datadelivery/retrieval/handlers/DeserializeRetrievedDataFromDirectoryTest.java
+++ b/tests/unit/com/raytheon/uf/edex/datadelivery/retrieval/handlers/DeserializeRetrievedDataFromIngestTest.java
@@ -19,22 +19,28 @@
**/
package com.raytheon.uf.edex.datadelivery.retrieval.handlers;
-import static com.raytheon.uf.common.util.Matchers.hasNoFiles;
+import static org.hamcrest.Matchers.empty;
import static org.hamcrest.Matchers.is;
import static org.hamcrest.Matchers.notNullValue;
import static org.junit.Assert.assertNull;
import static org.junit.Assert.assertThat;
import java.io.File;
+import java.io.IOException;
+import java.util.List;
+import java.util.concurrent.ConcurrentLinkedQueue;
import org.junit.BeforeClass;
import org.junit.Test;
import com.raytheon.uf.common.localization.PathManagerFactoryTest;
+import com.raytheon.uf.common.serialization.SerializationException;
+import com.raytheon.uf.common.util.FileUtil;
import com.raytheon.uf.common.util.TestUtil;
+import com.raytheon.uf.common.util.file.FilenameFilters;
/**
- * Test {@link DeserializeRetrievedDataFromDirectory}.
+ * Test {@link DeserializeRetrievedDataFromIngest}.
*
*
*
@@ -46,18 +52,21 @@ import com.raytheon.uf.common.util.TestUtil;
* Feb 12, 2013 1543 djohnson Can only test the retrieval response is now not null.
* Feb 15, 2013 1543 djohnson Some renames.
* Mar 05, 2013 1647 djohnson Pass wmo header strategy to constructor.
+ * Mar 19, 2013 1794 djohnson Read from a queue rather than the file system.
*
*
*
* @author djohnson
* @version 1.0
*/
-public class DeserializeRetrievedDataFromDirectoryTest {
+public class DeserializeRetrievedDataFromIngestTest {
private final File directory = TestUtil
- .setupTestClassDir(DeserializeRetrievedDataFromDirectoryTest.class);
+ .setupTestClassDir(DeserializeRetrievedDataFromIngestTest.class);
- private final DeserializeRetrievedDataFromDirectory service = new DeserializeRetrievedDataFromDirectory(
- directory);
+ private final ConcurrentLinkedQueue retrievalQueue = new ConcurrentLinkedQueue();
+
+ private final DeserializeRetrievedDataFromIngest service = new DeserializeRetrievedDataFromIngest(
+ retrievalQueue);
@BeforeClass
public static void classSetUp() {
@@ -65,28 +74,40 @@ public class DeserializeRetrievedDataFromDirectoryTest {
}
@Test
- public void deserializesRetrievedDataFromAFileInTheTargetDirectory()
+ public void deserializesRetrievedDataFromTheQueue()
throws Exception {
- RetrievalResponseXml retrievalPluginDataObjects = RetrievalPluginDataObjectsFixture.INSTANCE
- .get();
+ addRetrievalToQueue();
- new SerializeRetrievedDataToDirectory(directory,
- new AlwaysSameWmoHeader("SMYG10 LYBM 280000"))
- .processRetrievedPluginDataObjects(retrievalPluginDataObjects);
-
- final RetrievalResponseXml restored = service
- .findRetrievals();
+ final RetrievalResponseXml restored = service.findRetrievals();
// Just make sure the payload is present
assertThat(restored.getRetrievalAttributePluginDataObjects().get(0)
.getRetrievalResponse(), is(notNullValue()));
}
+
@Test
- public void deletesFileAfterRetrievingFromTheTargetDirectory()
+ public void removesFromQueueWhileRetrieving()
throws Exception {
+ addRetrievalToQueue();
+
+ service.findRetrievals();
+
+ assertThat(retrievalQueue, is(empty()));
+ }
+
+ @Test
+ public void returnsNullWhenNothingInTheQueue() throws Exception {
+
+ final RetrievalResponseXml restored = service.findRetrievals();
+
+ assertNull(restored);
+ }
+
+ private void addRetrievalToQueue() throws SerializationException,
+ IOException {
RetrievalResponseXml retrievalPluginDataObjects = RetrievalPluginDataObjectsFixture.INSTANCE
.get();
@@ -94,25 +115,8 @@ public class DeserializeRetrievedDataFromDirectoryTest {
new AlwaysSameWmoHeader("SMYG10 LYBM 280000"))
.processRetrievedPluginDataObjects(retrievalPluginDataObjects);
- service.findRetrievals();
-
- assertThat(directory, hasNoFiles());
- }
-
- @Test
- public void ignoresSubDirectories() throws Exception {
-
- new File(directory, "subDir1").mkdirs();
-
- service.findRetrievals();
- }
-
- @Test
- public void returnsNullWhenNoFileInTheTargetDirectory() throws Exception {
-
- final RetrievalResponseXml restored = service
- .findRetrievals();
-
- assertNull(restored);
+ final List files = FileUtil.listFiles(directory,
+ FilenameFilters.ACCEPT_FILES, false);
+ retrievalQueue.add(FileUtil.file2String(files.get(0)));
}
}
diff --git a/tests/unit/com/raytheon/uf/edex/datadelivery/retrieval/handlers/RetrievalTaskTest.java b/tests/unit/com/raytheon/uf/edex/datadelivery/retrieval/handlers/RetrievalTaskTest.java
index 28e7e1c663..29b8f7f087 100644
--- a/tests/unit/com/raytheon/uf/edex/datadelivery/retrieval/handlers/RetrievalTaskTest.java
+++ b/tests/unit/com/raytheon/uf/edex/datadelivery/retrieval/handlers/RetrievalTaskTest.java
@@ -31,6 +31,7 @@ import java.util.Arrays;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
+import java.util.concurrent.ConcurrentLinkedQueue;
import org.junit.Before;
import org.junit.Ignore;
@@ -53,8 +54,10 @@ import com.raytheon.uf.common.event.EventBus;
import com.raytheon.uf.common.localization.PathManagerFactoryTest;
import com.raytheon.uf.common.registry.handler.RegistryHandlerException;
import com.raytheon.uf.common.serialization.SerializationException;
+import com.raytheon.uf.common.util.FileUtil;
import com.raytheon.uf.common.util.SpringFiles;
import com.raytheon.uf.common.util.TestUtil;
+import com.raytheon.uf.common.util.file.FilenameFilters;
import com.raytheon.uf.edex.database.DataAccessLayerException;
import com.raytheon.uf.edex.database.dao.DatabaseUtil;
import com.raytheon.uf.edex.datadelivery.retrieval.ServiceTypeFactory;
@@ -78,6 +81,7 @@ import com.raytheon.uf.edex.datadelivery.retrieval.interfaces.IRetrievalResponse
* Feb 12, 2013 1543 djohnson Retrieval responses are now sent further down the chain.
* Feb 15, 2013 1543 djohnson Class renames.
* Mar 05, 2013 1647 djohnson Pass wmo header strategy to constructor.
+ * Mar 19, 2013 1794 djohnson RetrievalTasks integrate at a queue.
*
*
*
@@ -221,17 +225,17 @@ public class RetrievalTaskTest {
IRetrievalsFinder retrievalDataFinder = new PerformRetrievalsThenReturnFinder(
Network.OPSNET, dao);
+ final ConcurrentLinkedQueue retrievalQueue = new ConcurrentLinkedQueue();
final File testDirectory = TestUtil
.setupTestClassDir(RetrievalTaskTest.class);
IRetrievalPluginDataObjectsProcessor serializeToDirectory = new SerializeRetrievedDataToDirectory(
- testDirectory, new AlwaysSameWmoHeader(
- "SMYG10 LYBM 280000"));
+ testDirectory, new AlwaysSameWmoHeader("SMYG10 LYBM 280000"));
RetrievalTask downloadTask = new RetrievalTask(Network.OPSNET,
retrievalDataFinder, serializeToDirectory,
mock(IRetrievalResponseCompleter.class), dao);
RetrievalTask readDownloadsTask = new RetrievalTask(Network.OPSNET,
- new DeserializeRetrievedDataFromDirectory(testDirectory),
+ new DeserializeRetrievedDataFromIngest(retrievalQueue),
retrievedDataProcessor, new RetrievalResponseCompleter(
mock(SubscriptionNotifyTask.class), dao), dao);
@@ -242,6 +246,11 @@ public class RetrievalTaskTest {
assertThat(request.getState(), is(State.RUNNING));
}
+ for (File file : FileUtil.listFiles(testDirectory,
+ FilenameFilters.ACCEPT_FILES, false)) {
+ retrievalQueue.add(FileUtil.file2String(file));
+ }
+
readDownloadsTask.run();
final List allRetrievals = dao.getAll();