test_class.declarator: root = mock(Root.class)
test_class.modifier: private final
test_class.original_string: private final Root root = mock(Root.class);
test_class.type: Root
test_class.var_name: root
test_class.declarator: principalConfigurationMock
test_class.modifier: private
test_class.original_string: private PrincipalConfiguration principalConfigurationMock;
test_class.type: PrincipalConfiguration
test_class.var_name: principalConfigurationMock
test_class.file: oak-security-spi/src/test/java/org/apache/jackrabbit/oak/spi/security/principal/CompositePrincipalConfigurationTest.java
test_class.identifier: CompositePrincipalConfigurationTest
test_class.superclass: extends AbstractCompositeConfigurationTest<PrincipalConfiguration>
test_case.body: @Test
      public void testEmptyGetProvider() {
          PrincipalProvider pp = getComposite().getPrincipalProvider(root, NamePathMapper.DEFAULT);
          assertFalse(pp instanceof CompositePrincipalProvider);
          assertSame(EmptyPrincipalProvider.INSTANCE, pp);
      }
test_case.class_method_signature: CompositePrincipalConfigurationTest.testEmptyGetProvider()
test_case.full_signature: @Test public void testEmptyGetProvider()
test_case.identifier: testEmptyGetProvider
test_case.invocations: getPrincipalProvider getComposite assertFalse assertSame
test_case.modifiers: @Test public
test_case.parameters: ()
test_case.return: void
test_case.signature: void testEmptyGetProvider()
focal_class.file: oak-security-spi/src/main/java/org/apache/jackrabbit/oak/spi/security/principal/CompositePrincipalConfiguration.java
focal_class.identifier: CompositePrincipalConfiguration
focal_class.interfaces: implements PrincipalConfiguration
focal_class.class_method_signature: CompositePrincipalConfiguration.CompositePrincipalConfiguration()
focal_class.full_signature: public  CompositePrincipalConfiguration()
focal_class.identifier: CompositePrincipalConfiguration
focal_class.modifiers: public
focal_class.parameters: ()
focal_class.signature:  CompositePrincipalConfiguration()
focal_class.class_method_signature: CompositePrincipalConfiguration.CompositePrincipalConfiguration(@NotNull SecurityProvider securityProvider)
focal_class.full_signature: public  CompositePrincipalConfiguration(@NotNull SecurityProvider securityProvider)
focal_class.identifier: CompositePrincipalConfiguration
focal_class.modifiers: public
focal_class.parameters: (@NotNull SecurityProvider securityProvider)
focal_class.signature:  CompositePrincipalConfiguration(@NotNull SecurityProvider securityProvider)
focal_class.class_method_signature: CompositePrincipalConfiguration.getPrincipalManager(Root root, NamePathMapper namePathMapper)
focal_class.full_signature: @NotNull @Override public PrincipalManager getPrincipalManager(Root root, NamePathMapper namePathMapper)
focal_class.identifier: getPrincipalManager
focal_class.modifiers: @NotNull @Override public
focal_class.parameters: (Root root, NamePathMapper namePathMapper)
focal_class.return: PrincipalManager
focal_class.signature: PrincipalManager getPrincipalManager(Root root, NamePathMapper namePathMapper)
focal_class.class_method_signature: CompositePrincipalConfiguration.getPrincipalProvider(final Root root, final NamePathMapper namePathMapper)
focal_class.full_signature: @NotNull @Override public PrincipalProvider getPrincipalProvider(final Root root, final NamePathMapper namePathMapper)
focal_class.identifier: getPrincipalProvider
focal_class.modifiers: @NotNull @Override public
focal_class.parameters: (final Root root, final NamePathMapper namePathMapper)
focal_class.return: PrincipalProvider
focal_class.signature: PrincipalProvider getPrincipalProvider(final Root root, final NamePathMapper namePathMapper)
focal_class.superclass: extends CompositeConfiguration<PrincipalConfiguration>
focal_method.body: @NotNull
      @Override
      public PrincipalProvider getPrincipalProvider(final Root root, final NamePathMapper namePathMapper) {
          List<PrincipalConfiguration> configurations = getConfigurations();
          switch (configurations.size()) {
              case 0: return EmptyPrincipalProvider.INSTANCE;
              case 1: return configurations.get(0).getPrincipalProvider(root, namePathMapper);
              default:
                  List<PrincipalProvider> pps = new ArrayList<>(configurations.size());
                  for (PrincipalConfiguration principalConfig : configurations) {
                      PrincipalProvider principalProvider = principalConfig.getPrincipalProvider(root, namePathMapper);
                      if (!(principalProvider instanceof EmptyPrincipalProvider)) {
                          pps.add(principalProvider);
                      }
                  }
                  return CompositePrincipalProvider.of(pps);
          }
      }
focal_method.class_method_signature: CompositePrincipalConfiguration.getPrincipalProvider(final Root root, final NamePathMapper namePathMapper)
focal_method.full_signature: @NotNull @Override public PrincipalProvider getPrincipalProvider(final Root root, final NamePathMapper namePathMapper)
focal_method.identifier: getPrincipalProvider
focal_method.invocations: getConfigurations size getPrincipalProvider get size getPrincipalProvider add of
focal_method.modifiers: @NotNull @Override public
focal_method.parameters: (final Root root, final NamePathMapper namePathMapper)
focal_method.return: PrincipalProvider
focal_method.signature: PrincipalProvider getPrincipalProvider(final Root root, final NamePathMapper namePathMapper)