Добавить тесты репозитория файловой системы и реализовать функциональность журналирования файлов.
- Реализовать тесты для поиска MP3-файлов и переименования/организации папок книг в репозитории файловой системы. - Создать FileLogger для записи сообщений в файл с поддержкой различных уровней журналирования и управления размером файлов. - Разработать репозиторий RuTracker для обработки поиска торрентов, получения метаданных и загрузки торрент-файлов. - Добавить тесты для нормализации URL в репозиторий RuTracker. - Реализовать адаптер логгера TUI для отображения логов в терминальном интерфейсе и, при необходимости, для записи логов в базовый логгер. - Создать менеджер TUI для управления пользовательским интерфейсом приложения, включая главное меню, экран обработки, настройки и отображение результатов.
This commit is contained in:
42
internal/domain/services/metadata_service_test.go
Normal file
42
internal/domain/services/metadata_service_test.go
Normal file
@@ -0,0 +1,42 @@
|
||||
package services
|
||||
|
||||
import (
|
||||
"testing"
|
||||
|
||||
"audio-catalyst/internal/domain/entities"
|
||||
)
|
||||
|
||||
func TestExtractHTMLTitleAndSubtitle(t *testing.T) {
|
||||
s := NewMetadataService()
|
||||
html := `<html><head><title>Автор - Полный тайтл :: RuTracker.org</title></head>
|
||||
<div class="post_body"><span style="font-size: 24px; line-height: normal;">Наследник. Книга 03</span></div></html>`
|
||||
m, err := s.ParseTopicMetadata(html, entities.Torrent{Title: "Папка"})
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
if m.Title != "Наследник. Книга 03" {
|
||||
t.Errorf("title=%q", m.Title)
|
||||
}
|
||||
if m.Subtitle != "Автор - Полный тайтл" {
|
||||
t.Errorf("subtitle=%q", m.Subtitle)
|
||||
}
|
||||
}
|
||||
|
||||
func TestExtractSeriesAndTags(t *testing.T) {
|
||||
s := NewMetadataService()
|
||||
h := `<div class="post_body">
|
||||
<a href="viewforum.php?f=2387">[Аудио] Российская фантастика, фэнтези, мистика, ужасы, фанфики</a>
|
||||
<a href="tracker.php?f=2387" class="postLink">Цикл «Наследник»</a>
|
||||
<span class="post-b">Описание</span>: Текст
|
||||
</div>`
|
||||
m, err := s.ParseTopicMetadata(h, entities.Torrent{Title: "X"})
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
if len(m.Series) == 0 || m.Series[0] != "Наследник" {
|
||||
t.Errorf("series=%v", m.Series)
|
||||
}
|
||||
if len(m.Tags) == 0 || m.Tags[0] != "Российская фантастика, фэнтези, мистика, ужасы, фанфики" {
|
||||
t.Errorf("tags=%v", m.Tags)
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user