예제 #1
0
  /*
   * Try to query an attribute that doesn't exist
   * Should throw an exception
   */
  @Test(expected = QueryException.class)
  public void testQueryMissingAtt() throws QueryException {
    EntityNode en = new EntityNode("G", _sketch);
    _sketch.addEntity(en);

    QueryNode qn = new QueryNode("TestNode", _view, "");
    qn.setQuery("Select a from G");
  }
예제 #2
0
  /*
   * Creates two queryNodes with the same name and adds them at the same time
   * Not really sure what shoud happen here
   */
  @Test
  public void testDuplicateQueryNameCreation() throws QueryException {
    QueryNode en = new QueryNode("TestNode", _view, "");
    QueryNode en1 = new QueryNode("TestNode", _view, "");

    _view.addEntity(en, en1);

    assertEquals("Names should not be equal", false, en.getName().equals(en1.getName()));
  }
예제 #3
0
  /*
   * This test to see if we can create a simple queryNode with
   * a basic query.
   */
  @Test
  public void testSimpleQuery() throws QueryException {
    EntityNode en = new EntityNode("F", _sketch);
    _sketch.addEntity(en);

    QueryNode qn = new QueryNode("TestNode", _view, "");
    qn.setQuery("Select * from F");
    _view.addEntity(qn);

    assertEquals("We queried F so must be F", "F", qn.getQueriedEntity().getName());
  }
  /** @return */
  public List<Option> getOptions() {
    LinkedList<Option> opts = new LinkedList<Option>();

    // Add the name field
    opts.add(new Option(new JLabel("Name"), name = JUtils.textField(ourNode.getName())));

    // Add the query area
    opts.add(new Option(new JLabel("Query"), query = JUtils.textArea(ourNode.getQuery())));

    return opts;
  }
예제 #5
0
  /*
   * Tries to query an attribute that does exist
   * Should work fine
   */
  @Test
  public void testQueryExistingAtt() throws QueryException {
    EntityNode en = new EntityNode("H", _sketch);
    en.addEntityAttribute(
        new EntityAttribute<SketchFrame, SketchGraphModel, Sketch, EntityNode, SketchEdge>(
            "h", new Int(), en));
    _sketch.addEntity(en);

    QueryNode qn = new QueryNode("TestNode", _view, "");
    qn.setQuery("Select h from H");
    _view.addEntity(qn);

    assertEquals(
        "We only queried h from H so must be h", "h", qn.getEntityAttributes().get(0).getName());
  }
예제 #6
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"));
  }
예제 #7
0
 /*
  * want to test many different malformed queries.
  * For now this is just an example
  *
  */
 @Test(expected = QueryException.class)
 public void testMalformedQuery() throws QueryException {
   QueryNode qn = new QueryNode("TestNode", _view, "");
   qn.setQuery("Selct * from A");
 }
예제 #8
0
 /*
  * Tries to query a non existing entity.
  * This should throw a queryException
  */
 @Test(expected = QueryException.class)
 public void testNonExistingEntityQueried() throws QueryException {
   QueryNode qn = new QueryNode("TestNode", _view, "");
   qn.setQuery("Select * from E");
   _view.addEntity(qn);
 }