Commit c74fae7b authored by Kubernetes Submit Queue's avatar Kubernetes Submit Queue Committed by GitHub

Merge pull request #36172 from apprenda/kubeadm-tests-table-driven

Automatic merge from submit-queue kubeadm: changed tests to be table driven Small change to migrate tests in kubeadm/app/util/tokens_test.go to be table driven which should make adding more tests in the future easier and also have them match how other tests are being written. This PR is part of the ongoing effort to add tests (#35025)
parents 5658addb bff1af69
...@@ -49,7 +49,7 @@ func newCertificateAuthority() (*rsa.PrivateKey, *x509.Certificate, error) { ...@@ -49,7 +49,7 @@ func newCertificateAuthority() (*rsa.PrivateKey, *x509.Certificate, error) {
func newServerKeyAndCert(cfg *kubeadmapi.MasterConfiguration, caCert *x509.Certificate, caKey *rsa.PrivateKey, altNames certutil.AltNames) (*rsa.PrivateKey, *x509.Certificate, error) { func newServerKeyAndCert(cfg *kubeadmapi.MasterConfiguration, caCert *x509.Certificate, caKey *rsa.PrivateKey, altNames certutil.AltNames) (*rsa.PrivateKey, *x509.Certificate, error) {
key, err := certutil.NewPrivateKey() key, err := certutil.NewPrivateKey()
if err != nil { if err != nil {
return nil, nil, fmt.Errorf("unabel to create private key [%v]", err) return nil, nil, fmt.Errorf("unable to create private key [%v]", err)
} }
internalAPIServerFQDN := []string{ internalAPIServerFQDN := []string{
......
...@@ -38,44 +38,74 @@ func TestUsingEmptyTokenFails(t *testing.T) { ...@@ -38,44 +38,74 @@ func TestUsingEmptyTokenFails(t *testing.T) {
} }
func TestTokenValidationFailures(t *testing.T) { func TestTokenValidationFailures(t *testing.T) {
invalidTokens := []string{ var tests = []struct {
"1234567890123456789012", t string
"12345.1234567890123456", expected bool
".1234567890123456", }{
"123456.1234567890.123456", {
t: "1234567890123456789012",
expected: false,
},
{
t: "12345.1234567890123456",
expected: false,
},
{
t: ".1234567890123456",
expected: false,
},
{
t: "123456.1234567890.123456",
expected: false,
},
} }
for _, token := range invalidTokens { for _, rt := range tests {
s := newSecretsWithToken(token) s := newSecretsWithToken(rt.t)
_, err := UseGivenTokenIfValid(s) _, err := UseGivenTokenIfValid(s)
if (err == nil) != rt.expected {
if err == nil { t.Errorf(
t.Errorf("UseGivenTokenIfValid did not return an error for this invalid token: [%s]", token) "failed UseGivenTokenIfValid and did not return an error for this invalid token: [%s]",
rt.t,
)
} }
} }
} }
func TestValidTokenPopulatesSecrets(t *testing.T) { func TestValidTokenPopulatesSecrets(t *testing.T) {
s := newSecretsWithToken("123456.0123456789AbCdEf") var tests = []struct {
expectedToken := []byte("0123456789abcdef") token string
expectedTokenID := "123456" expectedToken []byte
expectedBearerToken := "0123456789abcdef" expectedTokenID string
expectedBearerToken string
given, err := UseGivenTokenIfValid(s) }{
if err != nil { {
t.Errorf("UseGivenTokenIfValid gave an error for a valid token: %v", err) token: "123456.0123456789AbCdEf",
} expectedToken: []byte("0123456789abcdef"),
if !given { expectedTokenID: "123456",
t.Error("UseGivenTokenIfValid returned given = false when given a valid token") expectedBearerToken: "0123456789abcdef",
} },
if s.TokenID != expectedTokenID {
t.Errorf("UseGivenTokenIfValid did not populate the TokenID correctly; expected [%s] but got [%s]", expectedTokenID, s.TokenID)
}
if s.BearerToken != expectedBearerToken {
t.Errorf("UseGivenTokenIfValid did not populate the BearerToken correctly; expected [%s] but got [%s]", expectedBearerToken, s.BearerToken)
} }
if !bytes.Equal(s.Token, expectedToken) {
t.Errorf("UseGivenTokenIfValid did not populate the Token correctly; expected %v but got %v", expectedToken, s.Token) for _, rt := range tests {
s := newSecretsWithToken(rt.token)
given, err := UseGivenTokenIfValid(s)
if err != nil {
t.Errorf("UseGivenTokenIfValid gave an error for a valid token: %v", err)
}
if !given {
t.Error("UseGivenTokenIfValid returned given = false when given a valid token")
}
if s.TokenID != rt.expectedTokenID {
t.Errorf("UseGivenTokenIfValid did not populate the TokenID correctly; expected [%s] but got [%s]", rt.expectedTokenID, s.TokenID)
}
if s.BearerToken != rt.expectedBearerToken {
t.Errorf("UseGivenTokenIfValid did not populate the BearerToken correctly; expected [%s] but got [%s]", rt.expectedBearerToken, s.BearerToken)
}
if !bytes.Equal(s.Token, rt.expectedToken) {
t.Errorf("UseGivenTokenIfValid did not populate the Token correctly; expected %v but got %v", rt.expectedToken, s.Token)
}
} }
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment