testhelpers

package
v0.1.1 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Feb 28, 2026 License: GPL-3.0 Imports: 13 Imported by: 0

Documentation

Overview

Package testhelpers provides test fixtures and mock data for unit and integration tests. This package contains RSS feed examples, test data constants, and helper utilities for creating consistent test scenarios.

Index

Constants

View Source
const EmptyRSSFeed = `` /* 398-byte string literal not displayed */

EmptyRSSFeed is a valid RSS feed with no episodes.

View Source
const InvalidXMLFeed = `` /* 144-byte string literal not displayed */

InvalidXMLFeed is an invalid XML document for testing error handling.

View Source
const MockItunesEmptyResponse = `{
  "resultCount": 0,
  "results": []
}`

MockItunesEmptyResponse is a mock iTunes API response with no results.

View Source
const MockItunesSearchResponse = `` /* 882-byte string literal not displayed */

MockItunesSearchResponse is a mock response from iTunes API search.

View Source
const RSSFeedWithItunesExtensions = `` /* 1586-byte string literal not displayed */

RSSFeedWithItunesExtensions is a feed with comprehensive iTunes namespace tags.

View Source
const RSSFeedWithSpecialCharacters = `` /* 861-byte string literal not displayed */

RSSFeedWithSpecialCharacters tests encoding and sanitization.

View Source
const ValidRSSFeed = `` /* 1253-byte string literal not displayed */

ValidRSSFeed is a valid RSS 2.0 podcast feed for testing.

Variables

This section is empty.

Functions

func CreateMockFileHandler

func CreateMockFileHandler(content string) http.Handler

CreateMockFileHandler creates an HTTP handler that returns file content.

func CreateMockRSSHandler

func CreateMockRSSHandler(rssContent string) http.Handler

CreateMockRSSHandler creates an HTTP handler that returns RSS feed content.

func GenerateLargeRSSFeed

func GenerateLargeRSSFeed(episodeCount int) string

GenerateLargeRSSFeed creates an RSS feed with the specified number of episodes for pagination testing.

func SetupTestDB

func SetupTestDB(t *testing.T) *gorm.DB

SetupTestDB creates an in-memory SQLite database for testing. It automatically runs migrations and returns the database connection. The database is isolated per test and will be cleaned up automatically.

func SetupTestDataDir

func SetupTestDataDir(t *testing.T) (dataDir string, cleanup func())

SetupTestDataDir creates a temporary directory for test file operations. It sets the DATA environment variable and returns a cleanup function.

func TeardownTestDB

func TeardownTestDB(t *testing.T, database *gorm.DB)

TeardownTestDB closes the database connection and cleans up resources.

Types

type MockRepository

type MockRepository struct {
	GetPodcastByURLError    error
	GetOrCreateSettingError error
	GetAllPodcastItemsError error
	CreatePodcastItemError  error
	GetPodcastItemByIdError error
	UpdatePodcastError      error
	CreatePodcastError      error
	PodcastItems            map[string]*db.PodcastItem
	Tags                    map[string]*db.Tag
	Settings                *db.Setting
	JobLocks                map[string]*db.JobLock
	Podcasts                map[string]*db.Podcast
	GetPodcastByURLCalls    int
	LockCalls               int
	UnlockCalls             int
	GetOrCreateSettingCalls int
	GetAllPodcastItemsCalls int
	UpdatePodcastItemCalls  int
	CreatePodcastItemCalls  int
	DeletePodcastByIdCalls  int
	UpdatePodcastCalls      int
	CreatePodcastCalls      int
}

MockRepository is a mock implementation of database.Repository for testing. It stores data in memory and allows tests to control behavior and verify calls.

func NewMockRepository

func NewMockRepository() *MockRepository

NewMockRepository creates a new mock repository with empty data stores.

func (*MockRepository) AddTagToPodcast

func (m *MockRepository) AddTagToPodcast(id, tagID string) error

func (*MockRepository) CreatePodcast

func (m *MockRepository) CreatePodcast(podcast *db.Podcast) error

func (*MockRepository) CreatePodcastItem

func (m *MockRepository) CreatePodcastItem(podcastItem *db.PodcastItem) error

func (*MockRepository) CreateTag

func (m *MockRepository) CreateTag(tag *db.Tag) error

func (*MockRepository) DeletePodcastByID

func (m *MockRepository) DeletePodcastByID(id string) error

func (*MockRepository) DeletePodcastItemByID

func (m *MockRepository) DeletePodcastItemByID(id string) error

func (*MockRepository) DeleteTagByID

func (m *MockRepository) DeleteTagByID(id string) error

func (*MockRepository) ForceSetLastEpisodeDate

func (m *MockRepository) ForceSetLastEpisodeDate(podcastID string)

func (*MockRepository) GetAllPodcastItems

func (m *MockRepository) GetAllPodcastItems(podcasts *[]db.PodcastItem) error

func (*MockRepository) GetAllPodcastItemsAlreadyDownloaded

func (m *MockRepository) GetAllPodcastItemsAlreadyDownloaded() (*[]db.PodcastItem, error)

func (*MockRepository) GetAllPodcastItemsByIDs

func (m *MockRepository) GetAllPodcastItemsByIDs(podcastItemIds []string) (*[]db.PodcastItem, error)

func (*MockRepository) GetAllPodcastItemsByPodcastID

func (m *MockRepository) GetAllPodcastItemsByPodcastID(podcastID string, podcastItems *[]db.PodcastItem) error

func (*MockRepository) GetAllPodcastItemsByPodcastIDs

func (m *MockRepository) GetAllPodcastItemsByPodcastIDs(podcastIds []string, podcastItems *[]db.PodcastItem) error

