From 8ce4f68036ab965802fa68edb02f1149f5e0c42b Mon Sep 17 00:00:00 2001 From: MLengl Date: Mon, 15 Jan 2018 12:37:27 +0100 Subject: [PATCH] TSK-84: Query Classifications. Updated SQL-Data, checked functionality, improved Acc-Test, Summary in other Ticket --- .../QueryClassificationAccTest.java | 95 +++++++++++++++++-- .../src/test/resources/sql/classification.sql | 9 +- 2 files changed, 97 insertions(+), 7 deletions(-) diff --git a/lib/taskana-core/src/test/java/acceptance/classification/QueryClassificationAccTest.java b/lib/taskana-core/src/test/java/acceptance/classification/QueryClassificationAccTest.java index 9b45127fa..a956e9e33 100644 --- a/lib/taskana-core/src/test/java/acceptance/classification/QueryClassificationAccTest.java +++ b/lib/taskana-core/src/test/java/acceptance/classification/QueryClassificationAccTest.java @@ -5,10 +5,10 @@ import static org.junit.Assert.assertNotNull; import java.sql.SQLException; import java.util.List; +import java.util.stream.Collectors; import org.h2.store.fs.FileUtils; import org.junit.AfterClass; -import org.junit.Ignore; import org.junit.Test; import acceptance.AbstractAccTest; @@ -40,20 +40,103 @@ public class QueryClassificationAccTest extends AbstractAccTest { assertEquals(2, classificationList.size()); } - @Ignore @Test public void testGetOneClassificationForMultipleDomains() throws SQLException, ClassificationNotFoundException, NotAuthorizedException, InvalidArgumentException { ClassificationService classificationService = taskanaEngine.getClassificationService(); List classifications = classificationService.createClassificationQuery() - .type("L10000") - .domain("DOMAIN_A", "DOMAIN_B") + .key("L10000") + .domain("DOMAIN_A", "DOMAIN_B", "") .list(); assertNotNull(classifications); + assertEquals(3, classifications.size()); + assertEquals(999, classifications.get(0).getPriority()); + assertEquals(1, classifications.get(1).getPriority()); + assertEquals(1, classifications.get(2).getPriority()); + } + + @Test + public void testGetClassificationsForTypeAndParent() + throws SQLException, ClassificationNotFoundException, NotAuthorizedException, InvalidArgumentException { + ClassificationService classificationService = taskanaEngine.getClassificationService(); + List classifications = classificationService.createClassificationQuery() + .type("TASK", "DOCUMENT") + .parentClassificationKey("") + .list(); + + assertNotNull(classifications); + assertEquals(21, classifications.size()); + + List documentTypes = classifications.stream() + .filter(c -> c.getType().equals("DOCUMENT")) + .collect( + Collectors.toList()); + assertEquals(2, documentTypes.size()); + + List taskTypes = classifications.stream().filter(c -> c.getType().equals("TASK")).collect( + Collectors.toList()); + assertEquals(19, taskTypes.size()); + } + + @Test + public void testGetClassificationsForKeyAndCategories() + throws SQLException, ClassificationNotFoundException, NotAuthorizedException, InvalidArgumentException { + ClassificationService classificationService = taskanaEngine.getClassificationService(); + List classifications = classificationService.createClassificationQuery() + .key("T2100", "L10000") + .category("EXTERN", "MANUAL") + .list(); + + assertNotNull(classifications); + assertEquals(6, classifications.size()); + + List externCategory = classifications.stream() + .filter(c -> c.getCategory().equals("EXTERN")) + .collect( + Collectors.toList()); + assertEquals(3, externCategory.size()); + + List manualCategory = classifications.stream() + .filter(c -> c.getCategory().equals("MANUAL")) + .collect( + Collectors.toList()); + assertEquals(3, manualCategory.size()); + } + + @Test + public void testGetClassificationsWithParentKey() + throws SQLException, ClassificationNotFoundException, NotAuthorizedException, InvalidArgumentException { + ClassificationService classificationService = taskanaEngine.getClassificationService(); + List classifications = classificationService.createClassificationQuery() + .key("A12", "A13") + .category("EXTERN", "MANUAL") + .parentClassificationKey("L10000") + .list(); + + assertNotNull(classifications); + assertEquals(1, classifications.size()); + + classifications = classificationService.createClassificationQuery() + .key("A12", "A13") + .category("EXTERN", "MANUAL", "AUTOMATIC") + .parentClassificationKey("L10000", "T2100", "T6310") + .domain("DOMAIN_A") + .list(); + assertNotNull(classifications); assertEquals(2, classifications.size()); - assertEquals(2, classifications.get(0).getPriority()); - assertEquals(22, classifications.get(1).getPriority()); + } + + @Test + public void testGetClassificationsWithCutsomFields() + throws SQLException, ClassificationNotFoundException, NotAuthorizedException, InvalidArgumentException { + ClassificationService classificationService = taskanaEngine.getClassificationService(); + List classifications = classificationService.createClassificationQuery() + .customFields("VNR,RVNR,KOLVNR", "VNR") + .domain("DOMAIN_A") + .list(); + assertNotNull(classifications); + assertEquals(14, classifications.size()); } @AfterClass diff --git a/lib/taskana-core/src/test/resources/sql/classification.sql b/lib/taskana-core/src/test/resources/sql/classification.sql index 4188c2831..f81853c16 100644 --- a/lib/taskana-core/src/test/resources/sql/classification.sql +++ b/lib/taskana-core/src/test/resources/sql/classification.sql @@ -26,5 +26,12 @@ INSERT INTO CLASSIFICATION VALUES('CLI:100000000000000000000000000000000010', 'T INSERT INTO CLASSIFICATION VALUES('CLI:100000000000000000000000000000000011', 'T6310', '', 'AUTOMATIC', 'TASK', 'DOMAIN_A', TRUE, CURRENT_TIMESTAMP, 'T-GUK Honorarrechnung erstellen', 'Generali Unterstützungskasse Honorar wird fällig', 2, 'P2D', '', 'VNR', '', '', '', '', '', '', '', CURRENT_TIMESTAMP, '9999-12-31'); INSERT INTO CLASSIFICATION VALUES('CLI:100000000000000000000000000000000013', 'DOKTYP_DEFAULT', '', 'EXTERN', 'DOCUMENT', 'DOMAIN_A', TRUE, CURRENT_TIMESTAMP, 'EP allgemein', 'EP allgemein', 99, 'P2000D', '', 'VNR', '', '', '', '', '', '', '', CURRENT_TIMESTAMP, '9999-12-31'); INSERT INTO CLASSIFICATION VALUES('CLI:100000000000000000000000000000000014', 'L10000', '', 'EXTERN', 'TASK', 'DOMAIN_A', TRUE, CURRENT_TIMESTAMP, 'BUZ-Leistungsfall', 'BUZ-Leistungsfall', 1, 'P1D', '', 'VNR,RVNR,KOLVNR', '', '', '', '', '', '', '', '2017-12-12', '9999-12-31'); -INSERT INTO CLASSIFICATION VALUES('CLI:100000000000000000000000000000000015', 'T2100', '', 'MANUAL', 'TASK', 'DOMAIN_B', TRUE, CURRENT_TIMESTAMP, 'T-Vertragstermin VERA', 'T-Vertragstermin VERA', 22, 'P2D', '', 'VNR', '', '', '', '', '', '', '', CURRENT_TIMESTAMP, '9999-12-31'); INSERT INTO CLASSIFICATION VALUES('CLI:100000000000000000000000000000000016', 'T2000', '', 'MANUAL', 'TASK', 'DOMAIN_A', TRUE, CURRENT_TIMESTAMP, 'T-Vertragstermin', 'T-Vertragstermin', 1, 'P1D', '', 'VNR,RVNR,KOLVNR', '', '', '', '', '', '', '', CURRENT_TIMESTAMP, '9999-12-31'); + +-- DOMAIN_B CLASSIFICATIONS +INSERT INTO CLASSIFICATION VALUES('CLI:100000000000000000000000000000000015', 'T2100', '', 'MANUAL', 'TASK', 'DOMAIN_B', TRUE, CURRENT_TIMESTAMP, 'T-Vertragstermin VERA', 'T-Vertragstermin VERA', 22, 'P2D', '', 'VNR', '', '', '', '', '', '', '', CURRENT_TIMESTAMP, '9999-12-31'); + +-- WITH PARENT CLASSIFICATIONS (MIXED DOMAIN) --- +INSERT INTO CLASSIFICATION VALUES('CLI:200000000000000000000000000000000001', 'A12', 'L10000', 'EXTERN', 'TASK', 'DOMAIN_A', TRUE, CURRENT_TIMESTAMP, 'OLD-Leistungsfall', 'OLD-Leistungsfall', 1, 'P1D', '', 'VNR,RVNR,KOLVNR', '', '', '', '', '', '', '', '2016-12-12', '2017-12-11'); +INSERT INTO CLASSIFICATION VALUES('CLI:200000000000000000000000000000000002', 'A13', 'T6310', 'AUTOMATIC', 'EXTERN', 'DOMAIN_A', TRUE, CURRENT_TIMESTAMP, 'Beratungsprotokoll', 'Beratungsprotokoll', 1, 'P1D', '', 'VNR,RVNR,KOLVNR, ANR', '', '', '', '', '', '', '', CURRENT_TIMESTAMP, '9999-12-31'); +INSERT INTO CLASSIFICATION VALUES('CLI:200000000000000000000000000000000003', 'A12', 'T2100', 'MANUAL', 'TASK', 'DOMAIN_B', TRUE, CURRENT_TIMESTAMP, 'Widerruf', 'Widerruf', 1, 'P1D', '', 'VNR,RVNR,KOLVNR', '', '', '', '', '', '', '', CURRENT_TIMESTAMP, '9999-12-31');