Make InputConfig no longer be a singleton

This commit is contained in:
RatzzFatzz
2025-12-11 01:47:55 +01:00
parent 04722d9279
commit 37cedecea7
10 changed files with 63 additions and 77 deletions

View File

@@ -63,16 +63,15 @@ class FileFilterTest {
when(file.getName()).thenReturn(List.of(path.split("/")).get(1));
when(file.toPath()).thenReturn(Path.of(TEST_FILE));
InputConfig.getInstance(true).setIncludePattern(Pattern.compile(pattern));
long currentTime = System.currentTimeMillis();
InputConfig.getInstance().setFilterDate(new Date(currentTime + filterDateOffset));
FileFilter fileFilter = new FileFilter(Set.of(), Pattern.compile(pattern), new Date(currentTime + filterDateOffset));
try (MockedStatic<DateUtils> mockedFiles = Mockito.mockStatic(DateUtils.class)) {
mockedFiles
.when(() -> DateUtils.convert(anyLong()))
.thenReturn(new Date(currentTime));
assertEquals(expectedHit, FileFilter.accept(file, new HashSet<>(args)), "File is accepted");
assertEquals(expectedHit, fileFilter.accept(file, new HashSet<>(args)), "File is accepted");
assertEquals(total, ResultStatistic.getInstance().getTotal(), "Total files");
assertEquals(excluded, ResultStatistic.getInstance().getExcluded(), "Excluded files");
}

View File

@@ -1,8 +1,6 @@
package at.pcgamingfreaks.mkvaudiosubtitlechanger.impl;
import at.pcgamingfreaks.mkvaudiosubtitlechanger.impl.processors.MkvFileProcessor;
import at.pcgamingfreaks.mkvaudiosubtitlechanger.model.FileInfo;
import at.pcgamingfreaks.mkvaudiosubtitlechanger.model.InputConfig;
import at.pcgamingfreaks.mkvaudiosubtitlechanger.model.AttributeConfig;
import at.pcgamingfreaks.mkvaudiosubtitlechanger.model.TrackAttributes;
import org.junit.jupiter.api.Disabled;
@@ -11,7 +9,6 @@ import org.junit.jupiter.params.provider.Arguments;
import org.junit.jupiter.params.provider.MethodSource;
import java.util.List;
import java.util.Set;
import java.util.stream.Stream;
import static at.pcgamingfreaks.mkvaudiosubtitlechanger.util.FileInfoTestUtil.*;
@@ -33,9 +30,8 @@ class MkvFileProcessorTest {
@MethodSource
@Disabled
void detectDesiredTracks(AttributeConfig expectedMatch, List<TrackAttributes> tracks, AttributeConfig... configs) {
InputConfig.getInstance().setPreferredSubtitles(Set.of());
FileInfo info = new FileInfo(null);
MkvFileProcessor processor = new MkvFileProcessor();
// MkvFileProcessor processor = new MkvFileProcessor(null, new FileFilter());
// processor.detectDesiredTracks(info, tracks, tracks, configs);
assertEquals(expectedMatch.getAudioLanguage(), info.getMatchedConfig().getAudioLanguage());
assertEquals(expectedMatch.getSubtitleLanguage(), info.getMatchedConfig().getSubtitleLanguage());

View File

@@ -31,25 +31,25 @@ class InputConfigTest {
"--commentary-keywords", "testCommentary",
"--preferred-subtitles", "testPreferred"
};
CommandLine.populateCommand(InputConfig.getInstance(true), sut);
InputConfig config = CommandLine.populateCommand(new InputConfig(), sut);
assertTrue(InputConfig.getInstance().getLibraryPath().exists());
assertTrue(config.getLibraryPath().exists());
assertEquals(List.of(new AttributeConfig("ger", "ger"), new AttributeConfig("eng", "eng")),
InputConfig.getInstance().getAttributeConfig());
config.getAttributeConfig());
assertTrue(InputConfig.getInstance().isSafeMode());
assertTrue(InputConfig.getInstance().isForceCoherent());
assertTrue(InputConfig.getInstance().isOnlyNewFiles());
assertNull(InputConfig.getInstance().getFilterDate());
assertTrue(config.isSafeMode());
assertTrue(config.isForceCoherent());
assertTrue(config.isOnlyNewFiles());
assertNull(config.getFilterDate());
assertEquals(2, InputConfig.getInstance().getCoherent());
assertEquals(4, InputConfig.getInstance().getThreads());
assertEquals(".*[abc].*", InputConfig.getInstance().getIncludePattern().pattern());
assertTrue(InputConfig.getInstance().getForcedKeywords().contains("testForced"));
assertTrue(InputConfig.getInstance().getCommentaryKeywords().contains("testCommentary"));
assertTrue(InputConfig.getInstance().getPreferredSubtitles().contains("testPreferred"));
assertEquals(2, config.getCoherent());
assertEquals(4, config.getThreads());
assertEquals(".*[abc].*", config.getIncludePattern().pattern());
assertTrue(config.getForcedKeywords().contains("testForced"));
assertTrue(config.getCommentaryKeywords().contains("testCommentary"));
assertTrue(config.getPreferredSubtitles().contains("testPreferred"));
assertNull(InputConfig.getInstance().getConfigPath());
assertNull(config.getConfigPath());
}
@@ -66,7 +66,6 @@ class InputConfigTest {
@ParameterizedTest
@MethodSource("jakartaValidationData")
void testJakartaValidation(String[] args, String expectedMessage) {
InputConfig.getInstance(true);
StringWriter writer = new StringWriter();
PrintWriter printWriter = new PrintWriter(writer);