func (*MockRepository) GetAllPodcastItemsToBeDownloaded

func (m *MockRepository) GetAllPodcastItemsToBeDownloaded() (*[]db.PodcastItem, error)

func (*MockRepository) GetAllPodcastItemsWithoutImage

func (m *MockRepository) GetAllPodcastItemsWithoutImage() (*[]db.PodcastItem, error)

func (*MockRepository) GetAllPodcastItemsWithoutSize

func (m *MockRepository) GetAllPodcastItemsWithoutSize() (*[]db.PodcastItem, error)

func (*MockRepository) GetAllPodcasts

func (m *MockRepository) GetAllPodcasts(podcasts *[]db.Podcast, sorting string) error

func (*MockRepository) GetAllTags

func (m *MockRepository) GetAllTags(sorting string) (*[]db.Tag, error)

func (*MockRepository) GetEpisodeNumber

func (m *MockRepository) GetEpisodeNumber(podcastItemID, podcastID string) (int, error)

func (*MockRepository) GetLock

func (m *MockRepository) GetLock(name string) *db.JobLock

func (*MockRepository) GetOrCreateSetting

func (m *MockRepository) GetOrCreateSetting() *db.Setting

func (*MockRepository) GetPaginatedPodcastItems

func (m *MockRepository) GetPaginatedPodcastItems(page, count int, downloadedOnly, playedOnly *bool, fromDate time.Time, podcasts *[]db.PodcastItem, total *int64) error

func (*MockRepository) GetPaginatedPodcastItemsNew

func (m *MockRepository) GetPaginatedPodcastItemsNew(queryModel *model.EpisodesFilter) (*[]db.PodcastItem, int64, error)

func (*MockRepository) GetPaginatedTags

func (m *MockRepository) GetPaginatedTags(page, count int, tags *[]db.Tag, total *int64) error

func (*MockRepository) GetPodcastByID

func (m *MockRepository) GetPodcastByID(id string, podcast *db.Podcast) error

func (*MockRepository) GetPodcastByTitleAndAuthor

func (m *MockRepository) GetPodcastByTitleAndAuthor(title, author string, podcast *db.Podcast) error

func (*MockRepository) GetPodcastByURL

func (m *MockRepository) GetPodcastByURL(url string, podcast *db.Podcast) error

func (*MockRepository) GetPodcastEpisodeDiskStats

func (m *MockRepository) GetPodcastEpisodeDiskStats() (db.PodcastItemConsolidateDiskStatsModel, error)

func (*MockRepository) GetPodcastEpisodeStats

func (m *MockRepository) GetPodcastEpisodeStats() (*[]db.PodcastItemStatsModel, error)

func (*MockRepository) GetPodcastItemByID

func (m *MockRepository) GetPodcastItemByID(id string, podcastItem *db.PodcastItem) error

func (*MockRepository) GetPodcastItemByPodcastIDAndGUID

func (m *MockRepository) GetPodcastItemByPodcastIDAndGUID(podcastID, guid string, podcastItem *db.PodcastItem) error

func (*MockRepository) GetPodcastItemsByPodcastIDAndGUIDs

func (m *MockRepository) GetPodcastItemsByPodcastIDAndGUIDs(podcastID string, guids []string) (*[]db.PodcastItem, error)

func (*MockRepository) GetPodcastsByURLList

func (m *MockRepository) GetPodcastsByURLList(urls []string, podcasts *[]db.Podcast) error

func (*MockRepository) GetTagByID

func (m *MockRepository) GetTagByID(id string) (*db.Tag, error)

func (*MockRepository) GetTagByLabel

func (m *MockRepository) GetTagByLabel(label string) (*db.Tag, error)

func (*MockRepository) GetTagsByIDs

func (m *MockRepository) GetTagsByIDs(ids []string) (*[]db.Tag, error)

func (*MockRepository) Lock

func (m *MockRepository) Lock(name string, duration int)

func (*MockRepository) RemoveTagFromPodcast

func (m *MockRepository) RemoveTagFromPodcast(id, tagID string) error

func (*MockRepository) Reset

func (m *MockRepository) Reset()

Reset clears all data and resets call counters.

func (*MockRepository) SetAllEpisodesToDownload

func (m *MockRepository) SetAllEpisodesToDownload(podcastID string) error

func (*MockRepository) TogglePodcastPauseStatus

func (m *MockRepository) TogglePodcastPauseStatus(podcastID string, isPaused bool) error

func (*MockRepository) Unlock

func (m *MockRepository) Unlock(name string)

func (*MockRepository) UnlockMissedJobs

func (m *MockRepository) UnlockMissedJobs()

func (*MockRepository) UntagAllByTagID

func (m *MockRepository) UntagAllByTagID(tagID string) error

func (*MockRepository) UpdateLastEpisodeDateForPodcast

func (m *MockRepository) UpdateLastEpisodeDateForPodcast(podcastID string, lastEpisode time.Time) error

func (*MockRepository) UpdatePodcast

func (m *MockRepository) UpdatePodcast(podcast *db.Podcast) error

func (*MockRepository) UpdatePodcastItem

func (m *MockRepository) UpdatePodcastItem(podcastItem *db.PodcastItem) error

func (*MockRepository) UpdatePodcastItemFileSize

func (m *MockRepository) UpdatePodcastItemFileSize(podcastItemID string, size int64) error

func (*MockRepository) UpdateSettings

func (m *MockRepository) UpdateSettings(setting *db.Setting) error

func (*MockRepository) UpdateTag

func (m *MockRepository) UpdateTag(tag *db.Tag) error

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL