package reddit_test import ( "context" "testing" "time" "somegit.dev/vikingowl/reddit-reader/internal/domain" redditpkg "somegit.dev/vikingowl/reddit-reader/internal/reddit" ) type mockFetcher struct { posts []domain.Post err error } func (m *mockFetcher) FetchPosts(_ context.Context, _, _ string, _ int) ([]domain.Post, error) { return m.posts, m.err } func TestFetcherInterface(t *testing.T) { mock := &mockFetcher{ posts: []domain.Post{ {ID: "t3_a", Title: "Test", Subreddit: "golang", CreatedUTC: time.Now()}, }, } var fetcher redditpkg.Fetcher = mock posts, err := fetcher.FetchPosts(context.Background(), "golang", "new", 25) if err != nil { t.Fatalf("FetchPosts: %v", err) } if len(posts) != 1 { t.Fatalf("len = %d, want 1", len(posts)) } if posts[0].ID != "t3_a" { t.Errorf("ID = %q, want t3_a", posts[0].ID) } }