Adds some tests, cleanup a bit
This commit is contained in:
@@ -2,12 +2,12 @@ package com.github.gtache.autosubtitle.archive.impl;
|
||||
|
||||
import com.github.gtache.autosubtitle.archive.Archiver;
|
||||
import com.github.gtache.autosubtitle.archive.ArchiverProvider;
|
||||
import org.junit.jupiter.api.BeforeEach;
|
||||
import org.junit.jupiter.api.Test;
|
||||
import org.junit.jupiter.api.extension.ExtendWith;
|
||||
import org.mockito.Mock;
|
||||
import org.mockito.junit.jupiter.MockitoExtension;
|
||||
|
||||
import java.util.Collection;
|
||||
import java.util.Map;
|
||||
import java.util.Objects;
|
||||
|
||||
@@ -22,16 +22,20 @@ class TestArchiverProviderImpl {
|
||||
private final ArchiverProvider archiverProvider;
|
||||
|
||||
TestArchiverProviderImpl(@Mock final Archiver zipArchiver, @Mock final Archiver rarArchiver) {
|
||||
when(zipArchiver.archiveExtension()).thenReturn("zip");
|
||||
when(rarArchiver.archiveExtension()).thenReturn("rar");
|
||||
this.zipArchiver = Objects.requireNonNull(zipArchiver);
|
||||
this.rarArchiver = Objects.requireNonNull(rarArchiver);
|
||||
this.archiverProvider = new ArchiverProviderImpl(Map.of("zip", zipArchiver, "rar", rarArchiver));
|
||||
}
|
||||
|
||||
@BeforeEach
|
||||
void beforeEach() {
|
||||
when(zipArchiver.archiveExtension()).thenReturn("zip");
|
||||
when(rarArchiver.archiveExtension()).thenReturn("rar");
|
||||
}
|
||||
|
||||
@Test
|
||||
void testAllArchivers() {
|
||||
final Collection<Archiver> allArchivers = archiverProvider.allArchivers();
|
||||
final var allArchivers = archiverProvider.allArchivers();
|
||||
assertEquals(2, allArchivers.size());
|
||||
assertTrue(allArchivers.contains(zipArchiver));
|
||||
assertTrue(allArchivers.contains(rarArchiver));
|
||||
|
||||
@@ -29,13 +29,18 @@ class TestZipDecompresser {
|
||||
|
||||
@Test
|
||||
void testCompress() {
|
||||
assertThrows(UnsupportedOperationException.class, () -> zipDecompresser.compress(List.of(Paths.get("file.txt")), Paths.get("target")));
|
||||
final var paths = List.of(Paths.get("file.txt"));
|
||||
final var target = Paths.get("target");
|
||||
assertThrows(UnsupportedOperationException.class, () -> zipDecompresser.compress(paths, target));
|
||||
}
|
||||
|
||||
@Test
|
||||
void testDecompress(@TempDir final Path tempDir) throws IOException {
|
||||
final var file = tempDir.resolve("test.zip");
|
||||
try (final var in = getClass().getResourceAsStream("in.zip")) {
|
||||
if (in == null) {
|
||||
throw new IOException("in.zip not found");
|
||||
}
|
||||
Files.copy(in, file);
|
||||
}
|
||||
zipDecompresser.decompress(file, tempDir);
|
||||
@@ -57,6 +62,8 @@ class TestZipDecompresser {
|
||||
|
||||
@Test
|
||||
void testIllegal() {
|
||||
assertThrows(IllegalArgumentException.class, () -> zipDecompresser.decompress(Paths.get("file.txt"), Paths.get("target")));
|
||||
final var source = Paths.get("source");
|
||||
final var target = Paths.get("target");
|
||||
assertThrows(IllegalArgumentException.class, () -> zipDecompresser.decompress(source, target));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -21,7 +21,7 @@ class TestFileAudioImpl {
|
||||
private final Path path;
|
||||
private final AudioInfo info;
|
||||
|
||||
TestFileAudioImpl(@Mock final Path path, @Mock final AudioInfo info) throws IOException {
|
||||
TestFileAudioImpl(@Mock final Path path, @Mock final AudioInfo info) {
|
||||
this.path = requireNonNull(path);
|
||||
this.info = requireNonNull(info);
|
||||
}
|
||||
|
||||
@@ -20,7 +20,7 @@ class TestMemoryAudioImpl {
|
||||
private final Supplier<InputStream> supplier;
|
||||
private final AudioInfo info;
|
||||
|
||||
TestMemoryAudioImpl(@Mock InputStream inputStream, @Mock AudioInfo info) {
|
||||
TestMemoryAudioImpl(@Mock final InputStream inputStream, @Mock final AudioInfo info) {
|
||||
this.supplier = () -> requireNonNull(inputStream);
|
||||
this.info = requireNonNull(info);
|
||||
}
|
||||
|
||||
@@ -19,7 +19,7 @@ class TestMemoryVideoImpl {
|
||||
private final Supplier<InputStream> supplier;
|
||||
private final VideoInfo info;
|
||||
|
||||
TestMemoryVideoImpl(@Mock InputStream inputStream, @Mock VideoInfo info) {
|
||||
TestMemoryVideoImpl(@Mock final InputStream inputStream, @Mock final VideoInfo info) {
|
||||
this.supplier = () -> requireNonNull(inputStream);
|
||||
this.info = requireNonNull(info);
|
||||
}
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
package com.github.gtache.autosubtitle.impl;
|
||||
|
||||
import com.github.gtache.autosubtitle.VideoInfo;
|
||||
import org.junit.jupiter.api.Test;
|
||||
|
||||
import static org.junit.jupiter.api.Assertions.assertEquals;
|
||||
@@ -11,17 +12,18 @@ class TestVideoInfoImpl {
|
||||
private final int width;
|
||||
private final int height;
|
||||
private final long duration;
|
||||
private final VideoInfo videoInfo;
|
||||
|
||||
TestVideoInfoImpl() {
|
||||
this.videoFormat = "format";
|
||||
this.width = 1;
|
||||
this.height = 2;
|
||||
this.duration = 3;
|
||||
this.videoInfo = new VideoInfoImpl(videoFormat, width, height, duration);
|
||||
}
|
||||
|
||||
@Test
|
||||
void testGetters() {
|
||||
final var videoInfo = new VideoInfoImpl(videoFormat, width, height, duration);
|
||||
assertEquals(videoFormat, videoInfo.format());
|
||||
assertEquals(width, videoInfo.width());
|
||||
assertEquals(height, videoInfo.height());
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
package com.github.gtache.autosubtitle.process.impl;
|
||||
|
||||
import com.github.gtache.autosubtitle.process.ProcessListener;
|
||||
import org.junit.jupiter.api.BeforeEach;
|
||||
import org.junit.jupiter.api.Test;
|
||||
import org.junit.jupiter.api.extension.ExtendWith;
|
||||
import org.mockito.Mock;
|
||||
@@ -21,11 +22,15 @@ import static org.mockito.Mockito.when;
|
||||
class TestProcessListenerImpl {
|
||||
|
||||
private final Process process;
|
||||
private final ProcessListener listener;
|
||||
private ProcessListener listener;
|
||||
|
||||
TestProcessListenerImpl(@Mock Process process) {
|
||||
final var inputStream = new ByteArrayInputStream("line1\nline2\nline3".getBytes());
|
||||
TestProcessListenerImpl(@Mock final Process process) {
|
||||
this.process = Objects.requireNonNull(process);
|
||||
}
|
||||
|
||||
@BeforeEach
|
||||
void beforeEach() {
|
||||
final var inputStream = new ByteArrayInputStream("line1\nline2\nline3".getBytes());
|
||||
when(process.getInputStream()).thenReturn(inputStream);
|
||||
this.listener = new ProcessListenerImpl(process);
|
||||
}
|
||||
|
||||
@@ -30,7 +30,6 @@ class TestAbstractSetupManager {
|
||||
private final SetupListener listener2;
|
||||
private final SetupEvent event;
|
||||
private final SetupAction setupAction;
|
||||
private final ProcessRunner processRunner;
|
||||
private final HttpClient httpClient;
|
||||
|
||||
TestAbstractSetupManager(@Mock final SetupListener listener1,
|
||||
@@ -44,7 +43,6 @@ class TestAbstractSetupManager {
|
||||
this.listener2 = requireNonNull(listener2);
|
||||
this.event = requireNonNull(event);
|
||||
this.setupAction = requireNonNull(setupAction);
|
||||
this.processRunner = requireNonNull(processRunner);
|
||||
this.httpClient = requireNonNull(httpClient);
|
||||
}
|
||||
|
||||
@@ -247,15 +245,15 @@ class TestAbstractSetupManager {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void install() throws SetupException {
|
||||
public void install() {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void uninstall() throws SetupException {
|
||||
public void uninstall() {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void update() throws SetupException {
|
||||
public void update() {
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2,11 +2,13 @@ package com.github.gtache.autosubtitle.subtitle.converter.impl;
|
||||
|
||||
import com.github.gtache.autosubtitle.Language;
|
||||
import com.github.gtache.autosubtitle.VideoInfo;
|
||||
import com.github.gtache.autosubtitle.subtitle.Subtitle;
|
||||
import com.github.gtache.autosubtitle.subtitle.converter.ParseException;
|
||||
import com.github.gtache.autosubtitle.subtitle.impl.FontImpl;
|
||||
import com.github.gtache.autosubtitle.subtitle.impl.SubtitleCollectionImpl;
|
||||
import com.github.gtache.autosubtitle.subtitle.impl.SubtitleImpl;
|
||||
import com.github.gtache.autosubtitle.translation.Translator;
|
||||
import org.junit.jupiter.api.BeforeEach;
|
||||
import org.junit.jupiter.api.Test;
|
||||
import org.junit.jupiter.api.extension.ExtendWith;
|
||||
import org.mockito.Mock;
|
||||
@@ -24,7 +26,7 @@ import static org.mockito.Mockito.when;
|
||||
@ExtendWith(MockitoExtension.class)
|
||||
class TestASSSubtitleConverter {
|
||||
|
||||
private final Translator translator;
|
||||
private final Translator<Subtitle> translator;
|
||||
private final Preferences preferences;
|
||||
private final Language language;
|
||||
private final VideoInfo videoInfo;
|
||||
@@ -32,7 +34,7 @@ class TestASSSubtitleConverter {
|
||||
private final int defaultFontSize;
|
||||
private final ASSSubtitleConverter converter;
|
||||
|
||||
TestASSSubtitleConverter(@Mock final Translator translator,
|
||||
TestASSSubtitleConverter(@Mock final Translator<Subtitle> translator,
|
||||
@Mock final Preferences preferences,
|
||||
@Mock final Language language,
|
||||
@Mock final VideoInfo videoInfo) {
|
||||
@@ -40,11 +42,15 @@ class TestASSSubtitleConverter {
|
||||
this.preferences = Objects.requireNonNull(preferences);
|
||||
this.language = Objects.requireNonNull(language);
|
||||
this.videoInfo = Objects.requireNonNull(videoInfo);
|
||||
when(videoInfo.width()).thenReturn(1920);
|
||||
when(videoInfo.height()).thenReturn(1080);
|
||||
this.defaultFontName = "Arial";
|
||||
this.defaultFontSize = 12;
|
||||
this.converter = new ASSSubtitleConverter(translator, preferences, defaultFontName, defaultFontSize);
|
||||
}
|
||||
|
||||
@BeforeEach
|
||||
void beforeEach() {
|
||||
when(videoInfo.width()).thenReturn(1920);
|
||||
when(videoInfo.height()).thenReturn(1080);
|
||||
when(translator.getLanguage(anyString())).thenReturn(language);
|
||||
}
|
||||
|
||||
|
||||
@@ -2,10 +2,12 @@ package com.github.gtache.autosubtitle.subtitle.converter.impl;
|
||||
|
||||
import com.github.gtache.autosubtitle.Language;
|
||||
import com.github.gtache.autosubtitle.VideoInfo;
|
||||
import com.github.gtache.autosubtitle.subtitle.Subtitle;
|
||||
import com.github.gtache.autosubtitle.subtitle.converter.ParseException;
|
||||
import com.github.gtache.autosubtitle.subtitle.impl.SubtitleCollectionImpl;
|
||||
import com.github.gtache.autosubtitle.subtitle.impl.SubtitleImpl;
|
||||
import com.github.gtache.autosubtitle.translation.Translator;
|
||||
import org.junit.jupiter.api.BeforeEach;
|
||||
import org.junit.jupiter.api.Test;
|
||||
import org.junit.jupiter.api.extension.ExtendWith;
|
||||
import org.mockito.Mock;
|
||||
@@ -22,16 +24,20 @@ import static org.mockito.Mockito.when;
|
||||
@ExtendWith(MockitoExtension.class)
|
||||
class TestSRTSubtitleConverter {
|
||||
|
||||
private final Translator translator;
|
||||
private final Translator<Subtitle> translator;
|
||||
private final Language language;
|
||||
private final VideoInfo videoInfo;
|
||||
private final SRTSubtitleConverter converter;
|
||||
|
||||
TestSRTSubtitleConverter(@Mock final Translator translator, @Mock final Language language, @Mock final VideoInfo videoInfo) {
|
||||
TestSRTSubtitleConverter(@Mock final Translator<Subtitle> translator, @Mock final Language language, @Mock final VideoInfo videoInfo) {
|
||||
this.translator = Objects.requireNonNull(translator);
|
||||
this.language = Objects.requireNonNull(language);
|
||||
this.videoInfo = Objects.requireNonNull(videoInfo);
|
||||
this.converter = new SRTSubtitleConverter(translator);
|
||||
}
|
||||
|
||||
@BeforeEach
|
||||
void beforeEach() {
|
||||
when(translator.getLanguage(anyString())).thenReturn(language);
|
||||
}
|
||||
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
package com.github.gtache.autosubtitle.subtitle.converter.impl;
|
||||
|
||||
import com.github.gtache.autosubtitle.subtitle.Subtitle;
|
||||
import com.github.gtache.autosubtitle.subtitle.converter.SubtitleConverter;
|
||||
import com.github.gtache.autosubtitle.subtitle.converter.SubtitleConverterProvider;
|
||||
import org.junit.jupiter.api.Test;
|
||||
@@ -15,11 +16,11 @@ import static org.junit.jupiter.api.Assertions.*;
|
||||
@ExtendWith(MockitoExtension.class)
|
||||
class TestSubtitleConverterProviderImpl {
|
||||
|
||||
private final SubtitleConverter first;
|
||||
private final SubtitleConverter second;
|
||||
private final SubtitleConverter<Subtitle> first;
|
||||
private final SubtitleConverter<Subtitle> second;
|
||||
private final SubtitleConverterProvider provider;
|
||||
|
||||
TestSubtitleConverterProviderImpl(@Mock final SubtitleConverter first, @Mock final SubtitleConverter second) {
|
||||
TestSubtitleConverterProviderImpl(@Mock final SubtitleConverter<Subtitle> first, @Mock final SubtitleConverter<Subtitle> second) {
|
||||
this.first = Objects.requireNonNull(first);
|
||||
this.second = Objects.requireNonNull(second);
|
||||
this.provider = new SubtitleConverterProviderImpl(Map.of("first", first, "second", second));
|
||||
|
||||
@@ -6,7 +6,6 @@ import com.github.gtache.autosubtitle.Video;
|
||||
import com.github.gtache.autosubtitle.subtitle.Subtitle;
|
||||
import com.github.gtache.autosubtitle.subtitle.SubtitleCollection;
|
||||
import com.github.gtache.autosubtitle.subtitle.extractor.ExtractEvent;
|
||||
import com.github.gtache.autosubtitle.subtitle.extractor.ExtractException;
|
||||
import com.github.gtache.autosubtitle.subtitle.extractor.ExtractionModel;
|
||||
import com.github.gtache.autosubtitle.subtitle.extractor.SubtitleExtractorListener;
|
||||
import org.junit.jupiter.api.Test;
|
||||
@@ -57,12 +56,12 @@ class TestAbstractSubtitleExtractor {
|
||||
private static final class DummySubtitleExtractor extends AbstractSubtitleExtractor {
|
||||
|
||||
@Override
|
||||
public SubtitleCollection extract(final Video video, final Language language, final ExtractionModel model) throws ExtractException {
|
||||
public SubtitleCollection<Subtitle> extract(final Video video, final Language language, final ExtractionModel model) {
|
||||
throw new UnsupportedOperationException();
|
||||
}
|
||||
|
||||
@Override
|
||||
public SubtitleCollection<Subtitle> extract(final Audio audio, final Language language, final ExtractionModel model) throws ExtractException {
|
||||
public SubtitleCollection<Subtitle> extract(final Audio audio, final Language language, final ExtractionModel model) {
|
||||
throw new UnsupportedOperationException();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -28,7 +28,7 @@ class TestSubtitleCollectionImpl {
|
||||
@Test
|
||||
void testGetters() {
|
||||
final var text = "test";
|
||||
final var collection = new SubtitleCollectionImpl(text, subtitles, langue);
|
||||
final var collection = new SubtitleCollectionImpl<>(text, subtitles, langue);
|
||||
assertEquals(text, collection.text());
|
||||
assertEquals(subtitles, collection.subtitles());
|
||||
assertEquals(langue, collection.language());
|
||||
@@ -37,8 +37,8 @@ class TestSubtitleCollectionImpl {
|
||||
@Test
|
||||
void testIllegal() {
|
||||
final var text = "";
|
||||
assertThrows(NullPointerException.class, () -> new SubtitleCollectionImpl(null, subtitles, langue));
|
||||
assertThrows(NullPointerException.class, () -> new SubtitleCollectionImpl(text, null, langue));
|
||||
assertThrows(NullPointerException.class, () -> new SubtitleCollectionImpl(text, subtitles, null));
|
||||
assertThrows(NullPointerException.class, () -> new SubtitleCollectionImpl<>(null, subtitles, langue));
|
||||
assertThrows(NullPointerException.class, () -> new SubtitleCollectionImpl<>(text, null, langue));
|
||||
assertThrows(NullPointerException.class, () -> new SubtitleCollectionImpl<>(text, subtitles, null));
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user