public static Stream<Arguments> getTestParameters() throws IOException {
        return Stream.of(
            /* Test case #1
             * Use CN for principal ID
             */
            arguments(
                new ClassPathResource("x509-ctop-resolver-hizzy.crt").getFile().getCanonicalPath(),
                "$CN",
                "Hizzogarthington I.S. Pleakinsense"
            ),

            /* Test case #2
             * Use email address for principal ID
             */
            arguments(
                new ClassPathResource("x509-ctop-resolver-hizzy.crt").getFile().getCanonicalPath(),
                "$EMAILADDRESS",
                "hizzy@vt.edu"
            ),

            /* Test case #2
             * Use combination of ou and cn for principal ID
             */
            arguments(
                new ClassPathResource("x509-ctop-resolver-hizzy.crt").getFile().getCanonicalPath(),
                "$OU $CN",
                "Middleware Hizzogarthington I.S. Pleakinsense"
            ),

            /* Test case #3
             * Use combination of serial number and cn for principal ID
             */
            arguments(
                new ClassPathResource("x509-ctop-resolver-gazzo.crt").getFile().getCanonicalPath(),
                "$CN:$SERIALNUMBER",
                "Gazzaloddi P. Wishwashington:271828183"
            ),

            /* Test case #4
             * Build principal ID from multivalued attributes
             */
            arguments(
                new ClassPathResource("x509-ctop-resolver-jacky.crt").getFile().getCanonicalPath(),
                "$UID@$DC.$DC",
                "jacky@vt.edu"
            )
        );
    }
Gets the unit test parameters.

@return Test parameter data.
support/cas-server-support-x509-core/src/test/java/org/apereo/cas/adaptors/x509/authentication/principal/X509SubjectPrincipalResolverTests.java