GitHub Access Token became invalid

It seems like the GitHub access token used for retrieving details about this repository from GitHub became invalid. This might prevent certain types of inspections from being run (in particular, everything related to pull requests).
Please ask an admin of your repository to re-new the access token on this website.
Completed
Push — master ( 62d30f...b48a48 )
by zuochao
14s queued 12s
created

credentials/ecs_ram_role_test.go   A

Size/Duplication

Total Lines 111
Duplicated Lines 0 %

Importance

Changes 0
Metric Value
cc 16
eloc 78
dl 0
loc 111
rs 10
c 0
b 0
f 0

1 Method

Rating   Name   Duplication   Size   Complexity  
F credentials.Test_EcsRAmRoleCredential 0 101 16
1
package credentials
2
3
import (
4
	"errors"
5
	"net/http"
6
	"testing"
7
8
	"github.com/stretchr/testify/assert"
9
)
10
11
func Test_EcsRAmRoleCredential(t *testing.T) {
12
	auth := newEcsRAMRoleCredential("go sdk", nil)
13
	origTestHookDo := hookDo
14
	defer func() { hookDo = origTestHookDo }()
15
16
	hookDo = func(fn func(req *http.Request) (*http.Response, error)) func(req *http.Request) (*http.Response, error) {
17
		return func(req *http.Request) (*http.Response, error) {
18
			return mockResponse(300, ``, errors.New("sdk test"))
19
		}
20
	}
21
	accesskeyID, err := auth.GetAccessKeyID()
22
	assert.NotNil(t, err)
23
	assert.Equal(t, "refresh Ecs sts token err: sdk test", err.Error())
24
	assert.Equal(t, "", accesskeyID)
25
26
	hookDo = func(fn func(req *http.Request) (*http.Response, error)) func(req *http.Request) (*http.Response, error) {
27
		return func(req *http.Request) (*http.Response, error) {
28
			return mockResponse(300, ``, nil)
29
		}
30
	}
31
	accesskeyID, err = auth.GetAccessKeyID()
32
	assert.NotNil(t, err)
33
	assert.Equal(t, "refresh Ecs sts token err: httpStatus: 300, message = ", err.Error())
34
	assert.Equal(t, "", accesskeyID)
35
36
	accesskeySecret, err := auth.GetAccessSecret()
37
	assert.NotNil(t, err)
38
	assert.Equal(t, "refresh Ecs sts token err: httpStatus: 300, message = ", err.Error())
39
	assert.Equal(t, "", accesskeySecret)
40
41
	ststoken, err := auth.GetSecurityToken()
42
	assert.NotNil(t, err)
43
	assert.Equal(t, "refresh Ecs sts token err: httpStatus: 300, message = ", err.Error())
44
	assert.Equal(t, "", ststoken)
45
46
	assert.Equal(t, "", auth.GetBearerToken())
47
48
	assert.Equal(t, "ecs_ram_role", auth.GetType())
49
50
	hookDo = func(fn func(req *http.Request) (*http.Response, error)) func(req *http.Request) (*http.Response, error) {
51
		return func(req *http.Request) (*http.Response, error) {
52
			return mockResponse(200, `"AccessKeyID":"accessKeyID","AccessKeySecret":"accessKeySecret","SecurityToken":"securitytoken","Expiration":"expiration"`, nil)
53
		}
54
	}
55
	accesskeyID, err = auth.GetAccessKeyID()
56
	assert.NotNil(t, err)
57
	assert.Equal(t, "refresh Ecs sts token err: Json Unmarshal fail: invalid character ':' after top-level value", err.Error())
58
	assert.Equal(t, "", accesskeyID)
59
60
	hookDo = func(fn func(req *http.Request) (*http.Response, error)) func(req *http.Request) (*http.Response, error) {
61
		return func(req *http.Request) (*http.Response, error) {
62
			return mockResponse(200, `{"AccessKeySecret":"accessKeySecret","SecurityToken":"securitytoken","Expiration":"expiration","Code":"fail"}`, nil)
63
		}
64
	}
65
	accesskeyID, err = auth.GetAccessKeyID()
66
	assert.NotNil(t, err)
67
	assert.Equal(t, "refresh Ecs sts token err: Code is not Success", err.Error())
68
	assert.Equal(t, "", accesskeyID)
69
70
	hookDo = func(fn func(req *http.Request) (*http.Response, error)) func(req *http.Request) (*http.Response, error) {
71
		return func(req *http.Request) (*http.Response, error) {
72
			return mockResponse(200, `{"AccessKeySecret":"accessKeySecret","SecurityToken":"securitytoken","Expiration":"expiration","Code":"Success"}`, nil)
73
		}
74
	}
75
	accesskeyID, err = auth.GetAccessKeyID()
76
	assert.NotNil(t, err)
77
	assert.Equal(t, "refresh Ecs sts token err: AccessKeyID: , AccessKeySecret: accessKeySecret, SecurityToken: securitytoken, Expiration: expiration", err.Error())
78
	assert.Equal(t, "", accesskeyID)
79
80
	hookDo = func(fn func(req *http.Request) (*http.Response, error)) func(req *http.Request) (*http.Response, error) {
81
		return func(req *http.Request) (*http.Response, error) {
82
			return mockResponse(200, `{"AccessKeyID":"accessKeyID","AccessKeySecret":"accessKeySecret","SecurityToken":"securitytoken","Expiration":"2018-01-02T15:04:05Z","Code":"Success"}`, nil)
83
		}
84
	}
85
86
	accesskeyID, err = auth.GetAccessKeyID()
87
	assert.Nil(t, err)
88
	assert.Equal(t, "accessKeyID", accesskeyID)
89
90
	accesskeySecret, err = auth.GetAccessSecret()
91
	assert.Nil(t, err)
92
	assert.Equal(t, "accessKeySecret", accesskeySecret)
93
94
	ststoken, err = auth.GetSecurityToken()
95
	assert.Nil(t, err)
96
	assert.Equal(t, "securitytoken", ststoken)
97
98
	err = errors.New("credentials")
99
	err = hookParse(err)
100
	assert.Equal(t, "credentials", err.Error())
101
102
	originHookParse := hookParse
103
	hookParse = func(err error) error {
104
		return errors.New("error parse")
105
	}
106
	defer func() {
107
		hookParse = originHookParse
108
	}()
109
	accesskeyID, err = auth.GetAccessKeyID()
110
	assert.Equal(t, "refresh Ecs sts token err: error parse", err.Error())
111
	assert.Equal(t, "", accesskeyID)
112
}
113