package eu.europa.esig.dss.validation.executor;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNotNull;
import java.io.FileInputStream;
import java.io.InputStream;
import javax.xml.bind.JAXBContext;
import javax.xml.bind.Unmarshaller;
import org.junit.Test;
import eu.europa.esig.dss.jaxb.diagnostic.DiagnosticData;
import eu.europa.esig.dss.validation.policy.EtsiValidationPolicy;
import eu.europa.esig.dss.validation.policy.rules.Indication;
import eu.europa.esig.dss.validation.policy.rules.SubIndication;
import eu.europa.esig.dss.validation.reports.Reports;
import eu.europa.esig.dss.validation.reports.SimpleReport;
import eu.europa.esig.jaxb.policy.ConstraintsParameters;
public class DSS922Test {
@Test
public void signedDataNotFound() throws Exception {
FileInputStream fis = new FileInputStream("src/test/resources/DSS-922/diag-data.xml");
DiagnosticData diagnosticData = getJAXBObjectFromString(fis, DiagnosticData.class);
assertNotNull(diagnosticData);
CustomProcessExecutor executor = new CustomProcessExecutor();
executor.setDiagnosticData(diagnosticData);
executor.setValidationPolicy(loadPolicy());
executor.setCurrentTime(diagnosticData.getValidationDate());
Reports reports = executor.execute();
SimpleReport simpleReport = reports.getSimpleReport();
assertEquals(Indication.INDETERMINATE, simpleReport.getIndication(simpleReport.getFirstSignatureId()));
assertEquals(SubIndication.NO_POE, simpleReport.getSubIndication(simpleReport.getFirstSignatureId()));
}
private EtsiValidationPolicy loadPolicy() throws Exception {
FileInputStream policyFis = new FileInputStream("src/test/resources/DSS-922/policy.xml");
ConstraintsParameters policyJaxB = getJAXBObjectFromString(policyFis, ConstraintsParameters.class);
assertNotNull(policyJaxB);
return new EtsiValidationPolicy(policyJaxB);
}
@SuppressWarnings("unchecked")
private <T extends Object> T getJAXBObjectFromString(InputStream is, Class<T> clazz) throws Exception {
JAXBContext context = JAXBContext.newInstance(clazz.getPackage().getName());
Unmarshaller unmarshaller = context.createUnmarshaller();
return (T) unmarshaller.unmarshal(is);
}
}