use of org.joda.time.format.DateTimeFormatter in project ddf by codice.
the class TestCswSource method testAbsoluteTemporalSearchTwoRanges.
@Test
public void testAbsoluteTemporalSearchTwoRanges() throws JAXBException, UnsupportedQueryException, DatatypeConfigurationException, SAXException, IOException, SecurityServiceException {
// Setup
String expectedXml = "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?>\r\n" + "<GetRecords resultType=\"results\" outputFormat=\"application/xml\"\r\n" + " outputSchema=\"http://www.opengis.net/cat/csw/2.0.2\" startPosition=\"1\"\r\n" + " maxRecords=\"10\" service=\"CSW\" version=\"2.0.2\"" + " xmlns=\"http://www.opengis.net/cat/csw/2.0.2\"" + " xmlns:csw=\"http://www.opengis.net/cat/csw/2.0.2\"" + " xmlns:ogc=\"http://www.opengis.net/ogc\">\r\n" + " <Query typeNames=\"csw:Record\">\r\n" + " <ElementSetName>full</ElementSetName>\r\n" + " <Constraint version=\"1.1.0\">\r\n" + " <ogc:Filter>\r\n" + " <ogc:Or>\r\n" + " <ogc:PropertyIsBetween>\r\n" + " <ogc:PropertyName>effective</ogc:PropertyName>\r\n" + " <ogc:LowerBoundary>\r\n" + " <ogc:Literal>START1_DATE_TIME</ogc:Literal>\r\n" + " </ogc:LowerBoundary>\r\n" + " <ogc:UpperBoundary>\r\n" + " <ogc:Literal>END1_DATE_TIME</ogc:Literal>\r\n" + " </ogc:UpperBoundary>\r\n" + " </ogc:PropertyIsBetween>\r\n" + " <ogc:PropertyIsBetween>\r\n" + " <ogc:PropertyName>effective</ogc:PropertyName>\r\n" + " <ogc:LowerBoundary>\r\n" + " <ogc:Literal>START2_DATE_TIME</ogc:Literal>\r\n" + " </ogc:LowerBoundary>\r\n" + " <ogc:UpperBoundary>\r\n" + " <ogc:Literal>END2_DATE_TIME</ogc:Literal>\r\n" + " </ogc:UpperBoundary>\r\n" + " </ogc:PropertyIsBetween>\r\n" + " </ogc:Or>\r\n" + " </ogc:Filter>\r\n" + " </Constraint>\r\n" + " </Query>\r\n" + "</GetRecords>\r\n";
final int pageSize = 10;
final int numRecordsReturned = 1;
final long numRecordsMatched = 10;
setupMockContextForMetacardTypeRegistrationAndUnregistration(getDefaultContentTypes());
try {
configureMockCsw(numRecordsReturned, numRecordsMatched, CswConstants.VERSION_2_0_2);
} catch (CswException e) {
fail("Could not configure Mock Remote CSW: " + e.getMessage());
}
DateTime startDate = new DateTime(2012, 5, 1, 0, 0, 0, 0);
DateTime endDate = new DateTime(2012, 12, 31, 0, 0, 0, 0);
DateTime startDate2 = new DateTime(2013, 5, 1, 0, 0, 0, 0);
DateTime endDate2 = new DateTime(2013, 12, 31, 0, 0, 0, 0);
DateTimeFormatter fmt = ISODateTimeFormat.dateTime();
// Load the expected start and end date time into the excepted result
// XML
expectedXml = expectedXml.replace("START1_DATE_TIME", fmt.print(startDate));
expectedXml = expectedXml.replace("END1_DATE_TIME", fmt.print(endDate));
expectedXml = expectedXml.replace("START2_DATE_TIME", fmt.print(startDate2));
expectedXml = expectedXml.replace("END2_DATE_TIME", fmt.print(endDate2));
// Single absolute time range to search across
FilterFactory filterFactory = new FilterFactoryImpl();
Filter temporalFilter1 = builder.attribute(Metacard.EFFECTIVE).is().during().dates(startDate.toDate(), endDate.toDate());
Filter temporalFilter2 = builder.attribute(Metacard.EFFECTIVE).is().during().dates(startDate2.toDate(), endDate2.toDate());
Filter temporalFilter = filterFactory.or(temporalFilter1, temporalFilter2);
QueryImpl temporalQuery = new QueryImpl(temporalFilter);
temporalQuery.setPageSize(pageSize);
AbstractCswSource cswSource = getCswSource(mockCsw, mockContext);
cswSource.setCswUrl(URL);
cswSource.setId(ID);
// Perform test
cswSource.query(new QueryRequestImpl(temporalQuery));
// Verify
ArgumentCaptor<GetRecordsType> captor = ArgumentCaptor.forClass(GetRecordsType.class);
try {
verify(mockCsw, atLeastOnce()).getRecords(captor.capture());
} catch (CswException e) {
fail("Could not verify Mock CSW record count " + e.getMessage());
}
GetRecordsType getRecordsType = captor.getValue();
String xml = getGetRecordsTypeAsXml(getRecordsType);
Diff xmlDiff = new Diff(expectedXml, xml);
if (!xmlDiff.similar()) {
LOGGER.error("Unexpected XML request sent");
LOGGER.error("Expected: {}", expectedXml);
LOGGER.error("Actual: {}", xml);
}
assertXMLEqual(expectedXml, xml);
}
use of org.joda.time.format.DateTimeFormatter in project ddf by codice.
the class TestCswFilterDelegate method testDuringAlteredModifiedDateMapping.
@Test
public void testDuringAlteredModifiedDateMapping() throws JAXBException, SAXException, IOException {
String replacedTemporalProperty = "myModifiedDate";
CswSourceConfiguration cswSourceConfiguration = initCswSourceConfiguration(CswAxisOrder.LAT_LON, false, CswConstants.CSW_TYPE, effectiveDateMapping, createdDateMapping, replacedTemporalProperty, CswConstants.CSW_IDENTIFIER);
CswFilterDelegate localCswFilterDelegate = createCswFilterDelegate(cswSourceConfiguration);
String xml = getXmlProperty(localCswFilterDelegate, propertyNameModified, BETWEEN, testStartDate.toCalendar(null).getTime(), testEndDate.toCalendar(null).getTime());
DateTimeFormatter fmt = ISODateTimeFormat.dateTime();
String startDateStr = fmt.print(testStartDate);
String endDateStr = fmt.print(testEndDate);
String testResponse = duringXml.replace(REPLACE_START_DATE, startDateStr).replace(REPLACE_END_DATE, endDateStr).replace(REPLACE_TEMPORAL_PROPERTY, replacedTemporalProperty);
assertXMLEqual(testResponse, xml);
}
use of org.joda.time.format.DateTimeFormatter in project dhis2-core by dhis2.
the class AbstractCalendar method formattedIsoDate.
@Override
public String formattedIsoDate(DateTimeUnit dateTimeUnit) {
dateTimeUnit = toIso(dateTimeUnit);
DateTime dateTime = dateTimeUnit.toJodaDateTime();
DateTimeFormatter format = DateTimeFormat.forPattern(getDateFormat());
return format.print(dateTime);
}
use of org.joda.time.format.DateTimeFormatter in project dhis2-core by dhis2.
the class AbstractCalendar method toIso.
@Override
public DateTimeUnit toIso(String date) {
DateTimeFormatter format = DateTimeFormat.forPattern(getDateFormat());
DateTime dateTime = format.parseDateTime(date);
return toIso(DateTimeUnit.fromJodaDateTime(dateTime));
}
use of org.joda.time.format.DateTimeFormatter in project drill by apache.
the class JodaDateValidatorTest method parseDateFromPostgres.
private DateTime parseDateFromPostgres(String date, String pattern) {
String jodaFormat = toJodaFormat(pattern);
DateTimeFormatter format = forPattern(jodaFormat);
return parse(date, format).withZoneRetainFields(DateTimeZone.UTC);
}
Aggregations