@Override
    public List<Catalogue> sort(List<Catalogue> catalogueTree, SortTypeEnum sortTypeEnum) {
        log.debug("sort catalogue tree based on id. catalogueTree: {}, sortTypeEnum: {}", catalogueTree, sortTypeEnum);
        return recursionSortCatalogues(catalogueTree, sortTypeEnum);
    }
@Test
    public void sortDescTest() {
        SortTypeEnum sortTypeEnum = SortTypeEnum.DESC;
        List<Catalogue> catalogueTree = Lists.newArrayList();
        Catalogue catalogue = new Catalogue();
        catalogue.setId(1);

        Catalogue catalogue11 = new Catalogue();
        catalogue11.setId(2);
        Catalogue catalogue12 = new Catalogue();
        catalogue12.setId(3);
        catalogue.setChildren(Lists.newArrayList(catalogue12, catalogue11));

        Catalogue catalogue2 = new Catalogue();
        catalogue2.setId(4);

        Catalogue catalogue21 = new Catalogue();
        catalogue21.setId(7);
        Catalogue catalogue22 = new Catalogue();
        catalogue22.setId(6);
        catalogue2.setChildren(Lists.newArrayList(catalogue21, catalogue22));

        catalogueTree.add(catalogue2);
        catalogueTree.add(catalogue);

        /*
        input:
        -- 4
            -- 7
            -- 6
        -- 1
            -- 3
            -- 2

        output:
        -- 4
            -- 7
            -- 6
        -- 1
            -- 3
            -- 2
         */
        List<Catalogue> resultList = catalogueTreeSortDefaultStrategyTest.sort(catalogueTree, sortTypeEnum);
        List<Integer> resultIdList = CategoryTreeSortStrategyTestUtils.breadthTraverse(resultList);
        assertEquals(Lists.newArrayList(4, 1, 7, 6, 3, 2), resultIdList);
    }