You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@manifoldcf.apache.org by kw...@apache.org on 2011/12/31 18:23:37 UTC
svn commit: r1226141 [2/5] - in /incubator/lcf/trunk: ./
connectors/alfresco/ connectors/alfresco/alfresco-ws-client/
connectors/cmis/ connectors/documentum/dfc/ connectors/filenet/filenet-api/
connectors/filesystem/ connectors/jcifs/jcifs/ connectors/...
Modified: incubator/lcf/trunk/tests/filesystem/src/test/java/org/apache/manifoldcf/filesystem_tests/APISanityIT.java
URL: http://svn.apache.org/viewvc/incubator/lcf/trunk/tests/filesystem/src/test/java/org/apache/manifoldcf/filesystem_tests/APISanityIT.java?rev=1226141&r1=1226140&r2=1226141&view=diff
==============================================================================
--- incubator/lcf/trunk/tests/filesystem/src/test/java/org/apache/manifoldcf/filesystem_tests/APISanityIT.java (original)
+++ incubator/lcf/trunk/tests/filesystem/src/test/java/org/apache/manifoldcf/filesystem_tests/APISanityIT.java Sat Dec 31 17:23:35 2011
@@ -18,11 +18,6 @@
*/
package org.apache.manifoldcf.filesystem_tests;
-import org.apache.manifoldcf.core.interfaces.*;
-import org.apache.manifoldcf.agents.interfaces.*;
-import org.apache.manifoldcf.crawler.interfaces.*;
-import org.apache.manifoldcf.crawler.system.ManifoldCF;
-
import java.io.*;
import java.util.*;
import org.junit.*;
@@ -30,375 +25,32 @@ import org.junit.*;
/** This is a very basic sanity check */
public class APISanityIT extends BaseDerby
{
+ protected APISanityTester tester;
+
+ public APISanityIT()
+ {
+ tester = new APISanityTester(mcfInstance);
+ }
@Before
- public void createTestArea()
+ public void setupTester()
throws Exception
{
- try
- {
- File f = new File("testdata");
- removeDirectory(f);
- createDirectory(f);
- }
- catch (Exception e)
- {
- e.printStackTrace();
- throw e;
- }
+ tester.setupTestArea();
}
@After
- public void removeTestArea()
+ public void teardownTester()
throws Exception
{
- try
- {
- File f = new File("testdata");
- removeDirectory(f);
- }
- catch (Exception e)
- {
- e.printStackTrace();
- throw e;
- }
+ tester.teardownTestArea();
}
@Test
public void sanityCheck()
throws Exception
{
- try
- {
- // Hey, we were able to install the file system connector etc.
- // Now, create a local test job and run it.
- IThreadContext tc = ThreadContextFactory.make();
- int i;
- IJobManager jobManager = JobManagerFactory.make(tc);
-
- // Create a basic file system connection, and save it.
- ConfigurationNode connectionObject;
- ConfigurationNode child;
- Configuration requestObject;
- Configuration result;
-
- connectionObject = new ConfigurationNode("repositoryconnection");
-
- child = new ConfigurationNode("name");
- child.setValue("File Connection");
- connectionObject.addChild(connectionObject.getChildCount(),child);
-
- child = new ConfigurationNode("class_name");
- child.setValue("org.apache.manifoldcf.crawler.connectors.filesystem.FileConnector");
- connectionObject.addChild(connectionObject.getChildCount(),child);
-
- child = new ConfigurationNode("description");
- child.setValue("File Connection");
- connectionObject.addChild(connectionObject.getChildCount(),child);
-
- child = new ConfigurationNode("max_connections");
- child.setValue("100");
- connectionObject.addChild(connectionObject.getChildCount(),child);
-
- requestObject = new Configuration();
- requestObject.addChild(0,connectionObject);
-
- result = performAPIPutOperationViaNodes("repositoryconnections/File%20Connection",201,requestObject);
-
- i = 0;
- while (i < result.getChildCount())
- {
- ConfigurationNode resultNode = result.findChild(i++);
- if (resultNode.getType().equals("error"))
- throw new Exception(resultNode.getValue());
- }
-
- // Create a basic null output connection, and save it.
- connectionObject = new ConfigurationNode("outputconnection");
-
- child = new ConfigurationNode("name");
- child.setValue("Null Connection");
- connectionObject.addChild(connectionObject.getChildCount(),child);
-
- child = new ConfigurationNode("class_name");
- child.setValue("org.apache.manifoldcf.agents.output.nullconnector.NullConnector");
- connectionObject.addChild(connectionObject.getChildCount(),child);
-
- child = new ConfigurationNode("description");
- child.setValue("Null Connection");
- connectionObject.addChild(connectionObject.getChildCount(),child);
-
- child = new ConfigurationNode("max_connections");
- child.setValue("100");
- connectionObject.addChild(connectionObject.getChildCount(),child);
-
- requestObject = new Configuration();
- requestObject.addChild(0,connectionObject);
-
- result = performAPIPutOperationViaNodes("outputconnections/Null%20Connection",201,requestObject);
-
- i = 0;
- while (i < result.getChildCount())
- {
- ConfigurationNode resultNode = result.findChild(i++);
- if (resultNode.getType().equals("error"))
- throw new Exception(resultNode.getValue());
- }
-
- // Create a job.
- ConfigurationNode jobObject = new ConfigurationNode("job");
-
- child = new ConfigurationNode("description");
- child.setValue("Test Job");
- jobObject.addChild(jobObject.getChildCount(),child);
-
- child = new ConfigurationNode("repository_connection");
- child.setValue("File Connection");
- jobObject.addChild(jobObject.getChildCount(),child);
-
- child = new ConfigurationNode("output_connection");
- child.setValue("Null Connection");
- jobObject.addChild(jobObject.getChildCount(),child);
-
- child = new ConfigurationNode("run_mode");
- child.setValue("scan once");
- jobObject.addChild(jobObject.getChildCount(),child);
-
- child = new ConfigurationNode("start_mode");
- child.setValue("manual");
- jobObject.addChild(jobObject.getChildCount(),child);
-
- child = new ConfigurationNode("hopcount_mode");
- child.setValue("accurate");
- jobObject.addChild(jobObject.getChildCount(),child);
-
- child = new ConfigurationNode("document_specification");
- // Crawl everything underneath the 'testdata' area
- File testDataFile = new File("testdata").getCanonicalFile();
- if (!testDataFile.exists())
- throw new ManifoldCFException("Test data area not found! Looking in "+testDataFile.toString());
- if (!testDataFile.isDirectory())
- throw new ManifoldCFException("Test data area not a directory! Looking in "+testDataFile.toString());
- ConfigurationNode sn = new ConfigurationNode("startpoint");
- sn.setAttribute("path",testDataFile.toString());
- ConfigurationNode n = new ConfigurationNode("include");
- n.setAttribute("type","file");
- n.setAttribute("match","*");
- sn.addChild(sn.getChildCount(),n);
- n = new ConfigurationNode("include");
- n.setAttribute("type","directory");
- n.setAttribute("match","*");
- sn.addChild(sn.getChildCount(),n);
- child.addChild(child.getChildCount(),sn);
- jobObject.addChild(jobObject.getChildCount(),child);
-
- requestObject = new Configuration();
- requestObject.addChild(0,jobObject);
-
- result = performAPIPostOperationViaNodes("jobs",201,requestObject);
-
- String jobIDString = null;
- i = 0;
- while (i < result.getChildCount())
- {
- ConfigurationNode resultNode = result.findChild(i++);
- if (resultNode.getType().equals("error"))
- throw new Exception(resultNode.getValue());
- else if (resultNode.getType().equals("job_id"))
- jobIDString = resultNode.getValue();
- }
- if (jobIDString == null)
- throw new Exception("Missing job_id from return!");
-
- Long jobID = new Long(jobIDString);
-
- // Create the test data files.
- createFile(new File("testdata/test1.txt"),"This is a test file");
- createFile(new File("testdata/test2.txt"),"This is another test file");
- createDirectory(new File("testdata/testdir"));
- createFile(new File("testdata/testdir/test3.txt"),"This is yet another test file");
-
- ConfigurationNode requestNode;
-
- // Now, start the job, and wait until it completes.
- startJob(jobIDString);
- waitJobInactive(jobIDString, 120000L);
-
- // Check to be sure we actually processed the right number of documents.
- // The test data area has 3 documents and one directory, and we have to count the root directory too.
- long count;
- count = getJobDocumentsProcessed(jobIDString);
- if (count != 5)
- throw new ManifoldCFException("Wrong number of documents processed - expected 5, saw "+new Long(count).toString());
-
- // Add a file and recrawl
- createFile(new File("testdata/testdir/test4.txt"),"Added file");
-
- // Now, start the job, and wait until it completes.
- startJob(jobIDString);
- waitJobInactive(jobIDString, 120000L);
-
- // The test data area has 4 documents and one directory, and we have to count the root directory too.
- count = getJobDocumentsProcessed(jobIDString);
- if (count != 6)
- throw new ManifoldCFException("Wrong number of documents processed after add - expected 6, saw "+new Long(count).toString());
-
- // Change a file, and recrawl
- changeFile(new File("testdata/test1.txt"),"Modified contents");
-
- // Now, start the job, and wait until it completes.
- startJob(jobIDString);
- waitJobInactive(jobIDString, 120000L);
-
- // The test data area has 4 documents and one directory, and we have to count the root directory too.
- count = getJobDocumentsProcessed(jobIDString);
- if (count != 6)
- throw new ManifoldCFException("Wrong number of documents processed after change - expected 6, saw "+new Long(count).toString());
- // We also need to make sure the new document was indexed. Have to think about how to do this though.
- // MHL
-
- // Delete a file, and recrawl
- removeFile(new File("testdata/test2.txt"));
-
- // Now, start the job, and wait until it completes.
- startJob(jobIDString);
- waitJobInactive(jobIDString, 120000L);
-
- // Check to be sure we actually processed the right number of documents.
- // The test data area has 3 documents and one directory, and we have to count the root directory too.
- count = getJobDocumentsProcessed(jobIDString);
- if (count != 5)
- throw new ManifoldCFException("Wrong number of documents processed after delete - expected 5, saw "+new Long(count).toString());
-
- // Now, delete the job.
- deleteJob(jobIDString);
-
- waitJobDeleted(jobIDString, 120000L);
-
- // Cleanup is automatic by the base class, so we can feel free to leave jobs and connections lying around.
- }
- catch (Exception e)
- {
- e.printStackTrace();
- throw e;
- }
+ tester.executeTest();
}
- protected void startJob(String jobIDString)
- throws Exception
- {
- Configuration requestObject = new Configuration();
-
- Configuration result = performAPIPutOperationViaNodes("start/"+jobIDString,201,requestObject);
- int i = 0;
- while (i < result.getChildCount())
- {
- ConfigurationNode resultNode = result.findChild(i++);
- if (resultNode.getType().equals("error"))
- throw new Exception(resultNode.getValue());
- }
- }
-
- protected void deleteJob(String jobIDString)
- throws Exception
- {
- Configuration result = performAPIDeleteOperationViaNodes("jobs/"+jobIDString,200);
- int i = 0;
- while (i < result.getChildCount())
- {
- ConfigurationNode resultNode = result.findChild(i++);
- if (resultNode.getType().equals("error"))
- throw new Exception(resultNode.getValue());
- }
-
- }
-
- protected String getJobStatus(String jobIDString)
- throws Exception
- {
- Configuration result = performAPIGetOperationViaNodes("jobstatusesnocounts/"+jobIDString,200);
- String status = null;
- int i = 0;
- while (i < result.getChildCount())
- {
- ConfigurationNode resultNode = result.findChild(i++);
- if (resultNode.getType().equals("error"))
- throw new Exception(resultNode.getValue());
- else if (resultNode.getType().equals("jobstatus"))
- {
- int j = 0;
- while (j < resultNode.getChildCount())
- {
- ConfigurationNode childNode = resultNode.findChild(j++);
- if (childNode.getType().equals("status"))
- status = childNode.getValue();
- }
- }
- }
- return status;
- }
-
- protected long getJobDocumentsProcessed(String jobIDString)
- throws Exception
- {
- Configuration result = performAPIGetOperationViaNodes("jobstatuses/"+jobIDString,200);
- String documentsProcessed = null;
- int i = 0;
- while (i < result.getChildCount())
- {
- ConfigurationNode resultNode = result.findChild(i++);
- if (resultNode.getType().equals("error"))
- throw new Exception(resultNode.getValue());
- else if (resultNode.getType().equals("jobstatus"))
- {
- int j = 0;
- while (j < resultNode.getChildCount())
- {
- ConfigurationNode childNode = resultNode.findChild(j++);
- if (childNode.getType().equals("documents_processed"))
- documentsProcessed = childNode.getValue();
- }
- }
- }
- if (documentsProcessed == null)
- throw new Exception("Expected a documents_processed field, didn't find it");
- return new Long(documentsProcessed).longValue();
- }
-
- protected void waitJobInactive(String jobIDString, long maxTime)
- throws Exception
- {
- long startTime = System.currentTimeMillis();
- while (System.currentTimeMillis() < startTime + maxTime)
- {
- String status = getJobStatus(jobIDString);
- if (status == null)
- throw new Exception("No such job: '"+jobIDString+"'");
- if (status.equals("not yet run"))
- throw new Exception("Job was never started.");
- if (status.equals("done"))
- return;
- if (status.equals("error"))
- throw new Exception("Job reports error.");
- ManifoldCF.sleep(1000L);
- continue;
- }
- throw new ManifoldCFException("ManifoldCF did not terminate in the allotted time of "+new Long(maxTime).toString()+" milliseconds");
- }
-
- protected void waitJobDeleted(String jobIDString, long maxTime)
- throws Exception
- {
- long startTime = System.currentTimeMillis();
- while (System.currentTimeMillis() < startTime + maxTime)
- {
- String status = getJobStatus(jobIDString);
- if (status == null)
- return;
- ManifoldCF.sleep(1000L);
- }
- throw new ManifoldCFException("ManifoldCF did not delete in the allotted time of "+new Long(maxTime).toString()+" milliseconds");
- }
-
-
}
Modified: incubator/lcf/trunk/tests/filesystem/src/test/java/org/apache/manifoldcf/filesystem_tests/APISanityMySQLIT.java
URL: http://svn.apache.org/viewvc/incubator/lcf/trunk/tests/filesystem/src/test/java/org/apache/manifoldcf/filesystem_tests/APISanityMySQLIT.java?rev=1226141&r1=1226140&r2=1226141&view=diff
==============================================================================
--- incubator/lcf/trunk/tests/filesystem/src/test/java/org/apache/manifoldcf/filesystem_tests/APISanityMySQLIT.java (original)
+++ incubator/lcf/trunk/tests/filesystem/src/test/java/org/apache/manifoldcf/filesystem_tests/APISanityMySQLIT.java Sat Dec 31 17:23:35 2011
@@ -18,11 +18,6 @@
*/
package org.apache.manifoldcf.filesystem_tests;
-import org.apache.manifoldcf.core.interfaces.*;
-import org.apache.manifoldcf.agents.interfaces.*;
-import org.apache.manifoldcf.crawler.interfaces.*;
-import org.apache.manifoldcf.crawler.system.ManifoldCF;
-
import java.io.*;
import java.util.*;
import org.junit.*;
@@ -30,375 +25,32 @@ import org.junit.*;
/** This is a very basic sanity check */
public class APISanityMySQLIT extends BaseMySQL
{
+ protected APISanityTester tester;
+
+ public APISanityMySQLIT()
+ {
+ tester = new APISanityTester(mcfInstance);
+ }
@Before
- public void createTestArea()
+ public void setupTester()
throws Exception
{
- try
- {
- File f = new File("testdata");
- removeDirectory(f);
- createDirectory(f);
- }
- catch (Exception e)
- {
- e.printStackTrace();
- throw e;
- }
+ tester.setupTestArea();
}
@After
- public void removeTestArea()
+ public void teardownTester()
throws Exception
{
- try
- {
- File f = new File("testdata");
- removeDirectory(f);
- }
- catch (Exception e)
- {
- e.printStackTrace();
- throw e;
- }
+ tester.teardownTestArea();
}
@Test
public void sanityCheck()
throws Exception
{
- try
- {
- // Hey, we were able to install the file system connector etc.
- // Now, create a local test job and run it.
- IThreadContext tc = ThreadContextFactory.make();
- int i;
- IJobManager jobManager = JobManagerFactory.make(tc);
-
- // Create a basic file system connection, and save it.
- ConfigurationNode connectionObject;
- ConfigurationNode child;
- Configuration requestObject;
- Configuration result;
-
- connectionObject = new ConfigurationNode("repositoryconnection");
-
- child = new ConfigurationNode("name");
- child.setValue("File Connection");
- connectionObject.addChild(connectionObject.getChildCount(),child);
-
- child = new ConfigurationNode("class_name");
- child.setValue("org.apache.manifoldcf.crawler.connectors.filesystem.FileConnector");
- connectionObject.addChild(connectionObject.getChildCount(),child);
-
- child = new ConfigurationNode("description");
- child.setValue("File Connection");
- connectionObject.addChild(connectionObject.getChildCount(),child);
-
- child = new ConfigurationNode("max_connections");
- child.setValue("100");
- connectionObject.addChild(connectionObject.getChildCount(),child);
-
- requestObject = new Configuration();
- requestObject.addChild(0,connectionObject);
-
- result = performAPIPutOperationViaNodes("repositoryconnections/File%20Connection",201,requestObject);
-
- i = 0;
- while (i < result.getChildCount())
- {
- ConfigurationNode resultNode = result.findChild(i++);
- if (resultNode.getType().equals("error"))
- throw new Exception(resultNode.getValue());
- }
-
- // Create a basic null output connection, and save it.
- connectionObject = new ConfigurationNode("outputconnection");
-
- child = new ConfigurationNode("name");
- child.setValue("Null Connection");
- connectionObject.addChild(connectionObject.getChildCount(),child);
-
- child = new ConfigurationNode("class_name");
- child.setValue("org.apache.manifoldcf.agents.output.nullconnector.NullConnector");
- connectionObject.addChild(connectionObject.getChildCount(),child);
-
- child = new ConfigurationNode("description");
- child.setValue("Null Connection");
- connectionObject.addChild(connectionObject.getChildCount(),child);
-
- child = new ConfigurationNode("max_connections");
- child.setValue("100");
- connectionObject.addChild(connectionObject.getChildCount(),child);
-
- requestObject = new Configuration();
- requestObject.addChild(0,connectionObject);
-
- result = performAPIPutOperationViaNodes("outputconnections/Null%20Connection",201,requestObject);
-
- i = 0;
- while (i < result.getChildCount())
- {
- ConfigurationNode resultNode = result.findChild(i++);
- if (resultNode.getType().equals("error"))
- throw new Exception(resultNode.getValue());
- }
-
- // Create a job.
- ConfigurationNode jobObject = new ConfigurationNode("job");
-
- child = new ConfigurationNode("description");
- child.setValue("Test Job");
- jobObject.addChild(jobObject.getChildCount(),child);
-
- child = new ConfigurationNode("repository_connection");
- child.setValue("File Connection");
- jobObject.addChild(jobObject.getChildCount(),child);
-
- child = new ConfigurationNode("output_connection");
- child.setValue("Null Connection");
- jobObject.addChild(jobObject.getChildCount(),child);
-
- child = new ConfigurationNode("run_mode");
- child.setValue("scan once");
- jobObject.addChild(jobObject.getChildCount(),child);
-
- child = new ConfigurationNode("start_mode");
- child.setValue("manual");
- jobObject.addChild(jobObject.getChildCount(),child);
-
- child = new ConfigurationNode("hopcount_mode");
- child.setValue("accurate");
- jobObject.addChild(jobObject.getChildCount(),child);
-
- child = new ConfigurationNode("document_specification");
- // Crawl everything underneath the 'testdata' area
- File testDataFile = new File("testdata").getCanonicalFile();
- if (!testDataFile.exists())
- throw new ManifoldCFException("Test data area not found! Looking in "+testDataFile.toString());
- if (!testDataFile.isDirectory())
- throw new ManifoldCFException("Test data area not a directory! Looking in "+testDataFile.toString());
- ConfigurationNode sn = new ConfigurationNode("startpoint");
- sn.setAttribute("path",testDataFile.toString());
- ConfigurationNode n = new ConfigurationNode("include");
- n.setAttribute("type","file");
- n.setAttribute("match","*");
- sn.addChild(sn.getChildCount(),n);
- n = new ConfigurationNode("include");
- n.setAttribute("type","directory");
- n.setAttribute("match","*");
- sn.addChild(sn.getChildCount(),n);
- child.addChild(child.getChildCount(),sn);
- jobObject.addChild(jobObject.getChildCount(),child);
-
- requestObject = new Configuration();
- requestObject.addChild(0,jobObject);
-
- result = performAPIPostOperationViaNodes("jobs",201,requestObject);
-
- String jobIDString = null;
- i = 0;
- while (i < result.getChildCount())
- {
- ConfigurationNode resultNode = result.findChild(i++);
- if (resultNode.getType().equals("error"))
- throw new Exception(resultNode.getValue());
- else if (resultNode.getType().equals("job_id"))
- jobIDString = resultNode.getValue();
- }
- if (jobIDString == null)
- throw new Exception("Missing job_id from return!");
-
- Long jobID = new Long(jobIDString);
-
- // Create the test data files.
- createFile(new File("testdata/test1.txt"),"This is a test file");
- createFile(new File("testdata/test2.txt"),"This is another test file");
- createDirectory(new File("testdata/testdir"));
- createFile(new File("testdata/testdir/test3.txt"),"This is yet another test file");
-
- ConfigurationNode requestNode;
-
- // Now, start the job, and wait until it completes.
- startJob(jobIDString);
- waitJobInactive(jobIDString, 120000L);
-
- // Check to be sure we actually processed the right number of documents.
- // The test data area has 3 documents and one directory, and we have to count the root directory too.
- long count;
- count = getJobDocumentsProcessed(jobIDString);
- if (count != 5)
- throw new ManifoldCFException("Wrong number of documents processed - expected 5, saw "+new Long(count).toString());
-
- // Add a file and recrawl
- createFile(new File("testdata/testdir/test4.txt"),"Added file");
-
- // Now, start the job, and wait until it completes.
- startJob(jobIDString);
- waitJobInactive(jobIDString, 120000L);
-
- // The test data area has 4 documents and one directory, and we have to count the root directory too.
- count = getJobDocumentsProcessed(jobIDString);
- if (count != 6)
- throw new ManifoldCFException("Wrong number of documents processed after add - expected 6, saw "+new Long(count).toString());
-
- // Change a file, and recrawl
- changeFile(new File("testdata/test1.txt"),"Modified contents");
-
- // Now, start the job, and wait until it completes.
- startJob(jobIDString);
- waitJobInactive(jobIDString, 120000L);
-
- // The test data area has 4 documents and one directory, and we have to count the root directory too.
- count = getJobDocumentsProcessed(jobIDString);
- if (count != 6)
- throw new ManifoldCFException("Wrong number of documents processed after change - expected 6, saw "+new Long(count).toString());
- // We also need to make sure the new document was indexed. Have to think about how to do this though.
- // MHL
-
- // Delete a file, and recrawl
- removeFile(new File("testdata/test2.txt"));
-
- // Now, start the job, and wait until it completes.
- startJob(jobIDString);
- waitJobInactive(jobIDString, 120000L);
-
- // Check to be sure we actually processed the right number of documents.
- // The test data area has 3 documents and one directory, and we have to count the root directory too.
- count = getJobDocumentsProcessed(jobIDString);
- if (count != 5)
- throw new ManifoldCFException("Wrong number of documents processed after delete - expected 5, saw "+new Long(count).toString());
-
- // Now, delete the job.
- deleteJob(jobIDString);
-
- waitJobDeleted(jobIDString, 120000L);
-
- // Cleanup is automatic by the base class, so we can feel free to leave jobs and connections lying around.
- }
- catch (Exception e)
- {
- e.printStackTrace();
- throw e;
- }
+ tester.executeTest();
}
- protected void startJob(String jobIDString)
- throws Exception
- {
- Configuration requestObject = new Configuration();
-
- Configuration result = performAPIPutOperationViaNodes("start/"+jobIDString,201,requestObject);
- int i = 0;
- while (i < result.getChildCount())
- {
- ConfigurationNode resultNode = result.findChild(i++);
- if (resultNode.getType().equals("error"))
- throw new Exception(resultNode.getValue());
- }
- }
-
- protected void deleteJob(String jobIDString)
- throws Exception
- {
- Configuration result = performAPIDeleteOperationViaNodes("jobs/"+jobIDString,200);
- int i = 0;
- while (i < result.getChildCount())
- {
- ConfigurationNode resultNode = result.findChild(i++);
- if (resultNode.getType().equals("error"))
- throw new Exception(resultNode.getValue());
- }
-
- }
-
- protected String getJobStatus(String jobIDString)
- throws Exception
- {
- Configuration result = performAPIGetOperationViaNodes("jobstatusesnocounts/"+jobIDString,200);
- String status = null;
- int i = 0;
- while (i < result.getChildCount())
- {
- ConfigurationNode resultNode = result.findChild(i++);
- if (resultNode.getType().equals("error"))
- throw new Exception(resultNode.getValue());
- else if (resultNode.getType().equals("jobstatus"))
- {
- int j = 0;
- while (j < resultNode.getChildCount())
- {
- ConfigurationNode childNode = resultNode.findChild(j++);
- if (childNode.getType().equals("status"))
- status = childNode.getValue();
- }
- }
- }
- return status;
- }
-
- protected long getJobDocumentsProcessed(String jobIDString)
- throws Exception
- {
- Configuration result = performAPIGetOperationViaNodes("jobstatuses/"+jobIDString,200);
- String documentsProcessed = null;
- int i = 0;
- while (i < result.getChildCount())
- {
- ConfigurationNode resultNode = result.findChild(i++);
- if (resultNode.getType().equals("error"))
- throw new Exception(resultNode.getValue());
- else if (resultNode.getType().equals("jobstatus"))
- {
- int j = 0;
- while (j < resultNode.getChildCount())
- {
- ConfigurationNode childNode = resultNode.findChild(j++);
- if (childNode.getType().equals("documents_processed"))
- documentsProcessed = childNode.getValue();
- }
- }
- }
- if (documentsProcessed == null)
- throw new Exception("Expected a documents_processed field, didn't find it");
- return new Long(documentsProcessed).longValue();
- }
-
- protected void waitJobInactive(String jobIDString, long maxTime)
- throws Exception
- {
- long startTime = System.currentTimeMillis();
- while (System.currentTimeMillis() < startTime + maxTime)
- {
- String status = getJobStatus(jobIDString);
- if (status == null)
- throw new Exception("No such job: '"+jobIDString+"'");
- if (status.equals("not yet run"))
- throw new Exception("Job was never started.");
- if (status.equals("done"))
- return;
- if (status.equals("error"))
- throw new Exception("Job reports error.");
- ManifoldCF.sleep(1000L);
- continue;
- }
- throw new ManifoldCFException("ManifoldCF did not terminate in the allotted time of "+new Long(maxTime).toString()+" milliseconds");
- }
-
- protected void waitJobDeleted(String jobIDString, long maxTime)
- throws Exception
- {
- long startTime = System.currentTimeMillis();
- while (System.currentTimeMillis() < startTime + maxTime)
- {
- String status = getJobStatus(jobIDString);
- if (status == null)
- return;
- ManifoldCF.sleep(1000L);
- }
- throw new ManifoldCFException("ManifoldCF did not delete in the allotted time of "+new Long(maxTime).toString()+" milliseconds");
- }
-
-
}
Modified: incubator/lcf/trunk/tests/filesystem/src/test/java/org/apache/manifoldcf/filesystem_tests/APISanityPostgresqlIT.java
URL: http://svn.apache.org/viewvc/incubator/lcf/trunk/tests/filesystem/src/test/java/org/apache/manifoldcf/filesystem_tests/APISanityPostgresqlIT.java?rev=1226141&r1=1226140&r2=1226141&view=diff
==============================================================================
--- incubator/lcf/trunk/tests/filesystem/src/test/java/org/apache/manifoldcf/filesystem_tests/APISanityPostgresqlIT.java (original)
+++ incubator/lcf/trunk/tests/filesystem/src/test/java/org/apache/manifoldcf/filesystem_tests/APISanityPostgresqlIT.java Sat Dec 31 17:23:35 2011
@@ -18,11 +18,6 @@
*/
package org.apache.manifoldcf.filesystem_tests;
-import org.apache.manifoldcf.core.interfaces.*;
-import org.apache.manifoldcf.agents.interfaces.*;
-import org.apache.manifoldcf.crawler.interfaces.*;
-import org.apache.manifoldcf.crawler.system.ManifoldCF;
-
import java.io.*;
import java.util.*;
import org.junit.*;
@@ -30,375 +25,32 @@ import org.junit.*;
/** This is a very basic sanity check */
public class APISanityPostgresqlIT extends BasePostgresql
{
+ protected APISanityTester tester;
+
+ public APISanityPostgresqlIT()
+ {
+ tester = new APISanityTester(mcfInstance);
+ }
@Before
- public void createTestArea()
+ public void setupTester()
throws Exception
{
- try
- {
- File f = new File("testdata");
- removeDirectory(f);
- createDirectory(f);
- }
- catch (Exception e)
- {
- e.printStackTrace();
- throw e;
- }
+ tester.setupTestArea();
}
@After
- public void removeTestArea()
+ public void teardownTester()
throws Exception
{
- try
- {
- File f = new File("testdata");
- removeDirectory(f);
- }
- catch (Exception e)
- {
- e.printStackTrace();
- throw e;
- }
+ tester.teardownTestArea();
}
@Test
public void sanityCheck()
throws Exception
{
- try
- {
- // Hey, we were able to install the file system connector etc.
- // Now, create a local test job and run it.
- IThreadContext tc = ThreadContextFactory.make();
- int i;
- IJobManager jobManager = JobManagerFactory.make(tc);
-
- // Create a basic file system connection, and save it.
- ConfigurationNode connectionObject;
- ConfigurationNode child;
- Configuration requestObject;
- Configuration result;
-
- connectionObject = new ConfigurationNode("repositoryconnection");
-
- child = new ConfigurationNode("name");
- child.setValue("File Connection");
- connectionObject.addChild(connectionObject.getChildCount(),child);
-
- child = new ConfigurationNode("class_name");
- child.setValue("org.apache.manifoldcf.crawler.connectors.filesystem.FileConnector");
- connectionObject.addChild(connectionObject.getChildCount(),child);
-
- child = new ConfigurationNode("description");
- child.setValue("File Connection");
- connectionObject.addChild(connectionObject.getChildCount(),child);
-
- child = new ConfigurationNode("max_connections");
- child.setValue("100");
- connectionObject.addChild(connectionObject.getChildCount(),child);
-
- requestObject = new Configuration();
- requestObject.addChild(0,connectionObject);
-
- result = performAPIPutOperationViaNodes("repositoryconnections/File%20Connection",201,requestObject);
-
- i = 0;
- while (i < result.getChildCount())
- {
- ConfigurationNode resultNode = result.findChild(i++);
- if (resultNode.getType().equals("error"))
- throw new Exception(resultNode.getValue());
- }
-
- // Create a basic null output connection, and save it.
- connectionObject = new ConfigurationNode("outputconnection");
-
- child = new ConfigurationNode("name");
- child.setValue("Null Connection");
- connectionObject.addChild(connectionObject.getChildCount(),child);
-
- child = new ConfigurationNode("class_name");
- child.setValue("org.apache.manifoldcf.agents.output.nullconnector.NullConnector");
- connectionObject.addChild(connectionObject.getChildCount(),child);
-
- child = new ConfigurationNode("description");
- child.setValue("Null Connection");
- connectionObject.addChild(connectionObject.getChildCount(),child);
-
- child = new ConfigurationNode("max_connections");
- child.setValue("100");
- connectionObject.addChild(connectionObject.getChildCount(),child);
-
- requestObject = new Configuration();
- requestObject.addChild(0,connectionObject);
-
- result = performAPIPutOperationViaNodes("outputconnections/Null%20Connection",201,requestObject);
-
- i = 0;
- while (i < result.getChildCount())
- {
- ConfigurationNode resultNode = result.findChild(i++);
- if (resultNode.getType().equals("error"))
- throw new Exception(resultNode.getValue());
- }
-
- // Create a job.
- ConfigurationNode jobObject = new ConfigurationNode("job");
-
- child = new ConfigurationNode("description");
- child.setValue("Test Job");
- jobObject.addChild(jobObject.getChildCount(),child);
-
- child = new ConfigurationNode("repository_connection");
- child.setValue("File Connection");
- jobObject.addChild(jobObject.getChildCount(),child);
-
- child = new ConfigurationNode("output_connection");
- child.setValue("Null Connection");
- jobObject.addChild(jobObject.getChildCount(),child);
-
- child = new ConfigurationNode("run_mode");
- child.setValue("scan once");
- jobObject.addChild(jobObject.getChildCount(),child);
-
- child = new ConfigurationNode("start_mode");
- child.setValue("manual");
- jobObject.addChild(jobObject.getChildCount(),child);
-
- child = new ConfigurationNode("hopcount_mode");
- child.setValue("accurate");
- jobObject.addChild(jobObject.getChildCount(),child);
-
- child = new ConfigurationNode("document_specification");
- // Crawl everything underneath the 'testdata' area
- File testDataFile = new File("testdata").getCanonicalFile();
- if (!testDataFile.exists())
- throw new ManifoldCFException("Test data area not found! Looking in "+testDataFile.toString());
- if (!testDataFile.isDirectory())
- throw new ManifoldCFException("Test data area not a directory! Looking in "+testDataFile.toString());
- ConfigurationNode sn = new ConfigurationNode("startpoint");
- sn.setAttribute("path",testDataFile.toString());
- ConfigurationNode n = new ConfigurationNode("include");
- n.setAttribute("type","file");
- n.setAttribute("match","*");
- sn.addChild(sn.getChildCount(),n);
- n = new ConfigurationNode("include");
- n.setAttribute("type","directory");
- n.setAttribute("match","*");
- sn.addChild(sn.getChildCount(),n);
- child.addChild(child.getChildCount(),sn);
- jobObject.addChild(jobObject.getChildCount(),child);
-
- requestObject = new Configuration();
- requestObject.addChild(0,jobObject);
-
- result = performAPIPostOperationViaNodes("jobs",201,requestObject);
-
- String jobIDString = null;
- i = 0;
- while (i < result.getChildCount())
- {
- ConfigurationNode resultNode = result.findChild(i++);
- if (resultNode.getType().equals("error"))
- throw new Exception(resultNode.getValue());
- else if (resultNode.getType().equals("job_id"))
- jobIDString = resultNode.getValue();
- }
- if (jobIDString == null)
- throw new Exception("Missing job_id from return!");
-
- Long jobID = new Long(jobIDString);
-
- // Create the test data files.
- createFile(new File("testdata/test1.txt"),"This is a test file");
- createFile(new File("testdata/test2.txt"),"This is another test file");
- createDirectory(new File("testdata/testdir"));
- createFile(new File("testdata/testdir/test3.txt"),"This is yet another test file");
-
- ConfigurationNode requestNode;
-
- // Now, start the job, and wait until it completes.
- startJob(jobIDString);
- waitJobInactive(jobIDString, 120000L);
-
- // Check to be sure we actually processed the right number of documents.
- // The test data area has 3 documents and one directory, and we have to count the root directory too.
- long count;
- count = getJobDocumentsProcessed(jobIDString);
- if (count != 5)
- throw new ManifoldCFException("Wrong number of documents processed - expected 5, saw "+new Long(count).toString());
-
- // Add a file and recrawl
- createFile(new File("testdata/testdir/test4.txt"),"Added file");
-
- // Now, start the job, and wait until it completes.
- startJob(jobIDString);
- waitJobInactive(jobIDString, 120000L);
-
- // The test data area has 4 documents and one directory, and we have to count the root directory too.
- count = getJobDocumentsProcessed(jobIDString);
- if (count != 6)
- throw new ManifoldCFException("Wrong number of documents processed after add - expected 6, saw "+new Long(count).toString());
-
- // Change a file, and recrawl
- changeFile(new File("testdata/test1.txt"),"Modified contents");
-
- // Now, start the job, and wait until it completes.
- startJob(jobIDString);
- waitJobInactive(jobIDString, 120000L);
-
- // The test data area has 4 documents and one directory, and we have to count the root directory too.
- count = getJobDocumentsProcessed(jobIDString);
- if (count != 6)
- throw new ManifoldCFException("Wrong number of documents processed after change - expected 6, saw "+new Long(count).toString());
- // We also need to make sure the new document was indexed. Have to think about how to do this though.
- // MHL
-
- // Delete a file, and recrawl
- removeFile(new File("testdata/test2.txt"));
-
- // Now, start the job, and wait until it completes.
- startJob(jobIDString);
- waitJobInactive(jobIDString, 120000L);
-
- // Check to be sure we actually processed the right number of documents.
- // The test data area has 3 documents and one directory, and we have to count the root directory too.
- count = getJobDocumentsProcessed(jobIDString);
- if (count != 5)
- throw new ManifoldCFException("Wrong number of documents processed after delete - expected 5, saw "+new Long(count).toString());
-
- // Now, delete the job.
- deleteJob(jobIDString);
-
- waitJobDeleted(jobIDString, 120000L);
-
- // Cleanup is automatic by the base class, so we can feel free to leave jobs and connections lying around.
- }
- catch (Exception e)
- {
- e.printStackTrace();
- throw e;
- }
+ tester.executeTest();
}
- protected void startJob(String jobIDString)
- throws Exception
- {
- Configuration requestObject = new Configuration();
-
- Configuration result = performAPIPutOperationViaNodes("start/"+jobIDString,201,requestObject);
- int i = 0;
- while (i < result.getChildCount())
- {
- ConfigurationNode resultNode = result.findChild(i++);
- if (resultNode.getType().equals("error"))
- throw new Exception(resultNode.getValue());
- }
- }
-
- protected void deleteJob(String jobIDString)
- throws Exception
- {
- Configuration result = performAPIDeleteOperationViaNodes("jobs/"+jobIDString,200);
- int i = 0;
- while (i < result.getChildCount())
- {
- ConfigurationNode resultNode = result.findChild(i++);
- if (resultNode.getType().equals("error"))
- throw new Exception(resultNode.getValue());
- }
-
- }
-
- protected String getJobStatus(String jobIDString)
- throws Exception
- {
- Configuration result = performAPIGetOperationViaNodes("jobstatusesnocounts/"+jobIDString,200);
- String status = null;
- int i = 0;
- while (i < result.getChildCount())
- {
- ConfigurationNode resultNode = result.findChild(i++);
- if (resultNode.getType().equals("error"))
- throw new Exception(resultNode.getValue());
- else if (resultNode.getType().equals("jobstatus"))
- {
- int j = 0;
- while (j < resultNode.getChildCount())
- {
- ConfigurationNode childNode = resultNode.findChild(j++);
- if (childNode.getType().equals("status"))
- status = childNode.getValue();
- }
- }
- }
- return status;
- }
-
- protected long getJobDocumentsProcessed(String jobIDString)
- throws Exception
- {
- Configuration result = performAPIGetOperationViaNodes("jobstatuses/"+jobIDString,200);
- String documentsProcessed = null;
- int i = 0;
- while (i < result.getChildCount())
- {
- ConfigurationNode resultNode = result.findChild(i++);
- if (resultNode.getType().equals("error"))
- throw new Exception(resultNode.getValue());
- else if (resultNode.getType().equals("jobstatus"))
- {
- int j = 0;
- while (j < resultNode.getChildCount())
- {
- ConfigurationNode childNode = resultNode.findChild(j++);
- if (childNode.getType().equals("documents_processed"))
- documentsProcessed = childNode.getValue();
- }
- }
- }
- if (documentsProcessed == null)
- throw new Exception("Expected a documents_processed field, didn't find it");
- return new Long(documentsProcessed).longValue();
- }
-
- protected void waitJobInactive(String jobIDString, long maxTime)
- throws Exception
- {
- long startTime = System.currentTimeMillis();
- while (System.currentTimeMillis() < startTime + maxTime)
- {
- String status = getJobStatus(jobIDString);
- if (status == null)
- throw new Exception("No such job: '"+jobIDString+"'");
- if (status.equals("not yet run"))
- throw new Exception("Job was never started.");
- if (status.equals("done"))
- return;
- if (status.equals("error"))
- throw new Exception("Job reports error.");
- ManifoldCF.sleep(1000L);
- continue;
- }
- throw new ManifoldCFException("ManifoldCF did not terminate in the allotted time of "+new Long(maxTime).toString()+" milliseconds");
- }
-
- protected void waitJobDeleted(String jobIDString, long maxTime)
- throws Exception
- {
- long startTime = System.currentTimeMillis();
- while (System.currentTimeMillis() < startTime + maxTime)
- {
- String status = getJobStatus(jobIDString);
- if (status == null)
- return;
- ManifoldCF.sleep(1000L);
- }
- throw new ManifoldCFException("ManifoldCF did not delete in the allotted time of "+new Long(maxTime).toString()+" milliseconds");
- }
-
-
}
Added: incubator/lcf/trunk/tests/filesystem/src/test/java/org/apache/manifoldcf/filesystem_tests/APISanityTester.java
URL: http://svn.apache.org/viewvc/incubator/lcf/trunk/tests/filesystem/src/test/java/org/apache/manifoldcf/filesystem_tests/APISanityTester.java?rev=1226141&view=auto
==============================================================================
--- incubator/lcf/trunk/tests/filesystem/src/test/java/org/apache/manifoldcf/filesystem_tests/APISanityTester.java (added)
+++ incubator/lcf/trunk/tests/filesystem/src/test/java/org/apache/manifoldcf/filesystem_tests/APISanityTester.java Sat Dec 31 17:23:35 2011
@@ -0,0 +1,263 @@
+/* $Id$ */
+
+/**
+* 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.manifoldcf.filesystem_tests;
+
+import org.apache.manifoldcf.core.interfaces.*;
+import org.apache.manifoldcf.agents.interfaces.*;
+import org.apache.manifoldcf.crawler.interfaces.*;
+import org.apache.manifoldcf.crawler.system.ManifoldCF;
+
+import java.io.*;
+import java.util.*;
+
+/** This is a very basic sanity check */
+public class APISanityTester
+{
+ protected org.apache.manifoldcf.crawler.tests.ManifoldCFInstance instance;
+
+ public APISanityTester(org.apache.manifoldcf.crawler.tests.ManifoldCFInstance instance)
+ {
+ this.instance = instance;
+ }
+
+ public void setupTestArea()
+ throws Exception
+ {
+ File f = new File("testdata");
+ FileHelper.removeDirectory(f);
+ FileHelper.createDirectory(f);
+ }
+
+ public void teardownTestArea()
+ throws Exception
+ {
+ File f = new File("testdata");
+ FileHelper.removeDirectory(f);
+ }
+
+ public void executeTest()
+ throws Exception
+ {
+ // Hey, we were able to install the file system connector etc.
+ // Now, create a local test job and run it.
+ int i;
+
+ // Create a basic file system connection, and save it.
+ ConfigurationNode connectionObject;
+ ConfigurationNode child;
+ Configuration requestObject;
+ Configuration result;
+
+ connectionObject = new ConfigurationNode("repositoryconnection");
+
+ child = new ConfigurationNode("name");
+ child.setValue("File Connection");
+ connectionObject.addChild(connectionObject.getChildCount(),child);
+
+ child = new ConfigurationNode("class_name");
+ child.setValue("org.apache.manifoldcf.crawler.connectors.filesystem.FileConnector");
+ connectionObject.addChild(connectionObject.getChildCount(),child);
+
+ child = new ConfigurationNode("description");
+ child.setValue("File Connection");
+ connectionObject.addChild(connectionObject.getChildCount(),child);
+
+ child = new ConfigurationNode("max_connections");
+ child.setValue("100");
+ connectionObject.addChild(connectionObject.getChildCount(),child);
+
+ requestObject = new Configuration();
+ requestObject.addChild(0,connectionObject);
+
+ result = instance.performAPIPutOperationViaNodes("repositoryconnections/File%20Connection",201,requestObject);
+
+ i = 0;
+ while (i < result.getChildCount())
+ {
+ ConfigurationNode resultNode = result.findChild(i++);
+ if (resultNode.getType().equals("error"))
+ throw new Exception(resultNode.getValue());
+ }
+
+ // Create a basic null output connection, and save it.
+ connectionObject = new ConfigurationNode("outputconnection");
+
+ child = new ConfigurationNode("name");
+ child.setValue("Null Connection");
+ connectionObject.addChild(connectionObject.getChildCount(),child);
+
+ child = new ConfigurationNode("class_name");
+ child.setValue("org.apache.manifoldcf.agents.output.nullconnector.NullConnector");
+ connectionObject.addChild(connectionObject.getChildCount(),child);
+
+ child = new ConfigurationNode("description");
+ child.setValue("Null Connection");
+ connectionObject.addChild(connectionObject.getChildCount(),child);
+
+ child = new ConfigurationNode("max_connections");
+ child.setValue("100");
+ connectionObject.addChild(connectionObject.getChildCount(),child);
+
+ requestObject = new Configuration();
+ requestObject.addChild(0,connectionObject);
+
+ result = instance.performAPIPutOperationViaNodes("outputconnections/Null%20Connection",201,requestObject);
+
+ i = 0;
+ while (i < result.getChildCount())
+ {
+ ConfigurationNode resultNode = result.findChild(i++);
+ if (resultNode.getType().equals("error"))
+ throw new Exception(resultNode.getValue());
+ }
+
+ // Create a job.
+ ConfigurationNode jobObject = new ConfigurationNode("job");
+
+ child = new ConfigurationNode("description");
+ child.setValue("Test Job");
+ jobObject.addChild(jobObject.getChildCount(),child);
+
+ child = new ConfigurationNode("repository_connection");
+ child.setValue("File Connection");
+ jobObject.addChild(jobObject.getChildCount(),child);
+
+ child = new ConfigurationNode("output_connection");
+ child.setValue("Null Connection");
+ jobObject.addChild(jobObject.getChildCount(),child);
+
+ child = new ConfigurationNode("run_mode");
+ child.setValue("scan once");
+ jobObject.addChild(jobObject.getChildCount(),child);
+
+ child = new ConfigurationNode("start_mode");
+ child.setValue("manual");
+ jobObject.addChild(jobObject.getChildCount(),child);
+
+ child = new ConfigurationNode("hopcount_mode");
+ child.setValue("accurate");
+ jobObject.addChild(jobObject.getChildCount(),child);
+
+ child = new ConfigurationNode("document_specification");
+ // Crawl everything underneath the 'testdata' area
+ File testDataFile = new File("testdata").getCanonicalFile();
+ if (!testDataFile.exists())
+ throw new ManifoldCFException("Test data area not found! Looking in "+testDataFile.toString());
+ if (!testDataFile.isDirectory())
+ throw new ManifoldCFException("Test data area not a directory! Looking in "+testDataFile.toString());
+ ConfigurationNode sn = new ConfigurationNode("startpoint");
+ sn.setAttribute("path",testDataFile.toString());
+ ConfigurationNode n = new ConfigurationNode("include");
+ n.setAttribute("type","file");
+ n.setAttribute("match","*");
+ sn.addChild(sn.getChildCount(),n);
+ n = new ConfigurationNode("include");
+ n.setAttribute("type","directory");
+ n.setAttribute("match","*");
+ sn.addChild(sn.getChildCount(),n);
+ child.addChild(child.getChildCount(),sn);
+ jobObject.addChild(jobObject.getChildCount(),child);
+
+ requestObject = new Configuration();
+ requestObject.addChild(0,jobObject);
+
+ result = instance.performAPIPostOperationViaNodes("jobs",201,requestObject);
+
+ String jobIDString = null;
+ i = 0;
+ while (i < result.getChildCount())
+ {
+ ConfigurationNode resultNode = result.findChild(i++);
+ if (resultNode.getType().equals("error"))
+ throw new Exception(resultNode.getValue());
+ else if (resultNode.getType().equals("job_id"))
+ jobIDString = resultNode.getValue();
+ }
+ if (jobIDString == null)
+ throw new Exception("Missing job_id from return!");
+
+ Long jobID = new Long(jobIDString);
+
+ // Create the test data files.
+ FileHelper.createFile(new File("testdata/test1.txt"),"This is a test file");
+ FileHelper.createFile(new File("testdata/test2.txt"),"This is another test file");
+ FileHelper.createDirectory(new File("testdata/testdir"));
+ FileHelper.createFile(new File("testdata/testdir/test3.txt"),"This is yet another test file");
+
+ ConfigurationNode requestNode;
+
+ // Now, start the job, and wait until it completes.
+ instance.startJobAPI(jobIDString);
+ instance.waitJobInactiveAPI(jobIDString, 120000L);
+
+ // Check to be sure we actually processed the right number of documents.
+ // The test data area has 3 documents and one directory, and we have to count the root directory too.
+ long count;
+ count = instance.getJobDocumentsProcessedAPI(jobIDString);
+ if (count != 5)
+ throw new ManifoldCFException("Wrong number of documents processed - expected 5, saw "+new Long(count).toString());
+
+ // Add a file and recrawl
+ FileHelper.createFile(new File("testdata/testdir/test4.txt"),"Added file");
+
+ // Now, start the job, and wait until it completes.
+ instance.startJobAPI(jobIDString);
+ instance.waitJobInactiveAPI(jobIDString, 120000L);
+
+ // The test data area has 4 documents and one directory, and we have to count the root directory too.
+ count = instance.getJobDocumentsProcessedAPI(jobIDString);
+ if (count != 6)
+ throw new ManifoldCFException("Wrong number of documents processed after add - expected 6, saw "+new Long(count).toString());
+
+ // Change a file, and recrawl
+ FileHelper.changeFile(new File("testdata/test1.txt"),"Modified contents");
+
+ // Now, start the job, and wait until it completes.
+ instance.startJobAPI(jobIDString);
+ instance.waitJobInactiveAPI(jobIDString, 120000L);
+
+ // The test data area has 4 documents and one directory, and we have to count the root directory too.
+ count = instance.getJobDocumentsProcessedAPI(jobIDString);
+ if (count != 6)
+ throw new ManifoldCFException("Wrong number of documents processed after change - expected 6, saw "+new Long(count).toString());
+ // We also need to make sure the new document was indexed. Have to think about how to do this though.
+ // MHL
+
+ // Delete a file, and recrawl
+ FileHelper.removeFile(new File("testdata/test2.txt"));
+
+ // Now, start the job, and wait until it completes.
+ instance.startJobAPI(jobIDString);
+ instance.waitJobInactiveAPI(jobIDString, 120000L);
+
+ // Check to be sure we actually processed the right number of documents.
+ // The test data area has 3 documents and one directory, and we have to count the root directory too.
+ count = instance.getJobDocumentsProcessedAPI(jobIDString);
+ if (count != 5)
+ throw new ManifoldCFException("Wrong number of documents processed after delete - expected 5, saw "+new Long(count).toString());
+
+ // Now, delete the job.
+ instance.deleteJobAPI(jobIDString);
+
+ instance.waitJobDeletedAPI(jobIDString, 120000L);
+
+ // Cleanup is automatic by the base class, so we can feel free to leave jobs and connections lying around.
+ }
+
+}
Propchange: incubator/lcf/trunk/tests/filesystem/src/test/java/org/apache/manifoldcf/filesystem_tests/APISanityTester.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: incubator/lcf/trunk/tests/filesystem/src/test/java/org/apache/manifoldcf/filesystem_tests/APISanityTester.java
------------------------------------------------------------------------------
svn:keywords = Id
Modified: incubator/lcf/trunk/tests/filesystem/src/test/java/org/apache/manifoldcf/filesystem_tests/BaseDerby.java
URL: http://svn.apache.org/viewvc/incubator/lcf/trunk/tests/filesystem/src/test/java/org/apache/manifoldcf/filesystem_tests/BaseDerby.java?rev=1226141&r1=1226140&r2=1226141&view=diff
==============================================================================
--- incubator/lcf/trunk/tests/filesystem/src/test/java/org/apache/manifoldcf/filesystem_tests/BaseDerby.java (original)
+++ incubator/lcf/trunk/tests/filesystem/src/test/java/org/apache/manifoldcf/filesystem_tests/BaseDerby.java Sat Dec 31 17:23:35 2011
@@ -49,67 +49,4 @@ public class BaseDerby extends org.apach
{
return new String[]{"org.apache.manifoldcf.agents.output.nullconnector.NullConnector"};
}
-
- protected void createDirectory(File f)
- throws Exception
- {
- if (f.mkdirs() == false)
- throw new Exception("Failed to create directory "+f.toString());
- }
-
- protected void removeDirectory(File f)
- throws Exception
- {
- File[] files = f.listFiles();
- if (files != null)
- {
- int i = 0;
- while (i < files.length)
- {
- File subfile = files[i++];
- if (subfile.isDirectory())
- removeDirectory(subfile);
- else
- subfile.delete();
- }
- }
- f.delete();
- }
-
- protected void createFile(File f, String contents)
- throws Exception
- {
- OutputStream os = new FileOutputStream(f);
- try
- {
- Writer w = new OutputStreamWriter(os,"utf-8");
- try
- {
- w.write(contents);
- }
- finally
- {
- w.flush();
- }
- }
- finally
- {
- os.close();
- }
- }
-
- protected void removeFile(File f)
- throws Exception
- {
- if (f.delete() == false)
- throw new Exception("Failed to delete file "+f.toString());
- }
-
- protected void changeFile(File f, String newContents)
- throws Exception
- {
- removeFile(f);
- createFile(f,newContents);
- }
-
}
Modified: incubator/lcf/trunk/tests/filesystem/src/test/java/org/apache/manifoldcf/filesystem_tests/BaseHSQLDB.java
URL: http://svn.apache.org/viewvc/incubator/lcf/trunk/tests/filesystem/src/test/java/org/apache/manifoldcf/filesystem_tests/BaseHSQLDB.java?rev=1226141&r1=1226140&r2=1226141&view=diff
==============================================================================
--- incubator/lcf/trunk/tests/filesystem/src/test/java/org/apache/manifoldcf/filesystem_tests/BaseHSQLDB.java (original)
+++ incubator/lcf/trunk/tests/filesystem/src/test/java/org/apache/manifoldcf/filesystem_tests/BaseHSQLDB.java Sat Dec 31 17:23:35 2011
@@ -49,67 +49,4 @@ public class BaseHSQLDB extends org.apac
{
return new String[]{"org.apache.manifoldcf.agents.output.nullconnector.NullConnector"};
}
-
- protected void createDirectory(File f)
- throws Exception
- {
- if (f.mkdirs() == false)
- throw new Exception("Failed to create directory "+f.toString());
- }
-
- protected void removeDirectory(File f)
- throws Exception
- {
- File[] files = f.listFiles();
- if (files != null)
- {
- int i = 0;
- while (i < files.length)
- {
- File subfile = files[i++];
- if (subfile.isDirectory())
- removeDirectory(subfile);
- else
- subfile.delete();
- }
- }
- f.delete();
- }
-
- protected void createFile(File f, String contents)
- throws Exception
- {
- OutputStream os = new FileOutputStream(f);
- try
- {
- Writer w = new OutputStreamWriter(os,"utf-8");
- try
- {
- w.write(contents);
- }
- finally
- {
- w.flush();
- }
- }
- finally
- {
- os.close();
- }
- }
-
- protected void removeFile(File f)
- throws Exception
- {
- if (f.delete() == false)
- throw new Exception("Failed to delete file "+f.toString());
- }
-
- protected void changeFile(File f, String newContents)
- throws Exception
- {
- removeFile(f);
- createFile(f,newContents);
- }
-
}
Modified: incubator/lcf/trunk/tests/filesystem/src/test/java/org/apache/manifoldcf/filesystem_tests/BaseMySQL.java
URL: http://svn.apache.org/viewvc/incubator/lcf/trunk/tests/filesystem/src/test/java/org/apache/manifoldcf/filesystem_tests/BaseMySQL.java?rev=1226141&r1=1226140&r2=1226141&view=diff
==============================================================================
--- incubator/lcf/trunk/tests/filesystem/src/test/java/org/apache/manifoldcf/filesystem_tests/BaseMySQL.java (original)
+++ incubator/lcf/trunk/tests/filesystem/src/test/java/org/apache/manifoldcf/filesystem_tests/BaseMySQL.java Sat Dec 31 17:23:35 2011
@@ -49,67 +49,4 @@ public class BaseMySQL extends org.apach
{
return new String[]{"org.apache.manifoldcf.agents.output.nullconnector.NullConnector"};
}
-
- protected void createDirectory(File f)
- throws Exception
- {
- if (f.mkdirs() == false)
- throw new Exception("Failed to create directory "+f.toString());
- }
-
- protected void removeDirectory(File f)
- throws Exception
- {
- File[] files = f.listFiles();
- if (files != null)
- {
- int i = 0;
- while (i < files.length)
- {
- File subfile = files[i++];
- if (subfile.isDirectory())
- removeDirectory(subfile);
- else
- subfile.delete();
- }
- }
- f.delete();
- }
-
- protected void createFile(File f, String contents)
- throws Exception
- {
- OutputStream os = new FileOutputStream(f);
- try
- {
- Writer w = new OutputStreamWriter(os,"utf-8");
- try
- {
- w.write(contents);
- }
- finally
- {
- w.flush();
- }
- }
- finally
- {
- os.close();
- }
- }
-
- protected void removeFile(File f)
- throws Exception
- {
- if (f.delete() == false)
- throw new Exception("Failed to delete file "+f.toString());
- }
-
- protected void changeFile(File f, String newContents)
- throws Exception
- {
- removeFile(f);
- createFile(f,newContents);
- }
-
}
Modified: incubator/lcf/trunk/tests/filesystem/src/test/java/org/apache/manifoldcf/filesystem_tests/BasePostgresql.java
URL: http://svn.apache.org/viewvc/incubator/lcf/trunk/tests/filesystem/src/test/java/org/apache/manifoldcf/filesystem_tests/BasePostgresql.java?rev=1226141&r1=1226140&r2=1226141&view=diff
==============================================================================
--- incubator/lcf/trunk/tests/filesystem/src/test/java/org/apache/manifoldcf/filesystem_tests/BasePostgresql.java (original)
+++ incubator/lcf/trunk/tests/filesystem/src/test/java/org/apache/manifoldcf/filesystem_tests/BasePostgresql.java Sat Dec 31 17:23:35 2011
@@ -49,67 +49,4 @@ public class BasePostgresql extends org.
{
return new String[]{"org.apache.manifoldcf.agents.output.nullconnector.NullConnector"};
}
-
- protected void createDirectory(File f)
- throws Exception
- {
- if (f.mkdirs() == false)
- throw new Exception("Failed to create directory "+f.toString());
- }
-
- protected void removeDirectory(File f)
- throws Exception
- {
- File[] files = f.listFiles();
- if (files != null)
- {
- int i = 0;
- while (i < files.length)
- {
- File subfile = files[i++];
- if (subfile.isDirectory())
- removeDirectory(subfile);
- else
- subfile.delete();
- }
- }
- f.delete();
- }
-
- protected void createFile(File f, String contents)
- throws Exception
- {
- OutputStream os = new FileOutputStream(f);
- try
- {
- Writer w = new OutputStreamWriter(os,"utf-8");
- try
- {
- w.write(contents);
- }
- finally
- {
- w.flush();
- }
- }
- finally
- {
- os.close();
- }
- }
-
- protected void removeFile(File f)
- throws Exception
- {
- if (f.delete() == false)
- throw new Exception("Failed to delete file "+f.toString());
- }
-
- protected void changeFile(File f, String newContents)
- throws Exception
- {
- removeFile(f);
- createFile(f,newContents);
- }
-
}
Modified: incubator/lcf/trunk/tests/filesystem/src/test/java/org/apache/manifoldcf/filesystem_tests/BigCrawlDerbyLT.java
URL: http://svn.apache.org/viewvc/incubator/lcf/trunk/tests/filesystem/src/test/java/org/apache/manifoldcf/filesystem_tests/BigCrawlDerbyLT.java?rev=1226141&r1=1226140&r2=1226141&view=diff
==============================================================================
--- incubator/lcf/trunk/tests/filesystem/src/test/java/org/apache/manifoldcf/filesystem_tests/BigCrawlDerbyLT.java (original)
+++ incubator/lcf/trunk/tests/filesystem/src/test/java/org/apache/manifoldcf/filesystem_tests/BigCrawlDerbyLT.java Sat Dec 31 17:23:35 2011
@@ -18,11 +18,6 @@
*/
package org.apache.manifoldcf.filesystem_tests;
-import org.apache.manifoldcf.core.interfaces.*;
-import org.apache.manifoldcf.agents.interfaces.*;
-import org.apache.manifoldcf.crawler.interfaces.*;
-import org.apache.manifoldcf.crawler.system.ManifoldCF;
-
import java.io.*;
import java.util.*;
import org.junit.*;
@@ -30,211 +25,31 @@ import org.junit.*;
/** This is a very basic sanity check */
public class BigCrawlDerbyLT extends BaseDerby
{
+ protected BigCrawlTester tester;
+
+ public BigCrawlDerbyLT()
+ {
+ tester = new BigCrawlTester(mcfInstance);
+ }
@Before
- public void createTestArea()
+ public void setupTester()
throws Exception
{
- try
- {
- File f = new File("testdata");
- removeDirectory(f);
- createDirectory(f);
- // Create the test data files.
- String baseFileName = "testdata/";
- int i0 = 0;
- while (i0 < 10)
- {
- String fileName0 = baseFileName + "/dir-" + i0;
- createDirectory(new File(fileName0));
- int i1 = 0;
- while (i1 < 10)
- {
- String fileName1 = fileName0 + "/dir-" + i1;
- createDirectory(new File(fileName1));
- int i2 = 0;
- while (i2 < 10)
- {
- String fileName2 = fileName1 + "/dir-" + i2;
- createDirectory(new File(fileName2));
- int i3 = 0;
- while (i3 < 10)
- {
- String fileName3 = fileName2 + "/dir-" + i3;
- createDirectory(new File(fileName3));
- int i4 = 0;
- while (i4 < 10)
- {
- String fileName4 = fileName3 + "/file-"+i4;
- createFile(new File(fileName4),"Test file "+i0+":"+i1+":"+i2+":"+i3+":"+i4);
- i4++;
- }
- i3++;
- }
- i2++;
- }
- i1++;
- }
- i0++;
- }
- }
- catch (Exception e)
- {
- e.printStackTrace();
- throw e;
- }
- System.out.println("Done generating files");
+ tester.setupTestArea();
}
@After
- public void removeTestArea()
+ public void teardownTester()
throws Exception
{
- System.out.println("Removing generated files");
- try
- {
- File f = new File("testdata");
- removeDirectory(f);
- }
- catch (Exception e)
- {
- e.printStackTrace();
- throw e;
- }
+ tester.teardownTestArea();
}
@Test
public void bigCrawl()
throws Exception
{
- try
- {
- // Hey, we were able to install the file system connector etc.
- // Now, create a local test job and run it.
- IThreadContext tc = ThreadContextFactory.make();
-
- // Create a basic file system connection, and save it.
- IRepositoryConnectionManager mgr = RepositoryConnectionManagerFactory.make(tc);
- IRepositoryConnection conn = mgr.create();
- conn.setName("File Connection");
- conn.setDescription("File Connection");
- conn.setClassName("org.apache.manifoldcf.crawler.connectors.filesystem.FileConnector");
- conn.setMaxConnections(100);
- // Now, save
- mgr.save(conn);
-
- // Create a basic null output connection, and save it.
- IOutputConnectionManager outputMgr = OutputConnectionManagerFactory.make(tc);
- IOutputConnection outputConn = outputMgr.create();
- outputConn.setName("Null Connection");
- outputConn.setDescription("Null Connection");
- outputConn.setClassName("org.apache.manifoldcf.agents.output.nullconnector.NullConnector");
- outputConn.setMaxConnections(100);
- // Now, save
- outputMgr.save(outputConn);
-
- // Create a job.
- IJobManager jobManager = JobManagerFactory.make(tc);
- IJobDescription job = jobManager.createJob();
- job.setDescription("Test Job");
- job.setConnectionName("File Connection");
- job.setOutputConnectionName("Null Connection");
- job.setType(job.TYPE_SPECIFIED);
- job.setStartMethod(job.START_DISABLE);
- job.setHopcountMode(job.HOPCOUNT_NEVERDELETE);
-
- // Now, set up the document specification.
- DocumentSpecification ds = job.getSpecification();
- // Crawl everything underneath the 'testdata' area
- File testDataFile = new File("testdata").getCanonicalFile();
- if (!testDataFile.exists())
- throw new ManifoldCFException("Test data area not found! Looking in "+testDataFile.toString());
- if (!testDataFile.isDirectory())
- throw new ManifoldCFException("Test data area not a directory! Looking in "+testDataFile.toString());
- SpecificationNode sn = new SpecificationNode("startpoint");
- sn.setAttribute("path",testDataFile.toString());
- SpecificationNode n = new SpecificationNode("include");
- n.setAttribute("type","file");
- n.setAttribute("match","*");
- sn.addChild(sn.getChildCount(),n);
- n = new SpecificationNode("include");
- n.setAttribute("type","directory");
- n.setAttribute("match","*");
- sn.addChild(sn.getChildCount(),n);
- ds.addChild(ds.getChildCount(),sn);
-
- // Set up the output specification.
- OutputSpecification os = job.getOutputSpecification();
- // Null output connections have no output specification, so this is a no-op.
-
- // Save the job.
- jobManager.save(job);
-
- // Now, start the job, and wait until it completes.
- long startTime = System.currentTimeMillis();
- jobManager.manualStart(job.getID());
- waitJobInactive(jobManager,job.getID(),18000000L);
- System.out.println("Crawl required "+new Long(System.currentTimeMillis()-startTime).toString()+" milliseconds");
-
- // Check to be sure we actually processed the right number of documents.
- JobStatus status = jobManager.getStatus(job.getID());
- // The test data area has 3 documents and one directory, and we have to count the root directory too.
- if (status.getDocumentsProcessed() != 111111)
- throw new ManifoldCFException("Wrong number of documents processed - expected 111111, saw "+new Long(status.getDocumentsProcessed()).toString());
-
- // Now, delete the job.
- jobManager.deleteJob(job.getID());
- waitJobDeleted(jobManager,job.getID(),18000000L);
-
- // Cleanup is automatic by the base class, so we can feel free to leave jobs and connections lying around.
- }
- catch (Exception e)
- {
- e.printStackTrace();
- throw e;
- }
- }
-
- protected void waitJobInactive(IJobManager jobManager, Long jobID, long maxTime)
- throws ManifoldCFException, InterruptedException
- {
- long startTime = System.currentTimeMillis();
- while (System.currentTimeMillis() < startTime + maxTime)
- {
- JobStatus status = jobManager.getStatus(jobID);
- if (status == null)
- throw new ManifoldCFException("No such job: '"+jobID+"'");
- int statusValue = status.getStatus();
- switch (statusValue)
- {
- case JobStatus.JOBSTATUS_NOTYETRUN:
- throw new ManifoldCFException("Job was never started.");
- case JobStatus.JOBSTATUS_COMPLETED:
- break;
- case JobStatus.JOBSTATUS_ERROR:
- throw new ManifoldCFException("Job reports error status: "+status.getErrorText());
- default:
- ManifoldCF.sleep(1000L);
- continue;
- }
- return;
- }
- throw new ManifoldCFException("ManifoldCF did not terminate in the allotted time of "+new Long(maxTime).toString()+" milliseconds");
+ tester.executeTest();
}
-
- protected void waitJobDeleted(IJobManager jobManager, Long jobID, long maxTime)
- throws ManifoldCFException, InterruptedException
- {
- long startTime = System.currentTimeMillis();
- while (System.currentTimeMillis() < startTime + maxTime)
- {
- JobStatus status = jobManager.getStatus(jobID);
- if (status == null)
- return;
- ManifoldCF.sleep(1000L);
- }
- throw new ManifoldCFException("ManifoldCF did not delete in the allotted time of "+new Long(maxTime).toString()+" milliseconds");
- }
-
-
}
Modified: incubator/lcf/trunk/tests/filesystem/src/test/java/org/apache/manifoldcf/filesystem_tests/BigCrawlHSQLDBLT.java
URL: http://svn.apache.org/viewvc/incubator/lcf/trunk/tests/filesystem/src/test/java/org/apache/manifoldcf/filesystem_tests/BigCrawlHSQLDBLT.java?rev=1226141&r1=1226140&r2=1226141&view=diff
==============================================================================
--- incubator/lcf/trunk/tests/filesystem/src/test/java/org/apache/manifoldcf/filesystem_tests/BigCrawlHSQLDBLT.java (original)
+++ incubator/lcf/trunk/tests/filesystem/src/test/java/org/apache/manifoldcf/filesystem_tests/BigCrawlHSQLDBLT.java Sat Dec 31 17:23:35 2011
@@ -18,11 +18,6 @@
*/
package org.apache.manifoldcf.filesystem_tests;
-import org.apache.manifoldcf.core.interfaces.*;
-import org.apache.manifoldcf.agents.interfaces.*;
-import org.apache.manifoldcf.crawler.interfaces.*;
-import org.apache.manifoldcf.crawler.system.ManifoldCF;
-
import java.io.*;
import java.util.*;
import org.junit.*;
@@ -30,211 +25,31 @@ import org.junit.*;
/** This is a very basic sanity check */
public class BigCrawlHSQLDBLT extends BaseHSQLDB
{
+ protected BigCrawlTester tester;
+
+ public BigCrawlHSQLDBLT()
+ {
+ tester = new BigCrawlTester(mcfInstance);
+ }
@Before
- public void createTestArea()
+ public void setupTester()
throws Exception
{
- try
- {
- File f = new File("testdata");
- removeDirectory(f);
- createDirectory(f);
- // Create the test data files.
- String baseFileName = "testdata/";
- int i0 = 0;
- while (i0 < 10)
- {
- String fileName0 = baseFileName + "/dir-" + i0;
- createDirectory(new File(fileName0));
- int i1 = 0;
- while (i1 < 10)
- {
- String fileName1 = fileName0 + "/dir-" + i1;
- createDirectory(new File(fileName1));
- int i2 = 0;
- while (i2 < 10)
- {
- String fileName2 = fileName1 + "/dir-" + i2;
- createDirectory(new File(fileName2));
- int i3 = 0;
- while (i3 < 10)
- {
- String fileName3 = fileName2 + "/dir-" + i3;
- createDirectory(new File(fileName3));
- int i4 = 0;
- while (i4 < 10)
- {
- String fileName4 = fileName3 + "/file-"+i4;
- createFile(new File(fileName4),"Test file "+i0+":"+i1+":"+i2+":"+i3+":"+i4);
- i4++;
- }
- i3++;
- }
- i2++;
- }
- i1++;
- }
- i0++;
- }
- }
- catch (Exception e)
- {
- e.printStackTrace();
- throw e;
- }
- System.out.println("Done generating files");
+ tester.setupTestArea();
}
@After
- public void removeTestArea()
+ public void teardownTester()
throws Exception
{
- System.out.println("Removing generated files");
- try
- {
- File f = new File("testdata");
- removeDirectory(f);
- }
- catch (Exception e)
- {
- e.printStackTrace();
- throw e;
- }
+ tester.teardownTestArea();
}
@Test
public void bigCrawl()
throws Exception
{
- try
- {
- // Hey, we were able to install the file system connector etc.
- // Now, create a local test job and run it.
- IThreadContext tc = ThreadContextFactory.make();
-
- // Create a basic file system connection, and save it.
- IRepositoryConnectionManager mgr = RepositoryConnectionManagerFactory.make(tc);
- IRepositoryConnection conn = mgr.create();
- conn.setName("File Connection");
- conn.setDescription("File Connection");
- conn.setClassName("org.apache.manifoldcf.crawler.connectors.filesystem.FileConnector");
- conn.setMaxConnections(100);
- // Now, save
- mgr.save(conn);
-
- // Create a basic null output connection, and save it.
- IOutputConnectionManager outputMgr = OutputConnectionManagerFactory.make(tc);
- IOutputConnection outputConn = outputMgr.create();
- outputConn.setName("Null Connection");
- outputConn.setDescription("Null Connection");
- outputConn.setClassName("org.apache.manifoldcf.agents.output.nullconnector.NullConnector");
- outputConn.setMaxConnections(100);
- // Now, save
- outputMgr.save(outputConn);
-
- // Create a job.
- IJobManager jobManager = JobManagerFactory.make(tc);
- IJobDescription job = jobManager.createJob();
- job.setDescription("Test Job");
- job.setConnectionName("File Connection");
- job.setOutputConnectionName("Null Connection");
- job.setType(job.TYPE_SPECIFIED);
- job.setStartMethod(job.START_DISABLE);
- job.setHopcountMode(job.HOPCOUNT_NEVERDELETE);
-
- // Now, set up the document specification.
- DocumentSpecification ds = job.getSpecification();
- // Crawl everything underneath the 'testdata' area
- File testDataFile = new File("testdata").getCanonicalFile();
- if (!testDataFile.exists())
- throw new ManifoldCFException("Test data area not found! Looking in "+testDataFile.toString());
- if (!testDataFile.isDirectory())
- throw new ManifoldCFException("Test data area not a directory! Looking in "+testDataFile.toString());
- SpecificationNode sn = new SpecificationNode("startpoint");
- sn.setAttribute("path",testDataFile.toString());
- SpecificationNode n = new SpecificationNode("include");
- n.setAttribute("type","file");
- n.setAttribute("match","*");
- sn.addChild(sn.getChildCount(),n);
- n = new SpecificationNode("include");
- n.setAttribute("type","directory");
- n.setAttribute("match","*");
- sn.addChild(sn.getChildCount(),n);
- ds.addChild(ds.getChildCount(),sn);
-
- // Set up the output specification.
- OutputSpecification os = job.getOutputSpecification();
- // Null output connections have no output specification, so this is a no-op.
-
- // Save the job.
- jobManager.save(job);
-
- // Now, start the job, and wait until it completes.
- long startTime = System.currentTimeMillis();
- jobManager.manualStart(job.getID());
- waitJobInactive(jobManager,job.getID(),18000000L);
- System.out.println("Crawl required "+new Long(System.currentTimeMillis()-startTime).toString()+" milliseconds");
-
- // Check to be sure we actually processed the right number of documents.
- JobStatus status = jobManager.getStatus(job.getID());
- // The test data area has 3 documents and one directory, and we have to count the root directory too.
- if (status.getDocumentsProcessed() != 111111)
- throw new ManifoldCFException("Wrong number of documents processed - expected 111111, saw "+new Long(status.getDocumentsProcessed()).toString());
-
- // Now, delete the job.
- jobManager.deleteJob(job.getID());
- waitJobDeleted(jobManager,job.getID(),18000000L);
-
- // Cleanup is automatic by the base class, so we can feel free to leave jobs and connections lying around.
- }
- catch (Exception e)
- {
- e.printStackTrace();
- throw e;
- }
- }
-
- protected void waitJobInactive(IJobManager jobManager, Long jobID, long maxTime)
- throws ManifoldCFException, InterruptedException
- {
- long startTime = System.currentTimeMillis();
- while (System.currentTimeMillis() < startTime + maxTime)
- {
- JobStatus status = jobManager.getStatus(jobID);
- if (status == null)
- throw new ManifoldCFException("No such job: '"+jobID+"'");
- int statusValue = status.getStatus();
- switch (statusValue)
- {
- case JobStatus.JOBSTATUS_NOTYETRUN:
- throw new ManifoldCFException("Job was never started.");
- case JobStatus.JOBSTATUS_COMPLETED:
- break;
- case JobStatus.JOBSTATUS_ERROR:
- throw new ManifoldCFException("Job reports error status: "+status.getErrorText());
- default:
- ManifoldCF.sleep(1000L);
- continue;
- }
- return;
- }
- throw new ManifoldCFException("ManifoldCF did not terminate in the allotted time of "+new Long(maxTime).toString()+" milliseconds");
+ tester.executeTest();
}
-
- protected void waitJobDeleted(IJobManager jobManager, Long jobID, long maxTime)
- throws ManifoldCFException, InterruptedException
- {
- long startTime = System.currentTimeMillis();
- while (System.currentTimeMillis() < startTime + maxTime)
- {
- JobStatus status = jobManager.getStatus(jobID);
- if (status == null)
- return;
- ManifoldCF.sleep(1000L);
- }
- throw new ManifoldCFException("ManifoldCF did not delete in the allotted time of "+new Long(maxTime).toString()+" milliseconds");
- }
-
-
}