예제 #1
0
func TestTvMazeSeasons(t *testing.T) {
	mux := http.NewServeMux()
	ts := httptest.NewServer(mux)
	defer ts.Close()

	mux.HandleFunc("/shows/1/episodes", func(w http.ResponseWriter, r *http.Request) {
		assert.Equal(t, "GET", r.Method)
		w.Header().Set("Content-Type", "application/json")
		fmt.Fprintln(w, readFixture("testdata/tvmaze_episodes.json"))
	})
	mux.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) {
		require.False(t, true)
	})

	sources.SetTvMazeURL(ts.URL)

	seasons, err := (sources.TvMaze{}).Seasons(&store.Show{ID: 1})
	require.NoError(t, err)
	require.Len(t, seasons, 3)
	var season1 sources.Season
	for _, v := range seasons {
		if v.Season == 1 {
			season1 = v
		}
	}
	assert.Len(t, season1.Episodes, 13)
}
예제 #2
0
func TestTvMazeSearch(t *testing.T) {
	mux := http.NewServeMux()
	ts := httptest.NewServer(mux)
	defer ts.Close()

	mux.HandleFunc("/search/shows", func(w http.ResponseWriter, r *http.Request) {
		w.Header().Set("Content-Type", "application/json")
		fmt.Fprintln(w, readFixture("testdata/tvmaze_search.json"))
	})
	mux.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) {
		require.False(t, true)
	})

	sources.SetTvMazeURL(ts.URL)

	results := (sources.TvMaze{}).Search("query")
	require.NoError(t, results.Error)
	require.Len(t, results.Shows, 10)
	assert.Equal(t, "Dead Set", results.Shows[0].Title)
}