fn test_count_all()

in rust-create-cascade/src/main.rs [1096:1163]


    fn test_count_all() {
        let env = TestEnv::new();
        let issuer = env.add_issuer();
        for _ in 1..=86 {
            env.add_serial(&issuer);
        }
        for _ in 1..=75 {
            env.add_revoked_serial(&issuer, Reason::Unspecified);
        }
        for _ in 1..=30 {
            env.add_revoked_serial(&issuer, Reason::KeyCompromise);
        }
        for _ in 1..=9 {
            env.add_revoked_serial(&issuer, Reason::PrivilegeWithdrawn);
        }

        let stats = count_all(&env.revoked_dir(), &env.known_dir(), ReasonSet::All, None);
        assert_eq!(stats.approx_ok_count, 86);
        assert_eq!(stats.exact_revoked_count, 75 + 30 + 9);
        assert_eq!(stats.reasons.unspecified, 75);
        assert_eq!(stats.reasons.key_compromise, 30);
        assert_eq!(stats.reasons.ca_compromise, 0);
        assert_eq!(stats.reasons.affiliation_changed, 0);
        assert_eq!(stats.reasons.superseded, 0);
        assert_eq!(stats.reasons.cessation_of_operation, 0);
        assert_eq!(stats.reasons.certificate_hold, 0);
        assert_eq!(stats.reasons.remove_from_crl, 0);
        assert_eq!(stats.reasons.privilege_withdrawn, 9);
        assert_eq!(stats.reasons.aa_compromise, 0);

        let stats = count_all(
            &env.revoked_dir(),
            &env.known_dir(),
            ReasonSet::Specified,
            None,
        );
        assert_eq!(stats.approx_ok_count, 86 + 75);
        assert_eq!(stats.exact_revoked_count, 30 + 9);
        assert_eq!(stats.reasons.unspecified, 0);
        assert_eq!(stats.reasons.key_compromise, 30);
        assert_eq!(stats.reasons.ca_compromise, 0);
        assert_eq!(stats.reasons.affiliation_changed, 0);
        assert_eq!(stats.reasons.superseded, 0);
        assert_eq!(stats.reasons.cessation_of_operation, 0);
        assert_eq!(stats.reasons.certificate_hold, 0);
        assert_eq!(stats.reasons.remove_from_crl, 0);
        assert_eq!(stats.reasons.privilege_withdrawn, 9);
        assert_eq!(stats.reasons.aa_compromise, 0);

        let stats = count_all(
            &env.revoked_dir(),
            &env.known_dir(),
            ReasonSet::Priority,
            None,
        );
        assert_eq!(stats.approx_ok_count, 86 + 75);
        assert_eq!(stats.exact_revoked_count, 30 + 9);
        assert_eq!(stats.reasons.unspecified, 0);
        assert_eq!(stats.reasons.key_compromise, 30);
        assert_eq!(stats.reasons.ca_compromise, 0);
        assert_eq!(stats.reasons.affiliation_changed, 0);
        assert_eq!(stats.reasons.superseded, 0);
        assert_eq!(stats.reasons.cessation_of_operation, 0);
        assert_eq!(stats.reasons.certificate_hold, 0);
        assert_eq!(stats.reasons.remove_from_crl, 0);
        assert_eq!(stats.reasons.privilege_withdrawn, 9);
        assert_eq!(stats.reasons.aa_compromise, 0);
    }