Files
music-agregator/test/component/fixtures_test.go
T

84 lines
2.0 KiB
Go

package component
import (
metadataPb "homelab.lan/music-agregator/gen/metadata/v1"
"homelab.lan/music-agregator/internal/indexer"
)
func newMetadataAlbum(id, title, artistID, artistName string) *metadataPb.Album {
return &metadataPb.Album{
Id: id,
Title: title,
AlbumType: "album",
ReleaseDate: "2024-01-15",
TotalTracks: 10,
TotalDiscs: 1,
CoverUrl: "https://example.com/cover.jpg",
Artists: []*metadataPb.ArtistCredit{
{
Artist: &metadataPb.Artist{
Id: artistID,
Name: artistName,
},
Role: "primary",
Position: 1,
},
},
Label: &metadataPb.Label{
Id: "label-1",
Name: "Test Label",
},
Genres: []*metadataPb.Genre{
{Id: "genre-1", Name: "Rock"},
{Id: "genre-2", Name: "Alternative"},
},
}
}
func newMetadataTrack(id, title string, trackNum int32) *metadataPb.Track {
return &metadataPb.Track{
Id: id,
Title: title,
DurationMs: 240000,
Isrc: "US-XYZ-24-00001",
Explicit: false,
DiscNumber: 1,
TrackNumber: trackNum,
Artists: []*metadataPb.ArtistCredit{
{
Artist: &metadataPb.Artist{
Id: "artist-1",
Name: "Test Artist",
},
Role: "primary",
Position: 1,
},
},
}
}
func newSearchResponse(items ...*indexer.SearchItemResult) *indexer.SearchResponse {
return &indexer.SearchResponse{
Items: items,
}
}
func newSearchItem(title string, seeders int, downloadLink string) *indexer.SearchItemResult {
return &indexer.SearchItemResult{
Title: title,
DownloadLink: downloadLink,
Size: 500 * 1024 * 1024,
Tracker: "test-tracker",
Seeders: seeders,
Peers: seeders / 2,
}
}
func newTorrentData() []byte {
return []byte("d8:announce35:http://tracker.example.com/announce4:infod6:lengthi1024e4:name9:test.flac12:piece lengthi16384e6:pieces20:01234567890123456789ee")
}
func newTorrentDataMP3() []byte {
return []byte("d8:announce35:http://tracker.example.com/announce4:infod6:lengthi1024e4:name8:test.mp312:piece lengthi16384e6:pieces20:01234567890123456789ee")
}