public void TestInjectRefereneValue_NoInjection_GetPolicyValue_AssertException()
        {
            var    field  = new AuthorityInfoAccessExtentionField(true);
            Action action = () => field.GetPolicyValue();

            action.ShouldThrow <InvalidOperationException>();
        }
        public void TestInjectRefereneValue_AiaDoesNotExist_Required_AssertException()
        {

            var cert = new X509Certificate2(@"resources/certs/altNameOnly.der");
            var field = new AuthorityInfoAccessExtentionField(true);
            Action action = () => field.InjectReferenceValue(cert);
            action.ShouldThrow<PolicyRequiredException>();
        }
        public void TestInjectRefereneValue_AiaDoesNotExist_NotRequired_AssertValueEmpty()
        {

            var cert = new X509Certificate2(@"resources/certs/altNameOnly.der");
            var field = new AuthorityInfoAccessExtentionField(false);
            field.InjectReferenceValue(cert);
            field.GetPolicyValue().GetPolicyValue().Should().BeEmpty();
        }
        public void TestInjectRefereneValue_AiaDoesNotExist_Required_AssertException()
        {
            var    cert   = new X509Certificate2(@"resources/certs/altNameOnly.der");
            var    field  = new AuthorityInfoAccessExtentionField(true);
            Action action = () => field.InjectReferenceValue(cert);

            action.ShouldThrow <PolicyRequiredException>();
        }
        public void TestInjectRefereneValue_AiaDoesNotExist_NotRequired_AssertValueEmpty()
        {
            var cert  = new X509Certificate2(@"resources/certs/altNameOnly.der");
            var field = new AuthorityInfoAccessExtentionField(false);

            field.InjectReferenceValue(cert);
            field.GetPolicyValue().GetPolicyValue().Should().BeEmpty();
        }
        public void TestInjectRefereneValue_AiaExists_AssertValue()
        {

            var cert = new X509Certificate2(@"resources/certs/CernerDirectProviderCA.der");
            var field = new AuthorityInfoAccessExtentionField(false);
            field.InjectReferenceValue(cert);
            field.GetPolicyValue().GetPolicyValue().Should().NotBeEmpty();

            IList<String> usages = field.GetPolicyValue().GetPolicyValue();
            usages.Should()
                .Contain(AuthorityInfoAccessMethodIdentifier.OCSP.Name + ":" + "http://ca.cerner.com/OCSP");
            usages.Should().Contain(AuthorityInfoAccessMethodIdentifier.CA_ISSUERS.Name + ":" + "http://ca.cerner.com/public/root.der");

        }
        public void TestInjectRefereneValue_AiaExists_AssertValue()
        {
            var cert  = new X509Certificate2(@"resources/certs/CernerDirectProviderCA.der");
            var field = new AuthorityInfoAccessExtentionField(false);

            field.InjectReferenceValue(cert);
            field.GetPolicyValue().GetPolicyValue().Should().NotBeEmpty();

            IList <String> usages = field.GetPolicyValue().GetPolicyValue();

            usages.Should()
            .Contain(AuthorityInfoAccessMethodIdentifier.OCSP.Name + ":" + "http://ca.cerner.com/OCSP");
            usages.Should().Contain(AuthorityInfoAccessMethodIdentifier.CA_ISSUERS.Name + ":" + "http://ca.cerner.com/public/root.der");
        }
 public void TestInjectRefereneValue_NoInjection_GetPolicyValue_AssertException()
 {
     var field = new AuthorityInfoAccessExtentionField(true);
     Action action = () => field.GetPolicyValue();
     action.ShouldThrow<InvalidOperationException>();
 }