-
Notifications
You must be signed in to change notification settings - Fork 8
/
Copy pathuser_service_test.go
65 lines (55 loc) · 1.91 KB
/
user_service_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
package main
import (
"github.com/bmizerany/assert"
"testing"
)
func TestUserServiceTestLoads(t *testing.T) {
assert.Equal(t, true, true)
}
func TestThatConsumerUserServiceRespondsWhenTrue(t *testing.T) {
us := setupUs(true)
assert.Equal(t, true, us.Can())
}
func TestThatTheStructIsFilled(t *testing.T) {
us := setupUs(true)
us.GetResponse()
assert.Equal(t, true, us.Action != "")
assert.Equal(t, true, us.Username != "")
assert.Equal(t, true, us.Project != "")
}
func TestThatConsumerUserServiceRespondsWhenFalse(t *testing.T) {
us := setupUs(false)
assert.Equal(t, false, us.Can())
}
func TestThatConsumerUserServiceSetsMessageWhenInvalidAction(t *testing.T) {
us := NewUserService("http://somewhere.net", "testuser", "testproject", "poo")
assert.Equal(t, "poo is not in AllowedActions", us.UserAccessResponse.Message)
}
func TestConsumerUserServiceResponds_Can(t *testing.T) {
us := NewUserService("http://somewhere.net", "testuser", "testproject", "download")
us.Downloader.Response = mock_get_page("http://somewhere.net", true)
assert.Equal(t, true, us.Can())
}
func TestDownloaderAccessWhenTrue(t *testing.T) {
us := setupUs(true)
assert.Equal(t, true, us.UserAccessResponse.Access)
assert.Equal(t, "yay", us.UserAccessResponse.Status)
assert.Equal(t, "Some Message", us.UserAccessResponse.Message)
}
func TestDownloaderAccessWhenFalse(t *testing.T) {
us := setupUs(false)
assert.Equal(t, false, us.UserAccessResponse.Access)
assert.Equal(t, false, us.Can())
assert.Equal(t, "yay", us.UserAccessResponse.Status)
assert.Equal(t, "Some Message", us.UserAccessResponse.Message)
}
func setupUs(access bool) *UserService {
d := &Downloader{Response: mock_get_page("http://somewhere.net", access)}
uar := &UserAccessResponse{RawResponse: d.Response}
us := &UserService{Downloader: d, UserAccessResponse: uar}
us.Action = "download"
us.Project = "testproject"
us.Username = "testuser"
us.GetResponse()
return us
}