// Test setting attributes with values that don't conform to their domain @Test(expected = ClassCastException.class) public void testAccessAttributesFailure3() throws GraphIOException { Schema s = GraphIO.loadSchemaFromFile(GenericGraphImplTest.SCHEMAFOLDER + "DefaultValueTestSchema.tg"); Graph g = s.createGraph(ImplementationType.GENERIC); Vertex v = g.createVertex(g.getGraphClass().getVertexClass("TestVertex")); v.setAttribute("stringVertex", 42); }
@Test public void testAccessAttributes() throws GraphIOException { Schema s = GraphIO.loadSchemaFromFile(GenericGraphImplTest.SCHEMAFOLDER + "DefaultValueTestSchema.tg"); Graph g = s.createGraph(ImplementationType.GENERIC); Vertex v = g.createVertex(g.getGraphClass().getVertexClass("TestVertex")); // accessing default values assertEquals(true, v.getAttribute("boolVertex")); assertEquals( JGraLab.vector() .plus(JGraLab.vector().plus(true)) .plus(JGraLab.vector().plus(false)) .plus(JGraLab.vector().plus(true)), v.getAttribute("complexListVertex")); assertEquals( JGraLab.map() .plus(JGraLab.vector().plus(true), JGraLab.set().plus(true)) .plus(JGraLab.vector().plus(false), JGraLab.set().plus(false)), v.getAttribute("complexMapVertex")); assertEquals( JGraLab.set().plus(JGraLab.set().plus(true)).plus(JGraLab.set().plus(false)), v.getAttribute("complexSetVertex")); assertEquals(1.1, v.getAttribute("doubleVertex"), 0.001); assertEquals("FIRST", v.getAttribute("enumVertex")); assertEquals(1, (int) v.getAttribute("intVertex")); assertEquals(JGraLab.vector().plus(true).plus(false).plus(true), v.getAttribute("listVertex")); assertEquals(1l, (long) v.getAttribute("longVertex")); assertEquals( JGraLab.map().plus(1, true).plus(2, false).plus(3, true), v.getAttribute("mapVertex")); assertEquals( RecordImpl.empty() .plus("boolRecord", true) .plus("doubleRecord", 1.1d) .plus("enumRecord", "FIRST") .plus("intRecord", 1) .plus("listRecord", JGraLab.vector().plus(true).plus(false).plus(true)) .plus("longRecord", 1l) .plus("mapRecord", JGraLab.map().plus(1, true).plus(2, false).plus(3, true)) .plus("setRecord", JGraLab.set().plus(true).plus(false)) .plus("stringRecord", "test"), v.getAttribute("recordVertex")); assertEquals(JGraLab.set().plus(true).plus(false), v.getAttribute("setVertex")); assertEquals("test", v.getAttribute("stringVertex")); // changing values v.setAttribute("boolVertex", false); assertEquals(false, v.getAttribute("boolVertex")); v.setAttribute( "complexListVertex", JGraLab.vector().plus(JGraLab.vector().plus(false)).plus(JGraLab.vector().plus(false))); assertEquals( JGraLab.vector().plus(JGraLab.vector().plus(false)).plus(JGraLab.vector().plus(false)), v.getAttribute("complexListVertex")); v.setAttribute( "complexMapVertex", JGraLab.map() .plus(JGraLab.vector().plus(true).plus(false), JGraLab.set().plus(false)) .plus(JGraLab.vector().plus(false).plus(true), JGraLab.set().plus(true))); assertEquals( JGraLab.map() .plus(JGraLab.vector().plus(true).plus(false), JGraLab.set().plus(false)) .plus(JGraLab.vector().plus(false).plus(true), JGraLab.set().plus(true)), v.getAttribute("complexMapVertex")); v.setAttribute("complexSetVertex", JGraLab.set().plus(JGraLab.set().plus(false))); assertEquals(JGraLab.set().plus(JGraLab.set().plus(false)), v.getAttribute("complexSetVertex")); v.setAttribute("doubleVertex", 2.2d); assertEquals(2.2d, v.getAttribute("doubleVertex"), 0.001); v.setAttribute("enumVertex", "SECOND"); assertEquals("SECOND", v.getAttribute("enumVertex")); v.setAttribute("intVertex", 42); assertEquals(42, (int) v.getAttribute("intVertex")); v.setAttribute("listVertex", JGraLab.vector().plus(false).plus(false).plus(true)); assertEquals(JGraLab.vector().plus(false).plus(false).plus(true), v.getAttribute("listVertex")); v.setAttribute("longVertex", 987654321l); assertEquals(987654321l, (long) v.getAttribute("longVertex")); v.setAttribute("mapVertex", JGraLab.map().plus(42, true).plus(24, false)); assertEquals(JGraLab.map().plus(42, true).plus(24, false), v.getAttribute("mapVertex")); v.setAttribute( "recordVertex", RecordImpl.empty() .plus("boolRecord", false) .plus("doubleRecord", 1.3d) .plus("enumRecord", "THIRD") .plus("intRecord", 42) .plus("listRecord", JGraLab.vector().plus(false).plus(true).plus(false)) .plus("longRecord", 987654321l) .plus("mapRecord", JGraLab.map().plus(42, true).plus(24, false)) .plus("setRecord", JGraLab.set().plus(false)) .plus("stringRecord", "more test")); assertEquals( RecordImpl.empty() .plus("boolRecord", false) .plus("doubleRecord", 1.3d) .plus("enumRecord", "THIRD") .plus("intRecord", 42) .plus("listRecord", JGraLab.vector().plus(false).plus(true).plus(false)) .plus("longRecord", 987654321l) .plus("mapRecord", JGraLab.map().plus(42, true).plus(24, false)) .plus("setRecord", JGraLab.set().plus(false)) .plus("stringRecord", "more test"), v.getAttribute("recordVertex")); v.setAttribute("setVertex", JGraLab.set().plus(true)); assertEquals(JGraLab.set().plus(true), v.getAttribute("setVertex")); v.setAttribute("stringVertex", "some String"); assertEquals("some String", v.getAttribute("stringVertex")); }