示例#1
0
  /*
   * Adds two entities to sketch and an edge between them
   * queries both and adds them one at a time to see if the
   * edge is added between them
   */
  @Test
  public void testAutoAddEdge() throws QueryException {
    EntityNode en1 = new EntityNode("C", _sketch);
    EntityNode en2 = new EntityNode("D", _sketch);
    _sketch.addEntity(en1, en2);

    NormalEdge sk = new NormalEdge(en1, en2, "e");
    _sketch.addEdge(sk);

    QueryNode qn1 = new QueryNode("v_C", _view, "Select * from C");
    QueryNode qn2 = new QueryNode("v_D", _view, "Select * from D");

    _view.addEntity(qn1);

    assertEquals(
        "Only one node added so should be no edge", false, _view.getEdges().containsKey("e"));

    _view.addEntity(qn2);

    assertEquals(
        "Both nodes added so should be edge in between them called edge",
        true,
        _view.getEdges().containsKey("e"));
  }
示例#2
0
  /*
   * Creates two EntityNodes, an edge between them, queries them both
   * and then renames everything.
   */
  @Test
  public void testModelNameChanges() throws QueryException {
    EntityNode en = new EntityNode("oldK", _sketch);
    EntityNode en1 = new EntityNode("oldL", _sketch);
    _sketch.addEntity(en, en1);

    NormalEdge sk = new NormalEdge(en, en1, "old");
    _sketch.addEdge(sk);

    QueryNode qn = new QueryNode("v_K", _view, "Select * from oldK");
    QueryNode qn1 = new QueryNode("v_L", _view, "Select * from oldL");
    _view.addEntity(qn, qn1);

    assertEquals("Edge name in view should be old", true, _view.getEdges().containsKey("old"));

    sk.setName("new");
    en.setName("newK");
    en1.setName("newL");

    assertEquals("Queried Node in v_K should be newK", "newK", qn.getQueriedEntity().getName());
    assertEquals("Queried Node in v_L should be newL", "newL", qn1.getQueriedEntity().getName());
    assertEquals(
        "Edge name in view should have changed to new", true, _view.getEdges().containsKey("new"));
  }