/* * 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"); }
/* * 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())); }
/* * 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; }
/* * 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()); }
/* * 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")); }
/* * 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"); }
/* * 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); }