public static boolean verify(@Nonnull UserModel currentUser, @Nonnull CertificateMetadata edsMetadata) {
        logger.info("Trying to match via user attributes and bin & taxCode...");
        Map<String, List<String>> attrs = currentUser.getAttributes();
        String bin = edsMetadata.getBin(), taxCode = edsMetadata.getTaxCode();
        if (null == bin && null == taxCode) {
            logger.warn("Input bin {} or taxCode {} is null", bin, taxCode);
            return false;
        }
        if (attrs != null && !attrs.isEmpty()) {
            List<String> taxCodeValues = attrs.get(KeycloakAttributes.TAX_CODE);
            List<String> binValues = attrs.get(KeycloakAttributes.BIN);
            logger.info("Trying to match taxCode {} in values {}," +
                    " bin {} in values {}", taxCode, taxCodeValues, bin, binValues);
            boolean isValidTaxCode = null == taxCodeValues ? false : taxCodeValues.contains(taxCode);
            boolean isValidBin = null == binValues ? false : binValues.contains(bin);
            if (isValidBin && isValidTaxCode) {
                return true;
            }
            logger.info("Not matched by this verifier.");
        }
        return false;
    }
@Test
    public void testVerifyValidData() {
        CertificateMetadata metadata = new CertificateMetadata();
        metadata.withBin("BIN_VALUE");
        metadata.withTaxCode("TAX_CODE_VALUE");

        UserModel user = Mockito.mock(UserModel.class);
        HashMap<String, List<String>> attributes = new HashMap<>();
        List<String> taxCodeList = new ArrayList<>();
        taxCodeList.add("TAX_CODE_VALUE");
        attributes.put(KeycloakAttributes.TAX_CODE, taxCodeList);
        List<String> binList = new ArrayList<>();
        binList.add("BIN_VALUE");
        attributes.put(KeycloakAttributes.BIN, binList);
        Mockito.when(user.getAttributes()).thenReturn(attributes);

        var res = CorporateUserVerifierImpl.verify(user, metadata);

        assertThat(res).isTrue();
    }