@Test
    void testUsernameWildcardQuery() {
        val attributeSources = new ArrayList<PersonAttributeDao>();

        var complexSourceOne = new ComplexPersonAttributeDao();
        val backingMapOne = new HashMap<String, Map<String, List<Object>>>();

        val loHomeAttrs = new HashMap<String, List<Object>>();
        loHomeAttrs.put("username", List.of("lo-home"));
        loHomeAttrs.put("givenName", List.of("Home"));
        loHomeAttrs.put("familyName", List.of("Layout Owner"));
        backingMapOne.put("lo-home", loHomeAttrs);

        val loWelcomeAttrs = new HashMap<String, List<Object>>();
        loWelcomeAttrs.put("username", List.of("lo-welcome"));
        loWelcomeAttrs.put("givenName", List.of("Welcome"));
        loWelcomeAttrs.put("familyName", List.of("Layout Owner"));
        backingMapOne.put("lo-welcome", loWelcomeAttrs);

        complexSourceOne.setBackingMap(backingMapOne);
        attributeSources.add(complexSourceOne);

        var complexSourceTwo = new ComplexPersonAttributeDao();
        val backingMapTwo = new HashMap<String, Map<String, List<Object>>>();

        val edalquistAttrs = new HashMap<String, List<Object>>();
        edalquistAttrs.put("username", List.of("edalquist"));
        edalquistAttrs.put("givenName", List.of("Eric"));
        edalquistAttrs.put("familyName", List.of("Dalquist"));
        backingMapTwo.put("edalquist", edalquistAttrs);

        val jshomeAttrs = new HashMap<String, List<Object>>();
        jshomeAttrs.put("username", List.of("jshome"));
        jshomeAttrs.put("givenName", List.of("Joe"));
        jshomeAttrs.put("familyName", List.of("Shome"));
        backingMapTwo.put("jshome", jshomeAttrs);

        complexSourceTwo.setBackingMap(backingMapTwo);
        attributeSources.add(complexSourceTwo);


        var impl = new MergingPersonAttributeDaoImpl();
        impl.setPersonAttributeDaos(attributeSources);

        var layoutOwners = impl.getPeople(Map.of("username", "lo-*"));

        val expectedLayoutOwners = new HashSet<PersonAttributes>();
        expectedLayoutOwners.add(new SimplePersonAttributes("lo-welcome", loWelcomeAttrs));
        expectedLayoutOwners.add(new SimplePersonAttributes("lo-home", loHomeAttrs));

        assertEquals(expectedLayoutOwners, layoutOwners);

        var homeUsers = impl.getPeople(Map.of("username", "*home"));
        val expectedHomeUsers = new HashSet<PersonAttributes>();
        expectedHomeUsers.add(new SimplePersonAttributes("jshome", jshomeAttrs));
        expectedHomeUsers.add(new SimplePersonAttributes("lo-home", loHomeAttrs));

        assertEquals(expectedHomeUsers, homeUsers);
    }
Testcase for {@link StubPersonAttributeDao}.

@author Misagh Moayyed
@since 7.1.0
core/cas-server-core-authentication-api/src/test/java/org/apereo/cas/authentication/attribute/MergingPersonAttributeDaoImplTests.java