accounting-lib/src/test/java/org/gcube/accounting/datamodel/validations/validators/TestRegexReplaceRules.java

53 lines
1.8 KiB
Java

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;
}
}
}
}