From 58f9dc9cadccae8323566c2b343369adce1fde6c Mon Sep 17 00:00:00 2001 From: Luca Frosini Date: Wed, 8 Jan 2020 16:07:13 +0100 Subject: [PATCH] Fixed Rule for METADATA::COLLECTION --- .../validations/validators/TestRules.java | 76 +++++++++---------- .../Thredds/Thredds_METADATA::COLLECTION.json | 4 +- .../Thredds/Thredds_METADATA::OTHER.json | 4 +- .../resources/rules/Thredds/Thredds_OTHER.csv | 17 +++++ 4 files changed, 56 insertions(+), 45 deletions(-) create mode 100644 src/test/resources/rules/Thredds/Thredds_OTHER.csv diff --git a/src/test/java/org/gcube/accounting/datamodel/validations/validators/TestRules.java b/src/test/java/org/gcube/accounting/datamodel/validations/validators/TestRules.java index d42bb09..03d1457 100644 --- a/src/test/java/org/gcube/accounting/datamodel/validations/validators/TestRules.java +++ b/src/test/java/org/gcube/accounting/datamodel/validations/validators/TestRules.java @@ -164,51 +164,45 @@ public class TestRules extends ContextTest { } }; - for(File dir : rulesDirectory.listFiles()) { - if(!dir.isDirectory()) { - continue; - } - File[] elaborationFilesNoMatch = dir.listFiles(filenameFilter); - - for(File elaborationFileNoMatch : elaborationFilesNoMatch) { - logger.info("Comparing examples which must not match from file {}", elaborationFileNoMatch.getName()); - try(BufferedReader br = new BufferedReader(new FileReader(elaborationFileNoMatch))) { - for(String line; (line = br.readLine()) != null;) { - String[] splittedLine = line.split(","); - String serviceClass = splittedLine[0]; - String serviceName = splittedLine[1]; - String calledMethod = splittedLine[2]; - Replace replace = matcherReplace.check(serviceClass, serviceName, calledMethod); - if(replace != null) { - logger.error("{} match {} but it should NOT. This MUST not occur.", line, - matcherReplace.getMultiMatcher().toString()); - throw new Exception(); - } else { - logger.trace("{} does NOT match as requested", line, replacementRegex.getServiceClass(), - replacementRegex.getServiceName(), replacementRegex.getCalledMethod()); - } - - ServiceUsageRecord sur = TestUsageRecord.createTestServiceUsageRecord(); - sur.setServiceClass(serviceClass); - sur.setServiceName(serviceName); - sur.setCalledMethod(calledMethod); - sur.validate(); - //logger.trace("Should not be aggregated ServiceUsageRecord {}", sur); - for(AggregatedServiceUsageRecord asur : aggregatedMap.values()) { - try { - asur.aggregate(sur); - throw new Exception("The record has been aggregated and it should NOT"); - - } catch(NotAggregatableRecordsExceptions e) { - //logger.trace("{} is not aggragable as expected", sur); - } + for(File elaborationFileNoMatch : rulesDirectory.listFiles(filenameFilter)) { + logger.info("Comparing examples which must not match from file {}", elaborationFileNoMatch.getName()); + try(BufferedReader br = new BufferedReader(new FileReader(elaborationFileNoMatch))) { + for(String line; (line = br.readLine()) != null;) { + String[] splittedLine = line.split(","); + String serviceClass = splittedLine[0]; + String serviceName = splittedLine[1]; + String calledMethod = splittedLine[2]; + Replace replace = matcherReplace.check(serviceClass, serviceName, calledMethod); + if(replace != null) { + logger.error("{} match {} but it should NOT. This MUST not occur.", line, + matcherReplace.getMultiMatcher().toString()); + throw new Exception(); + } else { + logger.trace("{} does NOT match as requested", line, replacementRegex.getServiceClass(), + replacementRegex.getServiceName(), replacementRegex.getCalledMethod()); + } + + ServiceUsageRecord sur = TestUsageRecord.createTestServiceUsageRecord(); + sur.setServiceClass(serviceClass); + sur.setServiceName(serviceName); + sur.setCalledMethod(calledMethod); + sur.validate(); + //logger.trace("Should not be aggregated ServiceUsageRecord {}", sur); + for(AggregatedServiceUsageRecord asur : aggregatedMap.values()) { + try { + asur.aggregate(sur); + throw new Exception("The record has been aggregated and it should NOT"); + + } catch(NotAggregatableRecordsExceptions e) { + //logger.trace("{} is not aggragable as expected", sur); } } - } catch(Exception e) { - throw e; } + } catch(Exception e) { + throw e; } } + logger.info( "-----------------------------------------------------------------------------------------------------\n\n\n"); } @@ -218,7 +212,7 @@ public class TestRules extends ContextTest { allRules(); File rulesDirectory = getRulesDirectory(); File rulesDirFile = new File(rulesDirectory, "Thredds"); - File rulesFile = new File(rulesDirFile, "Thredds_METADATA::OTHER.json"); + File rulesFile = new File(rulesDirFile, "Thredds_METADATA::COLLECTION.json"); testRule(rulesFile); } diff --git a/src/test/resources/rules/Thredds/Thredds_METADATA::COLLECTION.json b/src/test/resources/rules/Thredds/Thredds_METADATA::COLLECTION.json index d1242de..2c97102 100644 --- a/src/test/resources/rules/Thredds/Thredds_METADATA::COLLECTION.json +++ b/src/test/resources/rules/Thredds/Thredds_METADATA::COLLECTION.json @@ -2,11 +2,11 @@ "match": { "serviceClassRegex": "SDI", "serviceNameRegex": "Thredds", - "calledMethodRegex": "^(\/){1}(?[a-zA-Z0-9]*){1}(\/public\/netcdf\/){1}(?[a-zA-Z0-9_-]*)(\/){1}(.*\\.(nc|asc|tiff)).{1,}" + "calledMethodRegex": "^(\/){1}(?[a-zA-Z0-9]*){1}(\/public\/netcdf\/){1}(?[a-zA-Z0-9_-]*(?[a-zA-Z0-9]*){1}(\/public\/netcdf\/){1}([^\/]*\\.(nc|asc|tiff)).{1,}" + "calledMethodRegex": "^(\/){1}(?[a-zA-Z0-9]*){1}(\/public\/netcdf\/){1}((.*\\.(nc|asc|tiff)).{1,})" }, "replace": { "serviceClass": "SDI", "serviceName": "Thredds", - "calledMethod": "${Protocol}::OTHER" + "calledMethod": "METADATA::OTHER" } } \ No newline at end of file diff --git a/src/test/resources/rules/Thredds/Thredds_OTHER.csv b/src/test/resources/rules/Thredds/Thredds_OTHER.csv new file mode 100644 index 0000000..61ffb45 --- /dev/null +++ b/src/test/resources/rules/Thredds/Thredds_OTHER.csv @@ -0,0 +1,17 @@ +Service Class,Service Name,Called Method +SDI,Thredds,/style/ncss/layout.css +SDI,Thredds,/tds.css +SDI,Thredds,/folder.gif +SDI,Thredds,/godiva2/css/calendar-blue.css +SDI,Thredds,/godiva2/css/godiva2.css +SDI,Thredds,/style/ncss/main.css +SDI,Thredds,/tdsCat.css +SDI,Thredds,/tdsDap.css +SDI,Thredds,/ +SDI,Thredds,/godiva2/theme/default/img/close.gif +SDI,Thredds,/godiva2/images/ajax-loader.gif +SDI,Thredds,/godiva2/img/blank.gif +SDI,Thredds,/godiva2/theme/default/style.css +SDI,Thredds,/js/lib/OpenLayers-2.12/theme/default/style.css +SDI,Thredds,/style/ncss/form.css +SDI,Thredds,/threddsIcon.gif