Beispiel #1
0
  @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);
  }