1
0
mirror of https://github.com/Luzifer/repo-template.git synced 2024-09-20 17:42:58 +00:00
repo-template/vendor/github.com/google/go-github/test/integration/activity_test.go
2018-02-07 10:03:05 +01:00

142 lines
4.0 KiB
Go

// Copyright 2014 The go-github AUTHORS. All rights reserved.
//
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.
// +build integration
package integration
import (
"context"
"testing"
"github.com/google/go-github/github"
)
const (
owner = "google"
repo = "go-github"
)
func TestActivity_Starring(t *testing.T) {
stargazers, _, err := client.Activity.ListStargazers(context.Background(), owner, repo, nil)
if err != nil {
t.Fatalf("Activity.ListStargazers returned error: %v", err)
}
if len(stargazers) == 0 {
t.Errorf("Activity.ListStargazers(%q, %q) returned no stargazers", owner, repo)
}
// the rest of the tests requires auth
if !checkAuth("TestActivity_Starring") {
return
}
// first, check if already starred the target repository
star, _, err := client.Activity.IsStarred(context.Background(), owner, repo)
if err != nil {
t.Fatalf("Activity.IsStarred returned error: %v", err)
}
if star {
t.Fatalf("Already starring %v/%v. Please manually unstar it first.", owner, repo)
}
// star the target repository
_, err = client.Activity.Star(context.Background(), owner, repo)
if err != nil {
t.Fatalf("Activity.Star returned error: %v", err)
}
// check again and verify starred
star, _, err = client.Activity.IsStarred(context.Background(), owner, repo)
if err != nil {
t.Fatalf("Activity.IsStarred returned error: %v", err)
}
if !star {
t.Fatalf("Not starred %v/%v after starring it.", owner, repo)
}
// unstar
_, err = client.Activity.Unstar(context.Background(), owner, repo)
if err != nil {
t.Fatalf("Activity.Unstar returned error: %v", err)
}
// check again and verify not watching
star, _, err = client.Activity.IsStarred(context.Background(), owner, repo)
if err != nil {
t.Fatalf("Activity.IsStarred returned error: %v", err)
}
if star {
t.Fatalf("Still starred %v/%v after unstarring it.", owner, repo)
}
}
func deleteSubscription(t *testing.T) {
// delete subscription
_, err := client.Activity.DeleteRepositorySubscription(context.Background(), owner, repo)
if err != nil {
t.Fatalf("Activity.DeleteRepositorySubscription returned error: %v", err)
}
// check again and verify not watching
sub, _, err := client.Activity.GetRepositorySubscription(context.Background(), owner, repo)
if err != nil {
t.Fatalf("Activity.GetRepositorySubscription returned error: %v", err)
}
if sub != nil {
t.Fatalf("Still watching %v/%v after deleting subscription.", owner, repo)
}
}
func createSubscription(t *testing.T) {
// watch the target repository
sub := &github.Subscription{Subscribed: github.Bool(true)}
_, _, err := client.Activity.SetRepositorySubscription(context.Background(), owner, repo, sub)
if err != nil {
t.Fatalf("Activity.SetRepositorySubscription returned error: %v", err)
}
// check again and verify watching
sub, _, err = client.Activity.GetRepositorySubscription(context.Background(), owner, repo)
if err != nil {
t.Fatalf("Activity.GetRepositorySubscription returned error: %v", err)
}
if sub == nil || !*sub.Subscribed {
t.Fatalf("Not watching %v/%v after setting subscription.", owner, repo)
}
}
func TestActivity_Watching(t *testing.T) {
watchers, _, err := client.Activity.ListWatchers(context.Background(), owner, repo, nil)
if err != nil {
t.Fatalf("Activity.ListWatchers returned error: %v", err)
}
if len(watchers) == 0 {
t.Errorf("Activity.ListWatchers(%q, %q) returned no watchers", owner, repo)
}
// the rest of the tests requires auth
if !checkAuth("TestActivity_Watching") {
return
}
// first, check if already watching the target repository
sub, _, err := client.Activity.GetRepositorySubscription(context.Background(), owner, repo)
if err != nil {
t.Fatalf("Activity.GetRepositorySubscription returned error: %v", err)
}
switch {
case sub != nil: // If already subscribing, delete then recreate subscription.
deleteSubscription(t)
createSubscription(t)
case sub == nil: // Otherwise, create subscription and then delete it.
createSubscription(t)
deleteSubscription(t)
}
}