package org.bouncycastle.asn1.test;
import java.util.Date;
import org.bouncycastle.asn1.DERGeneralizedTime;
import org.bouncycastle.asn1.cmc.BodyPartID;
import org.bouncycastle.asn1.cmc.CMCFailInfo;
import org.bouncycastle.asn1.cmc.CMCStatus;
import org.bouncycastle.asn1.cmc.CMCStatusInfo;
import org.bouncycastle.asn1.cmc.CMCStatusInfoBuilder;
import org.bouncycastle.asn1.cmc.PendInfo;
import org.bouncycastle.util.Strings;
import org.bouncycastle.util.test.SimpleTest;
public class CMCStatusInfoTest
extends SimpleTest
{
public static void main(String[] args)
{
runTest(new CMCStatusInfoTest());
}
public String getName()
{
return "CMCStatusInfoTest";
}
public void performTest()
throws Exception
{
{
CMCStatusInfoBuilder bldr =
new CMCStatusInfoBuilder(CMCStatus.confirmRequired, new BodyPartID(10));
CMCStatusInfo cmsInfo = bldr.build();
isTrue("Has statusString", null == cmsInfo.getStatusString());
isEquals("Has other info", false, cmsInfo.hasOtherInfo());
byte[] b = cmsInfo.getEncoded();
CMCStatusInfo res = CMCStatusInfo.getInstance(b);
isEquals("CMCStatus with no optional part",cmsInfo, res);
isEquals("Has other info", false, res.hasOtherInfo());
}
{
CMCStatusInfoBuilder bldr =
new CMCStatusInfoBuilder(CMCStatus.confirmRequired, new BodyPartID(10)).setStatusString("Cats");
CMCStatusInfo cmsInfo = bldr.build();
isEquals("Has other info", false, cmsInfo.hasOtherInfo());
byte[] b = cmsInfo.getEncoded();
CMCStatusInfo res = CMCStatusInfo.getInstance(b);
isEquals("CMCStatus with no optional part",cmsInfo, res);
isEquals("Has other info", false, res.hasOtherInfo());
}
{
CMCStatusInfoBuilder bldr =
new CMCStatusInfoBuilder(CMCStatus.confirmRequired, new BodyPartID(10))
.setStatusString("Cats")
.setOtherInfo(new PendInfo(Strings.toByteArray("fish"), new DERGeneralizedTime(new Date())));
CMCStatusInfo cmsInfo = bldr.build();
isEquals("Must have other info", true, cmsInfo.hasOtherInfo());
isEquals("Other is NOT fail info", false, cmsInfo.getOtherInfo().isFailInfo());
byte[] b = cmsInfo.getEncoded();
CMCStatusInfo res = CMCStatusInfo.getInstance(b);
isEquals("With optional info: PendInfo",cmsInfo, res);
isEquals("Must have other info", true, res.hasOtherInfo());
isEquals("Other is NOT fail info", false, res.getOtherInfo().isFailInfo());
}
{
CMCStatusInfoBuilder bldr =
new CMCStatusInfoBuilder(CMCStatus.confirmRequired, new BodyPartID(10))
.setStatusString("Cats")
.setOtherInfo(CMCFailInfo.authDataFail);
CMCStatusInfo cmsInfo = bldr.build();
isEquals("Must have other info", true, cmsInfo.hasOtherInfo());
isEquals("Other is fail info", true, cmsInfo.getOtherInfo().isFailInfo());
byte[] b = cmsInfo.getEncoded();
CMCStatusInfo res = CMCStatusInfo.getInstance(b);
isEquals("With optional info: CMCFailInfo",cmsInfo, res);
isEquals("Must have other info", true, res.hasOtherInfo());
isEquals("Other is fail info", true, res.getOtherInfo().isFailInfo());
}
}
}