Search in sources :

Example 6 with CswQueryBuilder

use of org.codice.ddf.itests.common.csw.CswQueryBuilder in project ddf by codice.

the class TestCatalogValidation method testFilterPluginErrorsOnly.

@Test
public void testFilterPluginErrorsOnly() throws Exception {
    //Configure not enforcing validators so invalid metacards can ingest
    configureEnforcedMetacardValidators(Collections.singletonList(""), getAdminConfig());
    ingestXmlFromResourceAndWait(XML_RECORD_RESOURCE_PATH + "/sampleErrorMetacard.xml");
    ingestXmlFromResourceAndWait(XML_RECORD_RESOURCE_PATH + "/sampleCleanMetacard.xml");
    ingestXmlFromResourceAndWait(XML_RECORD_RESOURCE_PATH + "/sampleWarningMetacard.xml");
    // Configure invalid filtering
    configureMetacardValidityFilterPlugin(Arrays.asList("invalid-state=system-admin"), getAdminConfig());
    //Configure to filter metacards with validation errors but not validation warnings
    configureFilterInvalidMetacards("true", "false", getAdminConfig());
    testWithRetry(() -> {
        String query = new CswQueryBuilder().addAttributeFilter(PROPERTY_IS_LIKE, "AnyText", "*").getQuery();
        ValidatableResponse response = given().header(HttpHeaders.CONTENT_TYPE, MediaType.APPLICATION_XML).body(query).post(CSW_PATH.getUrl()).then();
        //clean metacard should be in results but not invalid one
        response.body(not(containsString("error metacard")));
        response.body(containsString("clean metacard"));
        response.body(containsString("warning metacard"));
    });
}
Also used : ValidatableResponse(com.jayway.restassured.response.ValidatableResponse) CswQueryBuilder(org.codice.ddf.itests.common.csw.CswQueryBuilder) CoreMatchers.containsString(org.hamcrest.CoreMatchers.containsString) AbstractIntegrationTest(org.codice.ddf.itests.common.AbstractIntegrationTest) Test(org.junit.Test)

Example 7 with CswQueryBuilder

use of org.codice.ddf.itests.common.csw.CswQueryBuilder in project ddf by codice.

the class TestCatalogValidation method testFilterPluginNoFiltering.

@Test
public void testFilterPluginNoFiltering() throws Exception {
    //Configure not enforcing validators so invalid metacards can ingest
    configureEnforcedMetacardValidators(Collections.singletonList(""), getAdminConfig());
    ingestXmlFromResourceAndWait(XML_RECORD_RESOURCE_PATH + "/sampleErrorMetacard.xml");
    ingestXmlFromResourceAndWait(XML_RECORD_RESOURCE_PATH + "/sampleCleanMetacard.xml");
    ingestXmlFromResourceAndWait(XML_RECORD_RESOURCE_PATH + "/sampleWarningMetacard.xml");
    // Configure invalid filtering
    configureMetacardValidityFilterPlugin(Arrays.asList("invalid-state=system-admin"), getAdminConfig());
    testWithRetry(() -> {
        String query = new CswQueryBuilder().addAttributeFilter(PROPERTY_IS_LIKE, "AnyText", "*").getQuery();
        ValidatableResponse response = given().header(HttpHeaders.CONTENT_TYPE, MediaType.APPLICATION_XML).body(query).post(CSW_PATH.getUrl()).then();
        //clean metacard should be in results but not invalid one
        response.body(containsString("error metacard"));
        response.body(containsString("warning metacard"));
        response.body(containsString("clean metacard"));
    });
}
Also used : ValidatableResponse(com.jayway.restassured.response.ValidatableResponse) CswQueryBuilder(org.codice.ddf.itests.common.csw.CswQueryBuilder) CoreMatchers.containsString(org.hamcrest.CoreMatchers.containsString) AbstractIntegrationTest(org.codice.ddf.itests.common.AbstractIntegrationTest) Test(org.junit.Test)

Example 8 with CswQueryBuilder

use of org.codice.ddf.itests.common.csw.CswQueryBuilder in project ddf by codice.

the class TestCatalogValidation method testQueryByWarningFailedValidators.

