package org.gcube.accounting.datamodel.validations.validators; import java.io.BufferedReader; import java.io.File; import java.io.FileReader; import java.io.InputStream; import java.net.URL; import java.util.regex.Matcher; import org.gcube.documentstore.records.DSMapper; import org.junit.Test; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import com.fasterxml.jackson.databind.ObjectMapper; public class TestRegexReplaceRules { private static final Logger logger = LoggerFactory.getLogger(TestRegexReplaceRules.class); @Test public void testAuthorizationServiceGenerate() throws Exception { String[] aggregationTests = new String[]{ "AuthorizationService-generate", "AuthorizationService-retrieve", "AuthorizationService-scopes", "TagMe-tag", "GeoNetwork-login" }; for(String aggregationTest : aggregationTests) { ObjectMapper mapper = DSMapper.getObjectMapper(); InputStream regexInputStream = TestRegexReplaceRules.class.getClassLoader().getResourceAsStream(aggregationTest + "-rule.json"); RegexReplace regexReplace = mapper.readValue(regexInputStream, RegexReplace.class); URL url = TestRegexReplaceRules.class.getClassLoader().getResource(aggregationTest + "-values.csv"); File elaborationFile = new File(url.toURI()); try(BufferedReader br = new BufferedReader(new FileReader(elaborationFile))) { for(String line; (line = br.readLine()) != null;) { Matcher matcher = regexReplace.regexPattern.matcher(line); if(matcher.matches()) { logger.info("{} -> {}", line, regexReplace.getReplace()); } else { logger.error("{} does not match {}. This MUST not occur.", line, regexReplace.getRegex()); throw new Exception(line + "does not match "+ regexReplace.getRegex() + ". This MUST not occur."); } } } catch(Exception e) { throw e; } } } }