Add tests for More and Random methods

Signed-off-by: Vartan Benohanian <vartanbeno@gmail.com>
This commit is contained in:
Vartan Benohanian
2020-07-20 22:47:59 -04:00
parent 465e96353c
commit eb79c4b53e
5 changed files with 932 additions and 18 deletions
+58
View File
@@ -118,6 +118,20 @@ var expectedModerators = []Moderator{
{ID: "t2_test2", Name: "testuser2", Permissions: []string{"all"}},
}
var expectedRandomSubreddit = &Subreddit{
FullID: "t5_2wi4l",
Created: &Timestamp{time.Date(2013, 3, 1, 4, 4, 18, 0, time.UTC)},
URL: "/r/GalaxyS8/",
Name: "GalaxyS8",
NamePrefixed: "r/GalaxyS8",
Title: "Samsung Galaxy S8",
Description: "The only place for news, discussion, photos, and everything else Samsung Galaxy S8.",
Type: "public",
Subscribers: 52357,
}
func TestSubredditService_GetByName(t *testing.T) {
setup()
defer teardown()
@@ -285,3 +299,47 @@ func TestSubredditService_Moderators(t *testing.T) {
assert.NoError(t, err)
assert.Equal(t, expectedModerators, moderators)
}
func TestSubredditService_Random(t *testing.T) {
setup()
defer teardown()
blob := readFileContents(t, "testdata/subreddit/random.json")
mux.HandleFunc("/r/random", func(w http.ResponseWriter, r *http.Request) {
assert.Equal(t, http.MethodGet, r.Method)
err := r.ParseForm()
assert.NoError(t, err)
assert.Equal(t, "true", r.Form.Get("sr_detail"))
assert.Equal(t, "1", r.Form.Get("limit"))
fmt.Fprint(w, blob)
})
subreddit, _, err := client.Subreddit.Random(ctx)
assert.NoError(t, err)
assert.Equal(t, expectedRandomSubreddit, subreddit)
}
func TestSubredditService_RandomNSFW(t *testing.T) {
setup()
defer teardown()
blob := readFileContents(t, "testdata/subreddit/random.json")
mux.HandleFunc("/r/randnsfw", func(w http.ResponseWriter, r *http.Request) {
assert.Equal(t, http.MethodGet, r.Method)
err := r.ParseForm()
assert.NoError(t, err)
assert.Equal(t, "true", r.Form.Get("sr_detail"))
assert.Equal(t, "1", r.Form.Get("limit"))
fmt.Fprint(w, blob)
})
subreddit, _, err := client.Subreddit.RandomNSFW(ctx)
assert.NoError(t, err)
assert.Equal(t, expectedRandomSubreddit, subreddit)
}