@Test
public void getChildNodesInLevelOrderReturnsChildNodesInLevelOrder() {

    // given
    var firstLevelNodeDn1 = "first-level-child-1";
    var firstLevelNodeDn2 = "first-level-child-2";
    var secondLevelNodeDn = "second-level-child";
    var rootNode = new LdapUserNode()
            .setDirectReportsDn(List.of(firstLevelNodeDn1, firstLevelNodeDn2));
    var firstLevelNode1 = new LdapUserNode()
            .setDirectReportsDn(List.of(secondLevelNodeDn));
    var firstLevelNode2 = new LdapUserNode();
    var secondLevelNode = new LdapUserNode();
    var dnNodeMap = Map.of(
            firstLevelNodeDn1, firstLevelNode1,
            firstLevelNodeDn2, firstLevelNode2,
            secondLevelNodeDn, secondLevelNode);
    var expectedOrder = List.of(firstLevelNode1, firstLevelNode2, secondLevelNode);
    // when
    var actualOrder = userUpdater.getChildNodesInLevelOrder(rootNode, dnNodeMap);
    // then
    assertThat(actualOrder).containsExactlyElementsOf(expectedOrder);
}