package eu.europa.esig.dss.validation.process.bbb.isc;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNotNull;
import java.io.FileInputStream;
import java.util.List;
import org.junit.Test;
import eu.europa.esig.dss.jaxb.detailedreport.XmlConstraint;
import eu.europa.esig.dss.jaxb.detailedreport.XmlISC;
import eu.europa.esig.dss.jaxb.detailedreport.XmlStatus;
import eu.europa.esig.dss.jaxb.diagnostic.DiagnosticData;
import eu.europa.esig.dss.jaxb.diagnostic.XmlSignature;
import eu.europa.esig.dss.jaxb.diagnostic.XmlSigningCertificate;
import eu.europa.esig.dss.validation.process.bbb.LoadPolicyUtils;
import eu.europa.esig.dss.validation.process.bbb.isc.checks.SigningCertificateRecognitionCheck;
import eu.europa.esig.dss.validation.reports.wrapper.SignatureWrapper;
import eu.europa.esig.jaxb.policy.Level;
import eu.europa.esig.jaxb.policy.LevelConstraint;
public class SigningCertificateRecognitionCheckTest {
@Test
public void signingCertificateRecognitionCheck() throws Exception {
FileInputStream fis = new FileInputStream("src/test/resources/it.xml");
DiagnosticData diagnosticData = LoadPolicyUtils.getJAXBObjectFromString(fis, DiagnosticData.class,
"/xsd/DiagnosticData.xsd");
assertNotNull(diagnosticData);
XmlSigningCertificate xsc = new XmlSigningCertificate();
xsc.setAttributePresent(true);
xsc.setDigestValueMatch(true);
xsc.setDigestValuePresent(true);
xsc.setIssuerSerialMatch(true);
xsc.setId("79513A7C5EFA8B43C0042CAAA132226FFD959EA9AA9B9331A5BF3F6383381DBC");
XmlSignature sig = new XmlSignature();
sig.setSigningCertificate(xsc);
LevelConstraint constraint = new LevelConstraint();
constraint.setLevel(Level.FAIL);
eu.europa.esig.dss.validation.reports.wrapper.DiagnosticData wrapper = new eu.europa.esig.dss.validation.reports.wrapper.DiagnosticData(
diagnosticData);
XmlISC result = new XmlISC();
SigningCertificateRecognitionCheck scrc = new SigningCertificateRecognitionCheck(result,
new SignatureWrapper(sig), wrapper, constraint);
scrc.execute();
List<XmlConstraint> constraints = result.getConstraint();
assertEquals(1, constraints.size());
assertEquals(XmlStatus.OK, constraints.get(0).getStatus());
}
}