You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucene.apache.org by jd...@apache.org on 2012/11/09 18:17:54 UTC
svn commit: r1407547 - in
/lucene/dev/trunk/solr/contrib/dataimporthandler/src/test/org/apache/solr/handler/dataimport:
AbstractDIHJdbcTestCase.java TestSqlEntityProcessorDelta.java
Author: jdyer
Date: Fri Nov 9 17:17:54 2012
New Revision: 1407547
URL: http://svn.apache.org/viewvc?rev=1407547&view=rev
Log:
SOLR-3856: Improve tests for SqlEntityProcessor
Modified:
lucene/dev/trunk/solr/contrib/dataimporthandler/src/test/org/apache/solr/handler/dataimport/AbstractDIHJdbcTestCase.java
lucene/dev/trunk/solr/contrib/dataimporthandler/src/test/org/apache/solr/handler/dataimport/TestSqlEntityProcessorDelta.java
Modified: lucene/dev/trunk/solr/contrib/dataimporthandler/src/test/org/apache/solr/handler/dataimport/AbstractDIHJdbcTestCase.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/solr/contrib/dataimporthandler/src/test/org/apache/solr/handler/dataimport/AbstractDIHJdbcTestCase.java?rev=1407547&r1=1407546&r2=1407547&view=diff
==============================================================================
--- lucene/dev/trunk/solr/contrib/dataimporthandler/src/test/org/apache/solr/handler/dataimport/AbstractDIHJdbcTestCase.java (original)
+++ lucene/dev/trunk/solr/contrib/dataimporthandler/src/test/org/apache/solr/handler/dataimport/AbstractDIHJdbcTestCase.java Fri Nov 9 17:17:54 2012
@@ -37,7 +37,7 @@ import org.junit.AfterClass;
import org.junit.Before;
import org.junit.BeforeClass;
/**
- * This sets up an in-memory Derby Sql database with a little sample data.
+ * This sets up an in-memory Sql database with a little sample data.
*/
public abstract class AbstractDIHJdbcTestCase extends AbstractDataImportHandlerTestCase {
//Start with "true" so the first test run will populate the data.
@@ -99,14 +99,20 @@ public abstract class AbstractDIHJdbcTes
}
protected void singleEntity(int numToExpect) throws Exception {
h.query("/dataimport", generateRequest());
- assertQ(req("*:*"), "//*[@numFound='" + totalPeople() + "']");
- Assert.assertTrue(totalDatabaseRequests() == numToExpect);
+ assertQ("There should be 1 document per person in the database: "
+ + totalPeople(), req("*:*"), "//*[@numFound='" + totalPeople() + "']");
+ Assert.assertTrue("Expecting " + numToExpect
+ + " database calls, but DIH reported " + totalDatabaseRequests(),
+ totalDatabaseRequests() == numToExpect);
}
protected void simpleTransform(int numToExpect) throws Exception {
rootTransformerName = "AddAColumnTransformer";
h.query("/dataimport", generateRequest());
- assertQ(req("AddAColumn_s:Added"), "//*[@numFound='" + totalPeople() + "']");
- Assert.assertTrue(totalDatabaseRequests() == numToExpect);
+ assertQ("There should be 1 document with a transformer-added column per person is the database: "
+ + totalPeople(), req("AddAColumn_s:Added"), "//*[@numFound='" + totalPeople() + "']");
+ Assert.assertTrue("Expecting " + numToExpect
+ + " database calls, but DIH reported " + totalDatabaseRequests(),
+ totalDatabaseRequests() == numToExpect);
}
/**
* A delta update will not clean up documents added by a transformer
@@ -116,16 +122,19 @@ public abstract class AbstractDIHJdbcTes
protected void complexTransform(int numToExpect, int numDeleted) throws Exception {
rootTransformerName = "TripleThreatTransformer";
h.query("/dataimport", generateRequest());
- assertQ(req("q", "*:*", "rows", "" + (totalPeople() * 3), "sort", "id asc"), "//*[@numFound='" + ((totalPeople() * 3) + (numDeleted * 2)) + "']");
- assertQ(req("id:TripleThreat-1-*"), "//*[@numFound='" + (totalPeople() + numDeleted) + "']");
- assertQ(req("id:TripleThreat-2-*"), "//*[@numFound='" + (totalPeople() + numDeleted) + "']");
- if(personNameExists("Michael") && countryCodeExists("NR") && countryCodeExists("RN"))
+ int totalDocs = ((totalPeople() * 3) + (numDeleted * 2));
+ int totalAddedDocs = (totalPeople() + numDeleted);
+ assertQ(req("q", "*:*", "rows", "" + (totalPeople() * 3), "sort", "id asc"), "//*[@numFound='" + totalDocs + "']");
+ assertQ(req("id:TripleThreat-1-*"), "//*[@numFound='" + totalAddedDocs + "']");
+ assertQ(req("id:TripleThreat-2-*"), "//*[@numFound='" + totalAddedDocs + "']");
+ if(personNameExists("Michael") && countryCodeExists("NR"))
{
assertQ(
+ "Michael and NR are assured to be in the database. Therefore the transformer should have added leahciM and RN on the same document as id:TripleThreat-1-3",
req("+id:TripleThreat-1-3 +NAME_mult_s:Michael +NAME_mult_s:leahciM +COUNTRY_CODES_mult_s:NR +COUNTRY_CODES_mult_s:RN"),
"//*[@numFound='1']");
}
- assertQ(req("AddAColumn_s:Added"), "//*[@numFound='" + (totalPeople() + numDeleted) + "']");
+ assertQ(req("AddAColumn_s:Added"), "//*[@numFound='" + totalAddedDocs + "']");
Assert.assertTrue("Expecting " + numToExpect
+ " database calls, but DIH reported " + totalDatabaseRequests(),
totalDatabaseRequests() == numToExpect);
@@ -177,9 +186,11 @@ public abstract class AbstractDIHJdbcTes
}
h.query("/dataimport", generateRequest());
- assertQ(req("*:*"), "//*[@numFound='" + (totalPeople()) + "']");
+ assertQ("There should be 1 document per person in the database: "
+ + totalPeople(), req("*:*"), "//*[@numFound='" + (totalPeople()) + "']");
if(!underlyingDataModified && "AddAColumnTransformer".equals(rootTransformerName)) {
- assertQ(req("AddAColumn_s:Added"), "//*[@numFound='" + (totalPeople()) + "']");
+ assertQ("There should be 1 document with a transformer-added column per person is the database: "
+ + totalPeople(), req("AddAColumn_s:Added"), "//*[@numFound='" + (totalPeople()) + "']");
}
if(countryEntity) {
if(personNameExists("Jayden"))
Modified: lucene/dev/trunk/solr/contrib/dataimporthandler/src/test/org/apache/solr/handler/dataimport/TestSqlEntityProcessorDelta.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/solr/contrib/dataimporthandler/src/test/org/apache/solr/handler/dataimport/TestSqlEntityProcessorDelta.java?rev=1407547&r1=1407546&r2=1407547&view=diff
==============================================================================
--- lucene/dev/trunk/solr/contrib/dataimporthandler/src/test/org/apache/solr/handler/dataimport/TestSqlEntityProcessorDelta.java (original)
+++ lucene/dev/trunk/solr/contrib/dataimporthandler/src/test/org/apache/solr/handler/dataimport/TestSqlEntityProcessorDelta.java Fri Nov 9 17:17:54 2012
@@ -1,6 +1,11 @@
package org.apache.solr.handler.dataimport;
+import java.text.SimpleDateFormat;
+import java.util.Date;
+import java.util.Locale;
+
import org.apache.solr.request.LocalSolrQueryRequest;
+import org.junit.Assume;
import org.junit.Before;
import org.junit.Ignore;
import org.junit.Test;
@@ -25,13 +30,20 @@ import org.junit.Test;
/**
* Test with various combinations of parameters, child entites, transformers.
*/
-@Ignore("Investigate failures on Policeman Jenkins Linux")
public class TestSqlEntityProcessorDelta extends AbstractDIHJdbcTestCase {
private boolean delta = false;
private boolean useParentDeltaQueryParam = false;
private IntChanges personChanges = null;
private String[] countryChanges = null;
+ //TODO: remove this on fixing SOLR-4051 / SOLR-1916
+ private void assumeIncomaptibleLocale() {
+ Date d = new Date();
+ String badDateFormat = DataImporter.DATE_TIME_FORMAT.get().format(d);
+ String betterDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss", Locale.ROOT).format(d);
+ Assume.assumeTrue(badDateFormat.equals(betterDateFormat));
+ }
+
@Before
public void setupDeltaTest() {
delta = false;
@@ -40,6 +52,7 @@ public class TestSqlEntityProcessorDelta
}
@Test
public void testSingleEntity() throws Exception {
+ assumeIncomaptibleLocale();
singleEntity(1);
changeStuff();
int c = calculateDatabaseCalls();
@@ -48,6 +61,7 @@ public class TestSqlEntityProcessorDelta
}
@Test
public void testWithSimpleTransformer() throws Exception {
+ assumeIncomaptibleLocale();
simpleTransform(1);
changeStuff();
simpleTransform(calculateDatabaseCalls());
@@ -55,6 +69,7 @@ public class TestSqlEntityProcessorDelta
}
@Test
public void testWithComplexTransformer() throws Exception {
+ assumeIncomaptibleLocale();
complexTransform(1, 0);
changeStuff();
complexTransform(calculateDatabaseCalls(), personChanges.deletedKeys.length);
@@ -62,6 +77,7 @@ public class TestSqlEntityProcessorDelta
}
@Test
public void testChildEntities() throws Exception {
+ assumeIncomaptibleLocale();
useParentDeltaQueryParam = random().nextBoolean();
withChildEntities(false, true);
changeStuff();