### Question:
OIDCAttributeMapperHelper { public static List<String> splitClaimPath(String claimPath) { final LinkedList<String> claimComponents = new LinkedList<>(); Matcher m = CLAIM_COMPONENT.matcher(claimPath); int start = 0; while (m.find()) { claimComponents.add(BACKSLASHED_CHARACTER.matcher(m.group(1)).replaceAll("$1")); start = m.end(); m.region(start, claimPath.length()); } if (claimPath.length() > start) { claimComponents.add(BACKSLASHED_CHARACTER.matcher(claimPath.substring(start)).replaceAll("$1")); } return claimComponents; }  static Object mapAttributeValue(ProtocolMapperModel mappingModel, Object attributeValue); static List<String> splitClaimPath(String claimPath); static void mapClaim(IDToken token, ProtocolMapperModel mappingModel, Object attributeValue); static ProtocolMapperModel createClaimMapper(String name,
                                                        String userAttribute,
                                                        String tokenClaimName, String claimType,
                                                        boolean accessToken, boolean idToken,
                                                        String mapperId); static ProtocolMapperModel createClaimMapper(String name,
                                  String userAttribute,
                                  String tokenClaimName, String claimType,
                                  boolean accessToken, boolean idToken, boolean userinfo,
                                  String mapperId); static boolean includeInIDToken(ProtocolMapperModel mappingModel); static boolean includeInAccessToken(ProtocolMapperModel mappingModel); static boolean isMultivalued(ProtocolMapperModel mappingModel); static boolean includeInUserInfo(ProtocolMapperModel mappingModel); static void addAttributeConfig(List<ProviderConfigProperty> configProperties, Class<? extends ProtocolMapper> protocolMapperClass); static void addTokenClaimNameConfig(List<ProviderConfigProperty> configProperties); static void addJsonTypeConfig(List<ProviderConfigProperty> configProperties); static void addIncludeInTokensConfig(List<ProviderConfigProperty> configProperties, Class<? extends ProtocolMapper> protocolMapperClass); static final String TOKEN_CLAIM_NAME; static final String TOKEN_CLAIM_NAME_LABEL; static final String TOKEN_CLAIM_NAME_TOOLTIP; static final String JSON_TYPE; static final String JSON_TYPE_TOOLTIP; static final String INCLUDE_IN_ACCESS_TOKEN; static final String INCLUDE_IN_ACCESS_TOKEN_LABEL; static final String INCLUDE_IN_ACCESS_TOKEN_HELP_TEXT; static final String INCLUDE_IN_ID_TOKEN; static final String INCLUDE_IN_ID_TOKEN_LABEL; static final String INCLUDE_IN_ID_TOKEN_HELP_TEXT; static final String INCLUDE_IN_USERINFO; static final String INCLUDE_IN_USERINFO_LABEL; static final String INCLUDE_IN_USERINFO_HELP_TEXT; }### Answer:
@Test public void testSplitClaimPath() { assertThat(OIDCAttributeMapperHelper.splitClaimPath(""), Matchers.empty()); assertThat(OIDCAttributeMapperHelper.splitClaimPath("a"), Matchers.contains("a")); assertThat(OIDCAttributeMapperHelper.splitClaimPath("a.b"), Matchers.contains("a", "b")); assertThat(OIDCAttributeMapperHelper.splitClaimPath("a\\.b"), Matchers.contains("a.b")); assertThat(OIDCAttributeMapperHelper.splitClaimPath("a\\\\.b"), Matchers.contains("a\\", "b")); assertThat(OIDCAttributeMapperHelper.splitClaimPath("a\\\\\\.b"), Matchers.contains("a\\.b")); assertThat(OIDCAttributeMapperHelper.splitClaimPath("c.a\\\\.b"), Matchers.contains("c", "a\\", "b")); assertThat(OIDCAttributeMapperHelper.splitClaimPath("c.a\\\\\\.b"), Matchers.contains("c", "a\\.b")); assertThat(OIDCAttributeMapperHelper.splitClaimPath("c\\\\\\.b.a\\\\\\.b"), Matchers.contains("c\\.b", "a\\.b")); assertThat(OIDCAttributeMapperHelper.splitClaimPath("c\\h\\.b.a\\\\\\.b"), Matchers.contains("ch.b", "a\\.b")); }