github.com/wata727/tflint@v0.12.2-0.20191013070026-96dd0d36f385/rules/awsrules/models/aws_acm_certificate_invalid_certificate_chain_test.go (about)

     1  // This file generated by `tools/model-rule-gen/main.go`. DO NOT EDIT
     2  
     3  package models
     4  
     5  import (
     6  	"testing"
     7  
     8  	"github.com/wata727/tflint/tflint"
     9  )
    10  
    11  func Test_AwsAcmCertificateInvalidCertificateChainRule(t *testing.T) {
    12  	cases := []struct {
    13  		Name     string
    14  		Content  string
    15  		Expected tflint.Issues
    16  	}{
    17  		{
    18  			Name: "It includes invalid characters",
    19  			Content: `
    20  resource "aws_acm_certificate" "foo" {
    21  	certificate_chain = <<TEXT
    22  -----BEGIN PRIVATE KEY-----
    23  MIIEpAIBAAKCAQEAuY6k+pUBFm8jXhzBHiycUTe8D5nyV31kiS+Nr2DzPDcvDcVL
    24  VBPHmGr7CUEqdj3MAcVWGrYFTzXi97GjxsXxqZCLmj4EDtZ+2vjvt1W/xgDXt4PU
    25  V/96dvNAx3ZvqaaUaevMoYrzK7c541yQnmzosfinYBwTC1KsduxVpqnISfr0O+MJ
    26  rg0dWOX4evTQ5+/ZAfGSYlKWVkNAj64KIvCsVlPBU9CZ0MQbxOgifNT9v9S7Sf/5
    27  4GrMrsd+490euEOGS4E1/VbQF/gZ6MvTYfcE2+s244escztWzeCMGhb3PstheYGb
    28  3Lepud6fw37JCCPlrh+hnOpx6zf4P1ePVaPt2QIDAQABAoIBAGN8EAXtV3zwrzSp
    29  E/0ai+Cbki+HKUAxEXLf1QX/Y8mYCJlIex+jzzJvwRHwJ1TnwvX8GDMP/f6+9GY6
    30  joVm4S85OS/EKibOZ4r9RoCz77K4Bu/0NSfM6JrXxpZqcGmzzwSPENJXjhKVFOtK
    31  WJsn5wZsO0izJJ7Af4jvIujNRH4sq8oO0T5OHNlJprrR8KY7+7IJrAd+JyCWxuX3
    32  uToqrQALpZjSLi0+60+UZIVH+F4yJtkar1MS+K5bAAtX6gxaq3embIOD5KCooHpf
    33  +CXBuWhUpFIqdWWDKJunnbriuXPBVVx1BZBtALUMPEYZ+gR22l2s/ck0BGixsdcN
    34  VwDluuUCgYEA9k64okPnwUAQXyoHnA09zSJ0acr4aX/lqixY+fx0yn5Rs46WuFl0
    35  OkUSZ3YMoj5MM/hmrMgz2v7bleVDrsZYUM4//9bYVxRIf1/gHm6PRJDnAMDEiz7y
    36  crJCD1HTk/4CTcufbVnyyDt7NQe+qL9wRbTUMIojdZ1PsThv4zOuNhMCgYEAwNvu
    37  LXhUJ7Wc92xFwRbmhNw8nQu0YgwVkGiD5QMY/6FJhcGdLa/Ih3NvyZI+Q/x/qzTh
    38  udCHHlMgAftx5uA7IpZxQo0ak5a/T46X1EvRqcPZvOyDliBeYhhAXflyNfusmm5X
    39  cExL6g3aUXxa7ue255xkKo2Q1VH+b9YeP+pZeeMCgYEA2VqEkiTMWfvXtrLXPj1t
    40  IR3bjxQe/LJxkCdMaWYABkVMgeA9XvcJmvYjFIvXAEFra50zthuBryqhyfgkLxI3
    41  Ey++yFzmUonCpCyOESzNXttkDoUNrDdjKhXmN7Ckvf80N0SOLqhml43t3tEzzaQK
    42  RmkZqq/sNLkafzBnhB6yCGMCgYEAqtFhiXadmzpZ2DBXLCobbSwgp7zZPUqUwv4/
    43  bFUtDCYQF9+gVvnuNELDjZbxfYgkkEDbeZhARVS88eSDQ0nyNrVnhdmy42xO8KlM
    44  w2WQQ7xLm/Ekr5Dl6B6wzEuHpFbQz0vSOI3rY1h3uVras+Yac9RqR+JxmO/x256b
    45  1mK8c58CgYAA2zWV1m34tdbUmhc6ELNznbPxaM4sAe7mVooSxs02pTN5ToxMpkyn
    46  hLL+1AMBOhv57k6YDTzYf5adR38023TOrf6NuD9G5s0KeaFM8c7SrBt8BHA6MW9C
    47  7kJKP9RgFcXPFH6Z57rKykRaaDR6M+ELrhd488tOmqlwS9tnnWuoBQ==
    48  -----END PRIVATE KEY-----
    49  TEXT
    50  }`,
    51  			Expected: tflint.Issues{
    52  				{
    53  					Rule:    NewAwsAcmCertificateInvalidCertificateChainRule(),
    54  					Message: `certificate_chain does not match valid pattern ^(-{5}BEGIN CERTIFICATE-{5}\x{000D}?\x{000A}([A-Za-z0-9/+]{64}\x{000D}?\x{000A})*[A-Za-z0-9/+]{1,64}={0,2}\x{000D}?\x{000A}-{5}END CERTIFICATE-{5}\x{000D}?\x{000A})*-{5}BEGIN CERTIFICATE-{5}\x{000D}?\x{000A}([A-Za-z0-9/+]{64}\x{000D}?\x{000A})*[A-Za-z0-9/+]{1,64}={0,2}\x{000D}?\x{000A}-{5}END CERTIFICATE-{5}(\x{000D}?\x{000A})?$`,
    55  				},
    56  			},
    57  		},
    58  		{
    59  			Name: "It is valid",
    60  			Content: `
    61  resource "aws_acm_certificate" "foo" {
    62  	certificate_chain = <<TEXT
    63  -----BEGIN CERTIFICATE-----
    64  MIIEWjCCA0KgAwIBAgIQBUNA0KLEzIER+qg3fUbgbzANBgkqhkiG9w0BAQsFADBa
    65  MQswCQYDVQQGEwJJRTESMBAGA1UEChMJQmFsdGltb3JlMRMwEQYDVQQLEwpDeWJl
    66  clRydXN0MSIwIAYDVQQDExlCYWx0aW1vcmUgQ3liZXJUcnVzdCBSb290MB4XDTE2
    67  MTExNTEyMDMzMVoXDTI1MDUxMDEyMDAwMFowWjELMAkGA1UEBhMCSlAxIzAhBgNV
    68  BAoTGkN5YmVydHJ1c3QgSmFwYW4gQ28uLCBMdGQuMSYwJAYDVQQDEx1DeWJlcnRy
    69  dXN0IEphcGFuIFB1YmxpYyBDQSBHMzCCASIwDQYJKoZIhvcNAQEBBQADggEPADCC
    70  AQoCggEBAJRWo0VEVKpgZL+4V59O29R5aF8TBfQ/zSXdPF5Ydxyd5p/jMknvAjo0
    71  U41S5eM5Zh/nM2G2J8YkVVAnAmXwsIxBjTBeR1uCb8ecoyhDbVh7yBWYTiVvy3Yn
    72  WwssLLWYI+eLfP13GsRSul0Z7nghTSGa2RJ8MxVrGsmB6traV7fVL84fS/y0M+Cg
    73  yZQnuydAtpDbrJ51phErSRktw8JDBwm7PW6Io+OKxdKG9mVbNMOfTALlCbosxnZm
    74  69F2JfQwE/tYYKhY41FvSwgEYY2sqTAvUkGjIsEzWat7WfmTZ0vJiXVS7ylJNJMc
    75  nJNznBnOXBjNTAknwT/1Sez04t9Lr48CAwEAAaOCARowggEWMB0GA1UdDgQWBBRz
    76  qAhTKbgV+5mA5cU32Pg5e6QTBjAfBgNVHSMEGDAWgBTlnVkwgkdYzKz6CFQ2hns6
    77  tQRN8DASBgNVHRMBAf8ECDAGAQH/AgEAMA4GA1UdDwEB/wQEAwIBhjA0BggrBgEF
    78  BQcBAQQoMCYwJAYIKwYBBQUHMAGGGGh0dHA6Ly9vY3NwLmRpZ2ljZXJ0LmNvbTA6
    79  BgNVHR8EMzAxMC+gLaArhilodHRwOi8vY3JsMy5kaWdpY2VydC5jb20vT21uaXJv
    80  b3QyMDI1LmNybDA+BgNVHSAENzA1MDMGBWeBDAECMCowKAYIKwYBBQUHAgEWHGh0
    81  dHBzOi8vd3d3LmRpZ2ljZXJ0LmNvbS9DUFMwDQYJKoZIhvcNAQELBQADggEBABqR
    82  cPGWxhjLeEP8gzZ29OHVpL8EFWNvpnEbpnAWa1uYmFNf0fsSoibP04UCB0Ye21KA
    83  jPNuTE2OWpgxlTVvl99sIJFKhXCIn6OWCLQpbjFMu8Ro5rdzg4ekedsihWN9NMwU
    84  +K8DqO+oukIYjF2zPnnwcSykKaUhdi0BqUtmzJhHkFjoslJllOXiJ4DQkbpjiQpR
    85  yjPfliI1wzAcOM3xxswHAxOq8BVHKErKYUqHkHgHFZ6Ycts+sShKqVf+Zdx9zYJV
    86  pItiSs0DDCCFapxWACouIVY+xPYG8EMUWXz0gK8SAwNHXLRxBtjNWhCGOiSN+ihp
    87  277L8LbKp8eA8OlOMiU=
    88  -----END CERTIFICATE-----
    89  TEXT
    90  }`,
    91  			Expected: tflint.Issues{},
    92  		},
    93  	}
    94  
    95  	rule := NewAwsAcmCertificateInvalidCertificateChainRule()
    96  
    97  	for _, tc := range cases {
    98  		runner := tflint.TestRunner(t, map[string]string{"resource.tf": tc.Content})
    99  
   100  		if err := rule.Check(runner); err != nil {
   101  			t.Fatalf("Unexpected error occurred: %s", err)
   102  		}
   103  
   104  		tflint.AssertIssuesWithoutRange(t, tc.Expected, runner.Issues)
   105  	}
   106  }