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"));
});
}
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"));
});
}
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"));
}
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"));
});
}
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))));
}
Aggregations