@Test public void testSelectFuncDependency() { QueryTree queryTree = new QueryTree(); TableInfo tableInfo = new TableInfo(); tableInfo.setName(TABLE_NAME); tableInfo.setColumns(columnSet); Set<TableInfo> tableInfoSet = new HashSet<TableInfo>(); tableInfoSet.add(tableInfo); // Only equals condition will create functional dependency SelectCondition sc1 = new SelectCondition(TABLE_NAME, FOREIGN_KEY_COLUMN, FuncDependencies.EQUALS_OPERATION, "0"); SelectCondition sc2 = new SelectCondition(TABLE_NAME, KEY1, FuncDependencies.EQUALS_OPERATION + "<", "0"); queryTree.getSelectConditions().add(sc1); queryTree.getSelectConditions().add(sc2); FuncDependencies funcDep = new FuncDependencies(queryTree, tableInfoSet); Set<String> det = new HashSet<String>(); Set<String> dep = new HashSet<String>( Arrays.asList(Utility.formatColumnName(TABLE_NAME, FOREIGN_KEY_COLUMN))); Set<FuncDep> expected = new HashSet<FuncDep>(); expected.add(new FuncDep(det, dep)); checkFunctionalDependencies(expected, funcDep.funcDeps); }