Search in sources :

Example 81 with DateTimeFormatter

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);
}
Also used : Diff(org.custommonkey.xmlunit.Diff) CswException(org.codice.ddf.spatial.ogc.csw.catalog.common.CswException) GetRecordsType(net.opengis.cat.csw.v_2_0_2.GetRecordsType) Matchers.anyString(org.mockito.Matchers.anyString) DateTime(org.joda.time.DateTime) FilterFactory(org.opengis.filter.FilterFactory) QueryImpl(ddf.catalog.operation.impl.QueryImpl) Filter(org.opengis.filter.Filter) QueryRequestImpl(ddf.catalog.operation.impl.QueryRequestImpl) FilterFactoryImpl(org.geotools.filter.FilterFactoryImpl) DateTimeFormatter(org.joda.time.format.DateTimeFormatter) Test(org.junit.Test)

Example 82 with DateTimeFormatter

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);
}
Also used : CswSourceConfiguration(org.codice.ddf.spatial.ogc.csw.catalog.common.CswSourceConfiguration) DateTimeFormatter(org.joda.time.format.DateTimeFormatter) Test(org.junit.Test)

Example 83 with DateTimeFormatter

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);
}
Also used : DateTimeFormatter(org.joda.time.format.DateTimeFormatter) DateTime(org.joda.time.DateTime)

Example 84 with DateTimeFormatter

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));
}
Also used : DateTimeFormatter(org.joda.time.format.DateTimeFormatter) DateTime(org.joda.time.DateTime)

Example 85 with DateTimeFormatter

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);
}
Also used : DateTimeFormatter(org.joda.time.format.DateTimeFormatter)

Aggregations

DateTimeFormatter (org.joda.time.format.DateTimeFormatter)209 DateTime (org.joda.time.DateTime)95 Date (java.util.Date)40 Test (org.junit.Test)25 DateTimeZone (org.joda.time.DateTimeZone)19 ArrayList (java.util.ArrayList)16 HashMap (java.util.HashMap)16 SolrInputDocument (org.apache.solr.common.SolrInputDocument)12 IndexSchema (org.apache.solr.schema.IndexSchema)12 DateTimeFormatterBuilder (org.joda.time.format.DateTimeFormatterBuilder)12 CswSourceConfiguration (org.codice.ddf.spatial.ogc.csw.catalog.common.CswSourceConfiguration)10 IOException (java.io.IOException)9 Calendar (java.util.Calendar)8 Map (java.util.Map)8 DatasetConfigDTO (com.linkedin.thirdeye.datalayer.dto.DatasetConfigDTO)7 FormatDateTimeFormatter (org.elasticsearch.common.joda.FormatDateTimeFormatter)7 Test (org.testng.annotations.Test)7 TimeSpec (com.linkedin.thirdeye.api.TimeSpec)6 FilterType (net.opengis.filter.v_1_1_0.FilterType)6 Deployment (org.activiti.engine.test.Deployment)6