-
Notifications
You must be signed in to change notification settings - Fork 44
/
Copy pathrepo_test.go
68 lines (59 loc) · 1.68 KB
/
repo_test.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
package store
import (
"testing"
"github.com/golangplus/testing/assert"
gpb "github.com/daviddengcn/gcse/shared/proto"
)
func TestUpdateReadDeleteRepository(t *testing.T) {
const (
site = "TestUpdateReadDeleteRepository.com"
user = "daviddengcn"
repo = "gcse"
)
assert.NoError(t, UpdateRepository(site, user, repo, func(doc *gpb.Repository) error {
assert.Equal(t, "doc", doc, &gpb.Repository{})
doc.Stars = 10
return nil
}))
r, err := ReadRepository(site, user, repo)
assert.NoError(t, err)
assert.Equal(t, "r", r, &gpb.Repository{Stars: 10})
assert.NoError(t, DeleteRepository(site, user, repo))
r, err = ReadRepository(site, user, repo)
assert.NoError(t, err)
assert.Equal(t, "r", r, &gpb.Repository{})
}
func TestForEachRepositorySite(t *testing.T) {
cleanDatabase(t)
const (
site = "TestForEachRepositorySite.com"
user = "daviddengcn"
repo = "gcse"
)
assert.NoError(t, UpdateRepository(site, user, repo, func(doc *gpb.Repository) error {
return nil
}))
var sites []string
assert.NoError(t, ForEachRepositorySite(func(site string) error {
sites = append(sites, site)
return nil
}))
assert.Equal(t, "sites", sites, []string{site})
}
func TestForEachRepositoryOfSite(t *testing.T) {
const (
site = "TestForEachRepositoryOfSite.com"
user = "daviddengcn"
repo = "gcse"
)
assert.NoError(t, UpdateRepository(site, user, repo, func(doc *gpb.Repository) error {
doc.ReadmeData = "hello"
return nil
}))
assert.NoError(t, ForEachRepositoryOfSite(site, func(u, r string, doc *gpb.Repository) error {
assert.Equal(t, "user", u, user)
assert.Equal(t, "repo", r, repo)
assert.Equal(t, "doc", doc, &gpb.Repository{ReadmeData: "hello"})
return nil
}))
}