private static void generateLevel1TestSuite(Map<String, DPermission> permissionsMap, String suiteName, FileWriter fileWriter) throws IOException {
        Set<String> dbSet = PermissionType.getPermissionTypes();

        fileWriter.append(String.format("<testsuite name=\"%s\" >\n", suiteName.toUpperCase()));

        for (PermissionTypeBlock rootElement : PermissionTypeBlock.values()) {
            if (rootElement == PermissionTypeBlock.SETTINGS) {
                continue; //skip just settings
            }

            fileWriter.append(String.format("<testsuite name=\"%s\" >\n", rootElement.toString()));

            for (PermissionTypeGroup group : rootElement.getGroups()) {
                for (GlobalPermission permission : rootElement.getHeaders()) {
                    String permName = group + "_" + permission;
                    //check if it is in the list of permissions
                    if (dbSet.contains(permName)) {
                        DPermission p = permissionsMap.get(permName);
                        if (p != null) {
                            fileWriter.append(generateTestCase(p, suiteName));
                            if (TransactionDocumentList.all.contains(permName)) {
                                //add one more test case but with different name
                                p.setName(p.copy().getName().replace("_READ", "_PRINT"));
                                fileWriter.append(generateTestCase(p, suiteName));
                            }
                        } else {
                            fileWriter.append(generateTestCase(permName, suiteName));
                        }
                    }
                }
            }

            fileWriter.append(String.format("</testsuite>\n"));

        }

        fileWriter.append(String.format("</testsuite>\n"));
    }