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/rsa_key_pair_credential_test.go   A

Size/Duplication

Total Lines 123
Duplicated Lines 0 %

Importance

Changes 0
Metric Value
cc 14
eloc 80
dl 0
loc 123
rs 10
c 0
b 0
f 0

1 Method

Rating   Name   Duplication   Size   Complexity  
F credentials.Test_KeyPairCredential 0 111 14
1
package credentials
2
3
import (
4
	"errors"
5
	"net/http"
6
	"testing"
7
8
	"github.com/aliyun/credentials-go/credentials/utils"
9
10
	"github.com/stretchr/testify/assert"
11
)
12
13
func Test_KeyPairCredential(t *testing.T) {
14
	privatekey := `
15
MIICeQIBADANBgkqhkiG9w0BAQEFAASCAmMwggJfAgEAAoGBAOJC+2WXtkXZ+6sa
16
3+qJp4mDOsiZb3BghHT9nVbjTeaw4hsZWHYxQ6l6XDmTg4twPB59LOGAlAjYrT31
17
3pdwEawnmdf6zyF93Zvxxpy7lO2HoxYKSjbtXO4I0pcq3WTnw2xlbhqHvrcuWwt+
18
FqH9akzcnwHjc03siZBzt/dwDL3vAgMBAAECgYEAzwgZPqFuUEYgaTVDFDl2ynYA
19
kNMMzBgUu3Pgx0Nf4amSitdLQYLcdbQXtTtMT4eYCxHgwkpDqkCRbLOQRKNwFo0I
20
oaCuhjZlxWcKil4z4Zb/zB7gkeuXPOVUjFSS3FogsRWMtnNAMgR/yJRlbcg/Puqk
21
Magt/yDk+7cJCe6H96ECQQDxMT4S+tVP9nOw//QT39Dk+kWe/YVEhnWnCMZmGlEq
22
1gnN6qpUi68ts6b3BVgrDPrPN6wm/Z9vpcKNeWpIvxXRAkEA8CcT2UEUwDGRKAUu
23
WVPJqdAJjpjc072eRF5g792NyO+TAF6thBlDKNslRvFQDB6ymLsjfy8JYCnGbbSb
24
WqbHvwJBAIs7KeI6+jiWxGJA3t06LpSABQCqyOut0u0Bm8YFGyXnOPGtrXXwzMdN
25
Fe0zIJp5e69zK+W2Mvt4bL7OgBROeoECQQDsE+4uLw0gFln0tosmovhmp60NcfX7
26
bLbtzL2MbwbXlbOztF7ssgzUWAHgKI6hK3g0LhsqBuo3jzmSVO43giZvAkEA08Nm
27
2TI9EvX6DfCVfPOiKZM+Pijh0xLN4Dn8qUgt3Tcew/vfj4WA2ZV6qiJqL01vMsHc
28
vftlY0Hs1vNXcaBgEA==`
29
	auth := newRsaKeyPairCredential(privatekey, "publicKeyID", 100, &utils.Runtime{Host: "www.aliyun.com", Proxy: "www.aliyuncs.com"})
30
	origTestHookDo := hookDo
31
	defer func() { hookDo = origTestHookDo }()
32
	hookDo = func(fn func(req *http.Request) (*http.Response, error)) func(req *http.Request) (*http.Response, error) {
33
		return func(req *http.Request) (*http.Response, error) {
34
			return mockResponse(200, `{"Credentials":{"AccessKeyID":"accessKeyID","AccessKeySecret":"accessKeySecret","SecurityToken":"securitytoken","Expiration":"expiration"}}`, errors.New("Internal error"))
35
		}
36
	}
37
	accesskeyID, err := auth.GetAccessKeyID()
38
	assert.NotNil(t, err)
39
	assert.Equal(t, "[InvalidParam]:Key Pair session duration should be in the range of 15min - 1Hr", err.Error())
40
	assert.Equal(t, "", accesskeyID)
41
42
	accesskeySecret, err := auth.GetAccessSecret()
43
	assert.NotNil(t, err)
44
	assert.Equal(t, "[InvalidParam]:Key Pair session duration should be in the range of 15min - 1Hr", err.Error())
45
	assert.Equal(t, "", accesskeySecret)
46
47
	ststoken, err := auth.GetSecurityToken()
48
	assert.Nil(t, err)
49
	assert.Equal(t, "", ststoken)
50
51
	assert.Equal(t, "", auth.GetBearerToken())
52
	assert.Equal(t, "rsa_key_pair", auth.GetType())
53
54
	auth.SessionExpiration = 1000
55
	accesskeyID, err = auth.GetAccessKeyID()
56
	assert.NotNil(t, err)
57
	assert.Equal(t, "refresh KeyPair err: Internal error", err.Error())
58
	assert.Equal(t, "", accesskeyID)
59
60
	auth.SessionExpiration = 0
61
	accesskeyID, err = auth.GetAccessKeyID()
62
	assert.NotNil(t, err)
63
	assert.Equal(t, "refresh KeyPair err: Internal error", err.Error())
64
	assert.Equal(t, "", accesskeyID)
65
66
	hookDo = func(fn func(req *http.Request) (*http.Response, error)) func(req *http.Request) (*http.Response, error) {
67
		return func(req *http.Request) (*http.Response, error) {
68
			return mockResponse(300, ``, nil)
69
		}
70
	}
71
	accesskeyID, err = auth.GetAccessKeyID()
72
	assert.NotNil(t, err)
73
	assert.Equal(t, "refresh KeyPair err: httpStatus: 300, message = ", err.Error())
74
	assert.Equal(t, "", accesskeyID)
75
76
	hookDo = func(fn func(req *http.Request) (*http.Response, error)) func(req *http.Request) (*http.Response, error) {
77
		return func(req *http.Request) (*http.Response, error) {
78
			return mockResponse(200, `"SessionAccessKey":{"SessionAccessKeyID":"accessKeyID","SessionAccessKeySecret":"accessKeySecret","Expiration":"expiration"}}`, nil)
79
		}
80
	}
81
	accesskeyID, err = auth.GetAccessKeyID()
82
	assert.NotNil(t, err)
83
	assert.Equal(t, "refresh KeyPair err: Json Unmarshal fail: invalid character ':' after top-level value", err.Error())
84
	assert.Equal(t, "", accesskeyID)
85
86
	hookDo = func(fn func(req *http.Request) (*http.Response, error)) func(req *http.Request) (*http.Response, error) {
87
		return func(req *http.Request) (*http.Response, error) {
88
			return mockResponse(200, `{"SessionAccessKey":{"SessionAccessKeySecret":"accessKeySecret","Expiration":"expiration"}}`, nil)
89
		}
90
	}
91
	accesskeyID, err = auth.GetAccessKeyID()
92
	assert.NotNil(t, err)
93
	assert.Equal(t, "refresh KeyPair err: SessionAccessKeyID: , SessionAccessKeySecret: accessKeySecret, Expiration: expiration", err.Error())
94
	assert.Equal(t, "", accesskeyID)
95
96
	hookDo = func(fn func(req *http.Request) (*http.Response, error)) func(req *http.Request) (*http.Response, error) {
97
		return func(req *http.Request) (*http.Response, error) {
98
			return mockResponse(200, `{}`, nil)
99
		}
100
	}
101
	accesskeyID, err = auth.GetAccessKeyID()
102
	assert.NotNil(t, err)
103
	assert.Equal(t, "refresh KeyPair err: SessionAccessKey is empty", err.Error())
104
	assert.Equal(t, "", accesskeyID)
105
106
	hookDo = func(fn func(req *http.Request) (*http.Response, error)) func(req *http.Request) (*http.Response, error) {
107
		return func(req *http.Request) (*http.Response, error) {
108
			return mockResponse(200, `{"SessionAccessKey":{"SessionAccessKeyID":"accessKeyID","SessionAccessKeySecret":"accessKeySecret","Expiration":"2020-01-02T15:04:05Z"}}`, nil)
109
		}
110
	}
111
	accesskeyID, err = auth.GetAccessKeyID()
112
	assert.Nil(t, err)
113
	assert.Equal(t, "accessKeyID", accesskeyID)
114
115
	accesskeySecret, err = auth.GetAccessSecret()
116
	assert.Nil(t, err)
117
	assert.Equal(t, "accessKeySecret", accesskeySecret)
118
119
	auth.runtime = nil
120
	auth.lastUpdateTimestamp = 0
121
	accesskeyID, err = auth.GetAccessKeyID()
122
	assert.Nil(t, err)
123
	assert.Equal(t, "accessKeyID", accesskeyID)
124
}
125