/* * XAdES4j - A Java library for generation and verification of XAdES signatures. * Copyright (C) 2012 Luis Goncalves. * * XAdES4j is free software; you can redistribute it and/or modify it under * the terms of the GNU Lesser General Public License as published by the Free * Software Foundation; either version 3 of the License, or any later version. * * XAdES4j is distributed in the hope that it will be useful, but WITHOUT * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more * details. * * You should have received a copy of the GNU Lesser General Public License along * with XAdES4j. If not, see <http://www.gnu.org/licenses/>. */ package xades4j.verification; import xades4j.utils.BuiltIn; import com.google.inject.Inject; import org.junit.Before; import xades4j.properties.QualifyingProperty; import xades4j.properties.data.SigningTimeData; import org.junit.Test; class SigningTimeVerifierThatDependsOnBuiltInVerifier implements QualifyingPropertyVerifier<SigningTimeData> { private final QualifyingPropertyVerifier<SigningTimeData> builtInVerifier; @Inject public SigningTimeVerifierThatDependsOnBuiltInVerifier( @BuiltIn QualifyingPropertyVerifier<SigningTimeData> builtInVerifier) { this.builtInVerifier = builtInVerifier; } @Override public QualifyingProperty verify(SigningTimeData propData, QualifyingPropertyVerificationContext ctx) throws InvalidPropertyException { builtInVerifier.verify(propData, ctx); throw new SigningTimeVerificationException(null, null); } } /** * * @author Luís */ public class OtherVerifierTests extends VerifierTestBase { XadesVerificationProfile mySigsVerificationProfile; @Before public void initialize() { mySigsVerificationProfile = new XadesVerificationProfile(VerifierTestBase.validationProviderMySigs); } @Test(expected = UnsupportedOperationException.class) public void testVerifyBESCustomPropVer() throws Exception { System.out.println("verifyBESCustomPropVer"); mySigsVerificationProfile.withQualifyingPropertyVerifier(SigningTimeData.class, new QualifyingPropertyVerifier<SigningTimeData>() { @Override public QualifyingProperty verify( SigningTimeData propData, QualifyingPropertyVerificationContext ctx) throws InvalidPropertyException { throw new UnsupportedOperationException("Yeah!"); } }); verifySignature("document.signed.bes.xml", mySigsVerificationProfile); } @Test(expected = SigningTimeVerificationException.class) public void testCustomVerifierCanUseBuiltInVerifier() throws Exception { System.out.println("customVerifierCanUseBuiltInVerifier"); mySigsVerificationProfile.withQualifyingPropertyVerifier( SigningTimeData.class, SigningTimeVerifierThatDependsOnBuiltInVerifier.class); verifySignature("document.signed.bes.xml", mySigsVerificationProfile); } }