コード例 #1
0
ファイル: repos_test.go プロジェクト: go-gophers/gophers
func createRepo(t *testing.T, record bool) string {
	// create repo
	repo := TestPrefix + faker.Internet().UserName()
	req := Client.NewRequest(t, "POST", "/user/repos", jsons.Parse(`{"name": %q}`, repo))
	if record {
		req.EnableRecording("repo_create.apib")
	}
	j := Client.Do(t, req, 201).JSON(t)
	assert.Equal(t, jsons.Parse(`{"name": %q, "full_name": %q}`, repo, Login+"/"+repo), j.KeepFields("name", "full_name"))
	assert.Equal(t, jsons.Parse(`{"login": %q}`, Login), j.Get("/owner").KeepFields("login"))
	return repo
}
コード例 #2
0
ファイル: client_test.go プロジェクト: go-gophers/gophers
func TestRequestResponseBody(t *testing.T) {
	u, err := url.Parse("http://jsonplaceholder.typicode.com")
	require.Nil(t, err)
	client := NewClient(*u)

	j := jsons.Parse(`{"userId": 1, "id": 101, "title": "title", "body": "body"}`)
	req := client.NewRequest(t, "POST", "/posts", j)
	assert.Nil(t, req.Body)
	assert.NotNil(t, req.Request.Body)

	resp := client.Do(t, req, 201)
	assert.Equal(t, []byte(j.String()), req.Body)
	assert.IsType(t, errorReadCloser{}, req.Request.Body)
	assert.Equal(t, jsons.Parse(`{"id": 101}`), jsons.ParseBytes(resp.Body))
	assert.IsType(t, errorReadCloser{}, resp.Response.Body)
}
コード例 #3
0
ファイル: repos_test.go プロジェクト: go-gophers/gophers
func TestRepoCreateDestroy(t *testing.T) {
	t.Parallel()

	repo := createRepo(t, true)
	defer destroyRepo(t, repo)

	// check repo exists
	j := Client.Get(t, "/repos/"+Login+"/"+repo, 200).JSON(t)
	assert.Equal(t, jsons.Parse(`{"login": %q}`, Login), j.Get("/owner").KeepFields("login"))

	// try to create repo with the same name again
	req := Client.NewRequest(t, "POST", "/user/repos", jsons.Parse(`{"name": %q}`, repo)).EnableRecording("repo_create_exist.apib")
	j = Client.Do(t, req, 422).JSON(t)
	assert.Equal(t, jsons.Parse(`{"message": "Validation Failed"}`), j.KeepFields("message"))
	assert.Equal(t, jsons.Parse(`{"code": "custom", "field": "name"}`), j.Get("/errors/0").KeepFields("code", "field"))
}
コード例 #4
0
ファイル: orgs_test.go プロジェクト: go-gophers/gophers
func TestListOrgs(t *testing.T) {
	t.Parallel()

	j := Client.Get(t, "/user/orgs", 200).JSON(t)

	var found bool
	v := j.KeepFields("login")
	expect := jsons.Parse(`{"login": "******"}`).String()
	for _, e := range v.(jsons.Array) {
		if jsons.Cast(e).String() == expect {
			found = true
			break
		}
	}

	assert.True(t, found, "current user doesn't belong to go-gophers organization")
}
コード例 #5
0
ファイル: repos_test.go プロジェクト: go-gophers/gophers
func TestRepoList(t *testing.T) {
	t.Parallel()

	repo := createRepo(t, false)
	defer destroyRepo(t, repo)

	j := Client.Get(t, "/user/repos?visibility=public&affiliation=owner&sort=created", 200).JSON(t)

	var found bool
	v := j.KeepFields("name")
	expect := jsons.Parse(`{"name": %q}`, repo).String()
	for _, e := range v.(jsons.Array) {
		if jsons.Cast(e).String() == expect {
			found = true
			break
		}
	}

	assert.True(t, found, "created repository not found in list")
}