@Test
public void testQueryByWarningFailedValidators() throws Exception {
    //Don't enforce the validator, so that it will be marked but ingested
    configureEnforcedMetacardValidators(Collections.singletonList(""), getAdminConfig());
    ingestXmlFromResourceAndWait(XML_RECORD_RESOURCE_PATH + "/sampleWarningMetacard.xml");
    ingestXmlFromResourceAndWait(XML_RECORD_RESOURCE_PATH + "/sampleCleanMetacard.xml");
    ingestXmlFromResourceAndWait(XML_RECORD_RESOURCE_PATH + "/sampleErrorMetacard.xml");
    String query = new CswQueryBuilder().addAttributeFilter(PROPERTY_IS_LIKE, Validation.FAILED_VALIDATORS_WARNINGS, "sample-validator").getQuery();
    ValidatableResponse response = given().header(HttpHeaders.CONTENT_TYPE, MediaType.APPLICATION_XML).body(query).post(CSW_PATH.getUrl()).then();
    //clean metacard and warning metacard should be in results but not error one
    response.body(not(containsString("error metacard")));
    response.body(not(containsString("clean metacard")));
    response.body(containsString("warning metacard"));
}
Also used : ValidatableResponse(com.jayway.restassured.response.ValidatableResponse) CswQueryBuilder(org.codice.ddf.itests.common.csw.CswQueryBuilder) CoreMatchers.containsString(org.hamcrest.CoreMatchers.containsString) AbstractIntegrationTest(org.codice.ddf.itests.common.AbstractIntegrationTest) Test(org.junit.Test)

Example 9 with CswQueryBuilder

use of org.codice.ddf.itests.common.csw.CswQueryBuilder in project ddf by codice.

the class TestCatalogValidation method testFilterPluginWarningsAndErrors.

@Test
public void testFilterPluginWarningsAndErrors() throws Exception {
    //Configure not enforcing validators so invalid metacards can ingest
    configureEnforcedMetacardValidators(Collections.singletonList(""), getAdminConfig());
    ingestXmlFromResourceAndWait(XML_RECORD_RESOURCE_PATH + "/sampleErrorMetacard.xml");
    ingestXmlFromResourceAndWait(XML_RECORD_RESOURCE_PATH + "/sampleCleanMetacard.xml");
    ingestXmlFromResourceAndWait(XML_RECORD_RESOURCE_PATH + "/sampleWarningMetacard.xml");
    // Configure invalid filtering
    configureMetacardValidityFilterPlugin(Arrays.asList("invalid-state=system-admin"), getAdminConfig());
    //configure to filter both metacards with validation errors and validation warnings
    configureFilterInvalidMetacards("true", "true", getAdminConfig());
    testWithRetry(() -> {
        String query = new CswQueryBuilder().addAttributeFilter(PROPERTY_IS_LIKE, "AnyText", "*").getQuery();
        ValidatableResponse response = given().header(HttpHeaders.CONTENT_TYPE, MediaType.APPLICATION_XML).body(query).post(CSW_PATH.getUrl()).then();
        //clean metacard should be in results but not invalid one
        response.body(not(containsString("error metacard")));
        response.body(not(containsString("warning metacard")));
        response.body(containsString("clean metacard"));
    });
}
Also used : ValidatableResponse(com.jayway.restassured.response.ValidatableResponse) CswQueryBuilder(org.codice.ddf.itests.common.csw.CswQueryBuilder) CoreMatchers.containsString(org.hamcrest.CoreMatchers.containsString) AbstractIntegrationTest(org.codice.ddf.itests.common.AbstractIntegrationTest) Test(org.junit.Test)

Example 10 with CswQueryBuilder

use of org.codice.ddf.itests.common.csw.CswQueryBuilder in project ddf by codice.

the class TestCatalogValidation method testValidationChecker.

