X-Git-Url: https://gerrit.simantics.org/r/gitweb?a=blobdiff_plain;f=org.simantics.district.selection%2Fsrc%2Forg%2Fsimantics%2Fdistrict%2Fselection%2FElementSelectorTest.java;fp=org.simantics.district.selection%2Fsrc%2Forg%2Fsimantics%2Fdistrict%2Fselection%2FElementSelectorTest.java;h=9dc771ad069642f8f52a594b1c385740c361454d;hb=09b78f5c26bb8b521beb6eeeb5c3f44ac1aa4d07;hp=0000000000000000000000000000000000000000;hpb=ca6eef9623e3369fe3d6fa7570e1ebd77d30bc34;p=simantics%2Fdistrict.git diff --git a/org.simantics.district.selection/src/org/simantics/district/selection/ElementSelectorTest.java b/org.simantics.district.selection/src/org/simantics/district/selection/ElementSelectorTest.java new file mode 100644 index 00000000..9dc771ad --- /dev/null +++ b/org.simantics.district.selection/src/org/simantics/district/selection/ElementSelectorTest.java @@ -0,0 +1,283 @@ +package org.simantics.district.selection; + +//import static org.junit.Assert.*; +// +//import org.eclipse.core.runtime.NullProgressMonitor; +//import org.junit.AfterClass; +//import org.junit.Before; +//import org.junit.BeforeClass; +//import org.junit.Test; +//import org.simantics.Simantics; +//import org.simantics.db.Resource; +//import org.simantics.db.WriteGraph; +//import org.simantics.db.common.request.WriteRequest; +//import org.simantics.db.exception.DatabaseException; +//import org.simantics.db.testing.common.AcornTests; +//import org.simantics.layer0.Layer0; +// +//public class ElementSelectorTest { +// +// Resource selection; +// Resource generator; +// Resource selector; +// +// @Before +// public void setUp() throws DatabaseException { +// Simantics.sync(new WriteRequest() { +// @Override +// public void perform(WriteGraph graph) throws DatabaseException { +// Layer0 L0 = Layer0.getInstance(graph); +// ElementSelectionResource ES = ElementSelectionResource.getInstance(graph); +// +// selection = graph.newResource(); +// graph.claim(selection, L0.InstanceOf, ES.Selection); +// graph.claimLiteral(selection, L0.HasLabel, L0.String, "My Selection"); +// generator = graph.newResource(); +// graph.claim(selection, ES.Selection_HasGenerator, generator); +// selector = graph.newResource(); +// graph.claim(selection, ES.Selection_HasSelector, selector); +// } +// }); +// } +// +// @BeforeClass +// public static void initialize0() throws Exception { +// AcornTests.newSimanticsWorkspace(null, null); +// } +// +// @AfterClass +// public static void deinitialize0() throws Exception { +// Simantics.shutdown(new NullProgressMonitor()); +// } +// +// @Test +// public void testExpressionGeneration1() throws DatabaseException { +// +// Simantics.sync(new WriteRequest() { +// @Override +// public void perform(WriteGraph graph) throws DatabaseException { +// Layer0 L0 = Layer0.getInstance(graph); +// ElementSelectionResource ES = ElementSelectionResource.getInstance(graph); +// +// graph.claim(generator, L0.InstanceOf, ES.Generator_Model); +// graph.claim(selector, L0.InstanceOf, ES.Selector_NHighest); +// graph.claimLiteral(selector, ES.PropertySelector_HasSelectionPropertyName, L0.String, "myProperty"); +// graph.claimLiteral(selector, ES.PropertySelector_HasResultCount, L0.Integer, 10); +// } +// }); +// +// ElementSelector sel = Simantics.sync(new ElementSelector.ElementSelectorQuery(selection)); +// assertNotNull(sel); +// String expression = sel.expression; +// assertEquals("select top 10 of myProperty from model", expression); +// System.err.println(expression); +// } +// +// @Test +// public void testExpressionGeneration2() throws DatabaseException { +// +// Simantics.sync(new WriteRequest() { +// @Override +// public void perform(WriteGraph graph) throws DatabaseException { +// Layer0 L0 = Layer0.getInstance(graph); +// ElementSelectionResource ES = ElementSelectionResource.getInstance(graph); +// +// graph.claim(generator, L0.InstanceOf, ES.Generator_Model); +// graph.claim(selector, L0.InstanceOf, ES.Selector_NLowest); +// graph.claimLiteral(selector, ES.PropertySelector_HasSelectionPropertyName, L0.String, "criteria1"); +// graph.claimLiteral(selector, ES.PropertySelector_HasResultCount, L0.Integer, 20); +// } +// }); +// +// ElementSelector sel = Simantics.sync(new ElementSelector.ElementSelectorQuery(selection)); +// assertNotNull(sel); +// String expression = sel.expression; +// assertEquals("select bottom 20 of criteria1 from model", expression); +// System.err.println(expression); +// } +// +// @Test +// public void testExpressionGeneration3() throws DatabaseException { +// +// Simantics.sync(new WriteRequest() { +// @Override +// public void perform(WriteGraph graph) throws DatabaseException { +// Layer0 L0 = Layer0.getInstance(graph); +// ElementSelectionResource ES = ElementSelectionResource.getInstance(graph); +// +// graph.claim(generator, L0.InstanceOf, ES.Generator_Model); +// graph.claim(selector, L0.InstanceOf, ES.Selector_All); +// } +// }); +// +// ElementSelector sel = Simantics.sync(new ElementSelector.ElementSelectorQuery(selection)); +// assertNotNull(sel); +// String expression = sel.expression; +// assertEquals("select all from model", expression); +// System.err.println(expression); +// } +// +// @Test +// public void testExpressionGeneration4() throws DatabaseException { +// +// Simantics.sync(new WriteRequest() { +// @Override +// public void perform(WriteGraph graph) throws DatabaseException { +// Layer0 L0 = Layer0.getInstance(graph); +// ElementSelectionResource ES = ElementSelectionResource.getInstance(graph); +// +// graph.claim(generator, L0.InstanceOf, ES.Generator_Model); +// graph.claim(selector, L0.InstanceOf, ES.Selector_All); +// Resource condition = graph.newResource(); +// graph.claim(condition, L0.InstanceOf, ES.PropertyCondition); +// graph.claim(condition, ES.Selection_HasCondition_Inverse, selection); +// graph.claimLiteral(condition, ES.PropertyCondition_HasPropertyName, L0.String, "myProperty"); +// graph.claimLiteral(condition, ES.PropertyCondition_HasLowerLimit, L0.Double, 20.0); +// } +// }); +// +// ElementSelector sel = Simantics.sync(new ElementSelector.ElementSelectorQuery(selection)); +// assertNotNull(sel); +// String expression = sel.expression; +// assertEquals("select all from model where {20.0 < myProperty}", expression); +// System.err.println(expression); +// } +// +// @Test +// public void testExpressionGeneration5() throws DatabaseException { +// +// Simantics.sync(new WriteRequest() { +// @Override +// public void perform(WriteGraph graph) throws DatabaseException { +// Layer0 L0 = Layer0.getInstance(graph); +// ElementSelectionResource ES = ElementSelectionResource.getInstance(graph); +// +// graph.claim(generator, L0.InstanceOf, ES.Generator_Model); +// graph.claim(selector, L0.InstanceOf, ES.Selector_NLowest); +// graph.claimLiteral(selector, ES.PropertySelector_HasSelectionPropertyName, L0.String, "criteria1"); +// graph.claimLiteral(selector, ES.PropertySelector_HasResultCount, L0.Integer, 20); +// Resource condition = graph.newResource(); +// graph.claim(condition, L0.InstanceOf, ES.PropertyCondition); +// graph.claim(condition, ES.Selection_HasCondition_Inverse, selection); +// graph.claimLiteral(condition, ES.PropertyCondition_HasPropertyName, L0.String, "myProperty"); +// graph.claimLiteral(condition, ES.PropertyCondition_HasLowerLimit, L0.Double, 20.0); +// } +// }); +// +// ElementSelector sel = Simantics.sync(new ElementSelector.ElementSelectorQuery(selection)); +// assertNotNull(sel); +// String expression = sel.expression; +// assertEquals("select bottom 20 of criteria1 from model where {20.0 < myProperty}", expression); +// System.err.println(expression); +// } +// +// @Test +// public void testExpressionGeneration6() throws DatabaseException { +// +// Simantics.sync(new WriteRequest() { +// @Override +// public void perform(WriteGraph graph) throws DatabaseException { +// Layer0 L0 = Layer0.getInstance(graph); +// ElementSelectionResource ES = ElementSelectionResource.getInstance(graph); +// +// graph.claim(generator, L0.InstanceOf, ES.Generator_Model); +// graph.claim(selector, L0.InstanceOf, ES.Selector_NLowest); +// graph.claimLiteral(selector, ES.PropertySelector_HasSelectionPropertyName, L0.String, "criteria1"); +// graph.claimLiteral(selector, ES.PropertySelector_HasResultCount, L0.Integer, 20); +// Resource condition = graph.newResource(); +// graph.claim(condition, L0.InstanceOf, ES.Disjunction); +// graph.claim(condition, ES.Selection_HasCondition_Inverse, selection); +// Resource condition1 = graph.newResource(); +// graph.claim(condition1, L0.InstanceOf, ES.PropertyCondition); +// graph.claim(condition1, ES.HasSubcondition_Inverse, condition); +// graph.claimLiteral(condition1, ES.PropertyCondition_HasPropertyName, L0.String, "myProperty1"); +// graph.claimLiteral(condition1, ES.PropertyCondition_HasLowerLimit, L0.Double, 20.0); +// Resource condition2 = graph.newResource(); +// graph.claim(condition2, L0.InstanceOf, ES.PropertyCondition); +// graph.claim(condition2, ES.HasSubcondition_Inverse, condition); +// graph.claimLiteral(condition2, ES.PropertyCondition_HasPropertyName, L0.String, "myProperty2"); +// graph.claimLiteral(condition2, ES.PropertyCondition_HasLowerLimit, L0.Double, 0.0); +// graph.claimLiteral(condition2, ES.PropertyCondition_HasUpperLimit, L0.Double, 100.0); +// } +// }); +// +// ElementSelector sel = Simantics.sync(new ElementSelector.ElementSelectorQuery(selection)); +// assertNotNull(sel); +// String expression = sel.expression; +// assertEquals("select bottom 20 of criteria1 from model where {{20.0 < myProperty1} or {0.0 < myProperty2 < 100.0}}", expression); +// System.err.println(expression); +// } +// +// @Test +// public void testExpressionGeneration7() throws DatabaseException { +// +// Simantics.sync(new WriteRequest() { +// @Override +// public void perform(WriteGraph graph) throws DatabaseException { +// Layer0 L0 = Layer0.getInstance(graph); +// ElementSelectionResource ES = ElementSelectionResource.getInstance(graph); +// +// graph.claim(generator, L0.InstanceOf, ES.Generator_Explicit); +// for (int i = 0; i < 15; i++) { +// graph.claim(generator, ES.Generator_HasSelectedElement, graph.newResource()); +// } +// graph.claim(selector, L0.InstanceOf, ES.Selector_All); +// Resource condition = graph.newResource(); +// graph.claim(condition, L0.InstanceOf, ES.Disjunction); +// graph.claim(condition, ES.Selection_HasCondition_Inverse, selection); +// Resource condition1 = graph.newResource(); +// graph.claim(condition1, L0.InstanceOf, ES.PropertyCondition); +// graph.claim(condition1, ES.HasSubcondition_Inverse, condition); +// graph.claimLiteral(condition1, ES.PropertyCondition_HasPropertyName, L0.String, "myProperty1"); +// graph.claimLiteral(condition1, ES.PropertyCondition_HasLowerLimit, L0.Double, 20.0); +// Resource condition2 = graph.newResource(); +// graph.claim(condition2, L0.InstanceOf, ES.PropertyCondition); +// graph.claim(condition2, ES.HasSubcondition_Inverse, condition); +// graph.claimLiteral(condition2, ES.PropertyCondition_HasPropertyName, L0.String, "myProperty2"); +// graph.claimLiteral(condition2, ES.PropertyCondition_HasLowerLimit, L0.Double, 0.0); +// graph.claimLiteral(condition2, ES.PropertyCondition_HasUpperLimit, L0.Double, 100.0); +// } +// }); +// +// ElementSelector sel = Simantics.sync(new ElementSelector.ElementSelectorQuery(selection)); +// assertNotNull(sel); +// String expression = sel.expression; +// assertEquals("select all from where {{20.0 < myProperty1} or {0.0 < myProperty2 < 100.0}}", expression); +// System.err.println(expression); +// } +// +// @Test +// public void testExpressionGeneration8() throws DatabaseException { +// +// Simantics.sync(new WriteRequest() { +// @Override +// public void perform(WriteGraph graph) throws DatabaseException { +// Layer0 L0 = Layer0.getInstance(graph); +// ElementSelectionResource ES = ElementSelectionResource.getInstance(graph); +// +// graph.claim(generator, L0.InstanceOf, ES.Generator_Model); +// graph.claim(selector, L0.InstanceOf, ES.Selector_All); +// Resource condition = graph.newResource(); +// graph.claim(condition, L0.InstanceOf, ES.Conjunction); +// graph.claim(condition, ES.Selection_HasCondition_Inverse, selection); +// Resource condition1 = graph.newResource(); +// graph.claim(condition1, L0.InstanceOf, ES.PropertyCondition); +// graph.claim(condition1, ES.HasSubcondition_Inverse, condition); +// graph.claimLiteral(condition1, ES.PropertyCondition_HasPropertyName, L0.String, "myProperty1"); +// Resource condition2 = graph.newResource(); +// graph.claim(condition2, L0.InstanceOf, ES.RegionCondition); +// graph.claim(condition2, ES.HasSubcondition_Inverse, condition); +// Resource region = graph.newResource(); +// graph.claim(condition2, ES.RegionCondition_HasRegion, region); +// graph.claim(region, L0.InstanceOf, L0.Entity); +// graph.claimLiteral(region, L0.HasLabel, L0.String, "region1"); +// } +// }); +// +// ElementSelector sel = Simantics.sync(new ElementSelector.ElementSelectorQuery(selection)); +// assertNotNull(sel); +// String expression = sel.expression; +// assertEquals("select all from model where {{has property myProperty1} and {in region region1}}", expression); +// System.err.println(expression); +// } +//}