From a483ffcd9b71658bcc6a86fd844d91abedac0974 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Andreas=20M=C3=BCller?= Date: Wed, 18 Dec 2019 12:43:06 +0100 Subject: [PATCH] ref #8780 test nodes recursive and generic --- .../util/SortIndexUpdaterWrapperTest.java | 36 +++++++++++++------ 1 file changed, 26 insertions(+), 10 deletions(-) diff --git a/cdmlib-services/src/test/java/eu/etaxonomy/cdm/api/service/util/SortIndexUpdaterWrapperTest.java b/cdmlib-services/src/test/java/eu/etaxonomy/cdm/api/service/util/SortIndexUpdaterWrapperTest.java index ac39a72e34..80ee2e8d28 100644 --- a/cdmlib-services/src/test/java/eu/etaxonomy/cdm/api/service/util/SortIndexUpdaterWrapperTest.java +++ b/cdmlib-services/src/test/java/eu/etaxonomy/cdm/api/service/util/SortIndexUpdaterWrapperTest.java @@ -24,6 +24,7 @@ import eu.etaxonomy.cdm.api.service.ITermTreeService; import eu.etaxonomy.cdm.api.service.UpdateResult; import eu.etaxonomy.cdm.api.service.config.SortIndexUpdaterConfigurator; import eu.etaxonomy.cdm.common.monitor.DefaultProgressMonitor; +import eu.etaxonomy.cdm.model.common.ITreeNode; import eu.etaxonomy.cdm.model.description.Feature; import eu.etaxonomy.cdm.model.term.TermNode; import eu.etaxonomy.cdm.model.term.TermTree; @@ -64,25 +65,40 @@ public class SortIndexUpdaterWrapperTest extends CdmTransactionalIntegrationTest config.setMonitor(DefaultProgressMonitor.NewInstance()); UpdateResult result = sortIndexUpdater.doInvoke(config); + Assert.assertEquals("No exception should be thrown during sortindex update", 0, result.getExceptions().size()); + @SuppressWarnings("unchecked") TermTree termTree = termTreeService.find(uuidTermTree); Assert.assertNotNull(termTree); - List> children = termTree.getRootChildren(); - for (int i = 0 ; i < children.size(); i++){ - try { - Integer sortIndex = (Integer)sortIndexField.get(children.get(i)); - Assert.assertEquals((Integer)i, sortIndex); - } catch (IllegalArgumentException | IllegalAccessException e) { - Assert.fail("sortIndex field not accessible"); - } - } - Assert.assertEquals(0, result.getExceptions().size()); + TermNode rootNode = termTree.getRoot(); + testTreeRecursive(sortIndexField, rootNode); } catch (NoSuchFieldException | SecurityException e1) { Assert.fail("sortIndex field not found"); } } + private > void testTreeRecursive(Field sortIndexField, ITreeNode rootNode) { + @SuppressWarnings("deprecation") + List children = rootNode.getChildNodes(); + for (int i = 0 ; i < children.size(); i++){ + try { + T child = children.get(i); + Integer sortIndex = (Integer)sortIndexField.get(child); + Assert.assertEquals((Integer)i, sortIndex); + testTreeRecursive(sortIndexField, child); + } catch (IllegalArgumentException | IllegalAccessException e) { + Assert.fail("sortIndex field not accessible"); + } + } + } + + @Test +// @DataSet + public void testPolytomousKeyNode() { + //TODO + } + @Test @DataSet public void testMonitor() { -- 2.34.1