public void TestVersioningOfJavaDateRangeBehavior()
{
var startDate = GetLocalizedDate(2002, 1, 1, false);
var endDate = GetLocalizedDate(2002, 1, 4, false);
System.Globalization.Calendar calendar = new System.Globalization.GregorianCalendar();
var endDateExpected = new DateTime(2002, 1, 4, 23, 59, 59, 999, calendar);
var qp = new QueryParser(Version.LUCENE_24, "field", new SimpleAnalyzer());
// Don't set any date resolution and verify if DateField is used
AssertDateRangeQueryEquals(qp, "default", startDate, endDate, endDateExpected, null);
// Use dates with dashes in them, which aren't parsed out as dates in Java
AssertDateRangeQueryEquals(qp, "default", "2002-1-1", "2002-1-4", endDateExpected, null);
qp = new QueryParser(Version.LUCENE_CURRENT, "field", new SimpleAnalyzer());
// We still want to make sure that a localized date of "M/d/YYYY" will be parsed out
// as a datefield as expected.
AssertDateRangeQueryEquals(qp, "default", startDate, endDate, endDateExpected, null);
// This should be a normal query, NOT a date query if we're emulating Java (on or above Version LUCENE_30)
AssertQueryEquals(qp, "field", "default:[2002-1-1 TO 2002-1-4]", "default:[2002-1-1 TO 2002-1-4]");
}