package org.talend.dataquality.semantic.recognizer;
import static org.junit.Assert.*;
import java.io.IOException;
import java.net.URI;
import java.net.URISyntaxException;
import java.util.HashSet;
import org.junit.Test;
import org.talend.dataquality.semantic.classifier.custom.UDCategorySerDeser;
import org.talend.dataquality.semantic.classifier.custom.UserDefinedClassifier;
import org.talend.dataquality.semantic.model.DQCategory;
public class InvalidRegexCategorizerTest {
@Test
public void testReadJsonFileWithInvalidRegex() throws IOException, URISyntaxException {
URI uri = InvalidRegexCategorizerTest.class.getResource("invalid_regex_categorizer.json").toURI();
try {
UserDefinedClassifier userDefinedClassifier = UDCategorySerDeser.readJsonFile(uri);
assertNotNull(userDefinedClassifier);
int nbCat = userDefinedClassifier.getClassifiers().size();
assertEquals("Expected to read at least 0 category but only get " + nbCat, 1, nbCat); //$NON-NLS-1$
assertFalse("Any data should be invalid when the pattern is invalid", userDefinedClassifier.validCategories("AZERTY",
new DQCategory("CATEGORY_WITH_INVALID_REGEX"), new HashSet<DQCategory>()));
} catch (Exception e) {
e.printStackTrace();
}
}
}