package gov.nist.registry.ws.sq.test.findDocuments;
import gov.nist.registry.common2.registry.Metadata;
import gov.nist.registry.common2.registry.MetadataSupport;
import gov.nist.registry.common2.registry.RegistryResponse;
import gov.nist.registry.common2.registry.Response;
import gov.nist.registry.common2.registry.storedquery.SqParams;
import gov.nist.registry.common2.registry.storedquery.StoredQuerySupport;
import gov.nist.registry.ws.configurations.ebxmlrr21.Ebxmlrr21StoredQueryFactory;
import gov.nist.registry.ws.sq.StoredQueryFactory;
import gov.nist.registry.ws.sq.test.TestBase;
import gov.nist.registry.ws.sq.test.testdata.FindDocsTestData;
import gov.nist.registry.ws.sq.test.testdata.TestLogSupport;
import org.testng.annotations.Test;
public class BasicFindDocuments extends TestBase {
TestLogSupport testdata;
public BasicFindDocuments() throws Exception {
super();
testdata = new FindDocsTestData();
}
@Test
public void basicObjectRefQuery() throws Exception {
StoredQuerySupport sqs = new StoredQuerySupport(this , log);
SqParams params = new SqParams();
sqs.params = params;
sqs.return_leaf_class = false;
params.addStringParm("$XDSDocumentEntryPatientId", testdata.getPatientId());
params.addListParm("$XDSDocumentEntryStatus", MetadataSupport.status_type_namespace + "Approved");
log.addOtherParam("Patient ID", testdata.getPatientId());
// implementation specific factory
Ebxmlrr21StoredQueryFactory eFact = new Ebxmlrr21StoredQueryFactory(params, new RegistryResponse(Response.version_3),log);
Metadata results =eFact.FindDocuments(sqs);
log.addOtherParam("results size", String.valueOf(results.getObjectRefs().size()));
log.addOtherParam("Ids", results.getObjectIds(results.getObjectRefs()).toString());
assert sqs.has_validation_errors == false;
assert results.getObjectRefs().size() == 2;
assert results.getExtrinsicObjects().size() == 0;
assert results.getRegistryPackages().size() == 0;
assert results.getAssociations().size() == 0;
}
@Test
public void basicLeafClassQuery() throws Exception {
StoredQuerySupport sqs = new StoredQuerySupport(this , log);
SqParams params = new SqParams();
sqs.params = params;
sqs.return_leaf_class = true;
params.addStringParm("$XDSDocumentEntryPatientId", testdata.getPatientId());
params.addListParm("$XDSDocumentEntryStatus", MetadataSupport.status_type_namespace + "Approved");
// implementation specific factory
Ebxmlrr21StoredQueryFactory eFact = new Ebxmlrr21StoredQueryFactory(params, new RegistryResponse(Response.version_3),log);
eFact.setQueryId(MetadataSupport.SQ_FindDocuments);
// generic factory
StoredQueryFactory sqFact = eFact.buildStoredQueryHandler(sqs);
Metadata results = sqFact.run();
log.addOtherParam("results size", String.valueOf(results.getExtrinsicObjects().size()));
log.addOtherParam("Ids", results.getObjectIds(results.getExtrinsicObjects()).toString());
assert sqs.has_validation_errors == false;
assert results.getExtrinsicObjects().size() == 2;
assert results.getRegistryPackages().size() == 0;
assert results.getAssociations().size() == 0;
}
}