@Test
public void testValidationChecker() throws Exception {
    configureEnforcedMetacardValidators(Arrays.asList(""), getAdminConfig());
    String id1 = ingestXmlFromResourceAndWait("/metacard1.xml");
    String id2 = ingestXmlFromResourceAndWait("/metacard2.xml");
    configureShowInvalidMetacards("true", "true", getAdminConfig());
    // Search for all entries, implicit "validation-warnings is null" and "validation-errors is null"
    // should get added by ValidationQueryFactory
    String query = new CswQueryBuilder().addAttributeFilter(PROPERTY_IS_LIKE, "AnyText", "*").getQuery();
    ValidatableResponse response = given().header(HttpHeaders.CONTENT_TYPE, MediaType.APPLICATION_XML).body(query).post(CSW_PATH.getUrl()).then();
    // Assert Metacard1 is in results AND Metacard2 because showInvalidMetacards is true
    response.body(hasXPath(format("/GetRecordsResponse/SearchResults/Record[identifier=\"%s\"]", id1)));
    response.body((hasXPath(format("/GetRecordsResponse/SearchResults/Record[identifier=\"%s\"]", id2))));
    // Search for all entries that have no validation warnings or errors
    query = new CswQueryBuilder().addPropertyIsNullAttributeFilter(Validation.VALIDATION_WARNINGS).getQuery();
    response = given().header(HttpHeaders.CONTENT_TYPE, MediaType.APPLICATION_XML).body(query).post(CSW_PATH.getUrl()).then();
    // Assert Metacard1 is in results AND not Metacard2
    response.body(hasXPath(format("/GetRecordsResponse/SearchResults/Record[identifier=\"%s\"]", id1)));
    response.body(not(hasXPath(format("/GetRecordsResponse/SearchResults/Record[identifier=\"%s\"]", id2))));
    //Search for all entries that have validation-warnings from sample-validator or no validation warnings
    query = new CswQueryBuilder().addAttributeFilter(PROPERTY_IS_EQUAL_TO, Validation.VALIDATION_WARNINGS, "*").addPropertyIsNullAttributeFilter(Validation.VALIDATION_WARNINGS).addLogicalOperator(OR).getQuery();
    response = given().header(HttpHeaders.CONTENT_TYPE, MediaType.APPLICATION_XML).body(query).post(CSW_PATH.getUrl()).then();
    // Assert Metacard1 and NOT metacard2 is in results
    response.body(hasXPath(format("/GetRecordsResponse/SearchResults/Record[identifier=\"%s\"]", id1)));
    response.body(not(hasXPath(format("/GetRecordsResponse/SearchResults/Record[identifier=\"%s\"]", id2))));
    // Search for all metacards that have validation-warnings
    query = new CswQueryBuilder().addAttributeFilter(PROPERTY_IS_EQUAL_TO, Validation.VALIDATION_WARNINGS, "*").getQuery();
    response = given().header(HttpHeaders.CONTENT_TYPE, MediaType.APPLICATION_XML).body(query).post(CSW_PATH.getUrl()).then();
    // Assert Metacard1 and metacard2 are NOT in results
    response.body(not(hasXPath(format("/GetRecordsResponse/SearchResults/Record[identifier=\"%s\"]", id1))));
    response.body(not(hasXPath(format("/GetRecordsResponse/SearchResults/Record[identifier=\"%s\"]", id2))));
}
Also used : ValidatableResponse(com.jayway.restassured.response.ValidatableResponse) CswQueryBuilder(org.codice.ddf.itests.common.csw.CswQueryBuilder) CoreMatchers.containsString(org.hamcrest.CoreMatchers.containsString) AbstractIntegrationTest(org.codice.ddf.itests.common.AbstractIntegrationTest) Test(org.junit.Test)

Aggregations

CswQueryBuilder (org.codice.ddf.itests.common.csw.CswQueryBuilder)17 ValidatableResponse (com.jayway.restassured.response.ValidatableResponse)16 AbstractIntegrationTest (org.codice.ddf.itests.common.AbstractIntegrationTest)15 Test (org.junit.Test)15 CoreMatchers.containsString (org.hamcrest.CoreMatchers.containsString)14 Hashtable (java.util.Hashtable)1 SkipUnstableTest (org.codice.ddf.itests.common.annotations.SkipUnstableTest)1 Matcher (org.hamcrest.Matcher)1 Matchers.containsString (org.hamcrest.Matchers.containsString)1 Configuration (org.osgi.service.cm.Configuration)1