public static Filter<Member> parseMemberFilter(String providerFilter) {
        if (providerFilter == null) {
            return AlwaysApplyFilter.newInstance();
        }
        providerFilter = providerFilter.trim();
        if (providerFilter.startsWith(HAS_ATTRIBUTE_PREFIX)) {
            providerFilter = providerFilter.substring(HAS_ATTRIBUTE_PREFIX.length());
            providerFilter = providerFilter.trim();
            return new MemberAttributeFilter(providerFilter);
        } else if (providerFilter.isEmpty()) {
            return AlwaysApplyFilter.newInstance();
        } else {
            throw new IllegalArgumentException("Unknown provider filter: " + providerFilter);
        }
    }
@Test
    public void givenMemberAttributeFilterIsUsed_whenMemberAttributeIsNotPresent_thenFilterDoesNotMatch() {
        Filter<Member> memberFilter = MemberProviderFilterParser.parseMemberFilter("HAS_ATTRIBUTE:foo");
        Map<String, String> attributes = Map.of(
                "bar", "other"
        );
        Member mockMember = createMockMemberWithAttributes(attributes);
        assertFalse(memberFilter.accept(mockMember));
    }