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