public TestIdentityProvider(@NotNull String idpName) {
this.idpName = idpName;
addGroup(new TestGroup("aa", getName()));
addGroup(new TestGroup("aaa", getName()));
addGroup(new TestGroup("a", getName()).withGroups("aa", "aaa"));
addGroup(new TestGroup("b", getName()).withGroups("a"));
addGroup(new TestGroup("c", getName()));
addGroup(new TestGroup("secondGroup", getName()));
addGroup(new TestGroup("_gr_u_", getName()));
addGroup(new TestGroup("g%r%", getName()));
addUser(new TestUser(ID_TEST_USER, getName())
.withProperty("name", "Test User")
.withProperty("profile/name", "Public Name")
.withProperty("profile/age", 72)
.withProperty("email", "test@testuser.com")
.withGroups("a", "b", "c")
);
addUser(new TestUser(ID_SECOND_USER, getName())
.withProperty("profile/name", "Second User")
.withProperty("age", 24)
.withProperty("col", ImmutableList.of("v1", "v2", "v3"))
.withProperty("boolArr", new Boolean[]{true, false})
.withProperty("charArr", new char[]{'t', 'o', 'b'})
.withProperty("byteArr", new byte[0])
.withGroups("secondGroup"));
addUser(new TestUser(ID_WILDCARD_USER, getName())
.withGroups("_gr_u_", "g%r%"));
}