Add config validator tests & Improve mkvtoolnix error logging & ConfigPathValidator

This commit is contained in:
2023-02-12 21:34:38 +01:00
parent 1d6098efc1
commit 51b4885e65
12 changed files with 239 additions and 59 deletions

View File

@@ -0,0 +1,19 @@
package at.pcgamingfreaks.mkvaudiosubtitlechanger.config.validator;
import at.pcgamingfreaks.mkvaudiosubtitlechanger.model.ConfigProperty;
import at.pcgamingfreaks.yaml.YAML;
import java.io.File;
import java.util.Optional;
import java.util.function.BiFunction;
public class ConfigPathValidator extends PathValidator {
public ConfigPathValidator(ConfigProperty property, boolean required, File defaultValue) {
super(property, required, defaultValue);
}
@Override
protected BiFunction<YAML, ConfigProperty, Optional<File>> provideDataYaml() {
return (yaml, property) -> Optional.empty();
}
}

View File

@@ -15,7 +15,6 @@ import java.util.Arrays;
import java.util.List;
import java.util.Optional;
import java.util.function.BiFunction;
import java.util.function.Function;
import java.util.function.Predicate;
import java.util.stream.Collectors;

View File

@@ -70,6 +70,7 @@ public class SetValidator extends ConfigValidator<Set<String>> {
return Optional.empty();
};
}
@Override
Set<String> parse(String value) {
throw new RuntimeException("This should not be called");
@@ -84,6 +85,7 @@ public class SetValidator extends ConfigValidator<Set<String>> {
return true;
}
@SuppressWarnings("unchecked")
protected boolean setValue(Set<String> result) {
List<Method> methods = append
? Arrays.stream(Config.getInstance().getClass().getDeclaredMethods())

View File

@@ -1,7 +1,7 @@
package at.pcgamingfreaks.mkvaudiosubtitlechanger.config.validator;
import at.pcgamingfreaks.mkvaudiosubtitlechanger.model.ConfigProperty;
import org.apache.commons.lang3.StringUtils;
import org.apache.commons.lang3.math.NumberUtils;
public class ThreadValidator extends ConfigValidator<Integer>{
public ThreadValidator(ConfigProperty property, boolean required, Integer defaultValue) {
@@ -10,7 +10,7 @@ public class ThreadValidator extends ConfigValidator<Integer>{
@Override
Integer parse(String value) {
return StringUtils.isNumeric(value) ? Integer.parseInt(value) : defaultValue;
return NumberUtils.isParsable(value) ? Integer.parseInt(value) : defaultValue;
}
@Override