pack.getEClassifiers().add(perm1);
pack.getEClassifiers().add(perm2);
pack.getEClassifiers().add(perm3);
ICategoryManager manager = CategoryManager.getInstance();
manager.addCategory("q1", perm1);
assertEquals(true, manager.hasCategory("q1", perm1));
manager.addCategory("q2", perm2);
assertEquals(false, manager.hasCategory("q1", perm2));
manager.addCategory("q3", perm3);
List<String> cats = manager.getCategories(pack);
assertEquals(cats.size(), 3);
manager.addCategory("q3", perm2);
cats = manager.getCategories(pack);
assertEquals(cats.size(), 3);
manager.addCategory("q32", perm2);
cats = manager.getCategories(pack);
assertEquals(cats.size(), 4);
assertEquals(true, manager.hasCategory("q32", perm2));
assertEquals(true, manager.hasCategory("q2", perm2));
cats = manager.getCategories(perm2);
assertEquals(true, cats.contains("q32"));
assertEquals(true, cats.contains("q2"));
assertEquals(cats.size(), 3);
manager.removeCategory("q32", perm2);
cats = manager.getCategories(perm2);
assertEquals(false, cats.contains("q32"));
assertEquals(cats.size(), 2);
cats = manager.getCategories(pack);
assertEquals(cats.size(), 3);
manager.removeCategory("q3", pack);
cats = manager.getCategories(pack);
assertEquals(cats.size(), 2);
cats = manager.getCategories(perm2);
assertEquals(cats.size(), 1);
cats = manager.getCategories(perm3);
assertEquals(cats.size(), 0);
manager.addCategory("q3", perm2);
cats = manager.getCategories(pack);
assertEquals(cats.size(), 3);
manager.removeCategory("q3", perm2);
cats = manager.getCategories(pack);
assertEquals(cats.size(), 2);
assertEquals(false,manager.isValidCategory(")(*******"));
assertEquals(true,manager.isValidCategory("aaa"));
assertEquals(true,manager.isValidCategory(""));
}