github.com/khulnasoft-lab/defsec@v1.0.5-0.20230827010352-5e9f46893d95/internal/adapters/terraform/nifcloud/sslcertificate/server_certificate_test.go (about) 1 package sslcertificate 2 3 import ( 4 "testing" 5 "time" 6 7 "github.com/khulnasoft-lab/defsec/pkg/providers/nifcloud/sslcertificate" 8 defsecTypes "github.com/khulnasoft-lab/defsec/pkg/types" 9 10 "github.com/khulnasoft-lab/defsec/internal/adapters/terraform/tftestutil" 11 12 "github.com/khulnasoft-lab/defsec/test/testutil" 13 ) 14 15 const certificate = ` 16 -----BEGIN CERTIFICATE----- 17 MIIB0zCCAX2gAwIBAgIJAI/M7BYjwB+uMA0GCSqGSIb3DQEBBQUAMEUxCzAJBgNV 18 BAYTAkFVMRMwEQYDVQQIDApTb21lLVN0YXRlMSEwHwYDVQQKDBhJbnRlcm5ldCBX 19 aWRnaXRzIFB0eSBMdGQwHhcNMTIwOTEyMjE1MjAyWhcNMTUwOTEyMjE1MjAyWjBF 20 MQswCQYDVQQGEwJBVTETMBEGA1UECAwKU29tZS1TdGF0ZTEhMB8GA1UECgwYSW50 21 ZXJuZXQgV2lkZ2l0cyBQdHkgTHRkMFwwDQYJKoZIhvcNAQEBBQADSwAwSAJBANLJ 22 hPHhITqQbPklG3ibCVxwGMRfp/v4XqhfdQHdcVfHap6NQ5Wok/4xIA+ui35/MmNa 23 rtNuC+BdZ1tMuVCPFZcCAwEAAaNQME4wHQYDVR0OBBYEFJvKs8RfJaXTH08W+SGv 24 zQyKn0H8MB8GA1UdIwQYMBaAFJvKs8RfJaXTH08W+SGvzQyKn0H8MAwGA1UdEwQF 25 MAMBAf8wDQYJKoZIhvcNAQEFBQADQQBJlffJHybjDGxRMqaRmDhX0+6v02TUKZsW 26 r5QuVbpQhH6u+0UgcW0jp9QwpxoPTLTWGXEWBBBurxFwiCBhkQ+V 27 -----END CERTIFICATE----- 28 ` 29 30 func Test_adaptServerCertificates(t *testing.T) { 31 tests := []struct { 32 name string 33 terraform string 34 expected []sslcertificate.ServerCertificate 35 }{ 36 { 37 name: "configured", 38 terraform: ` 39 resource "nifcloud_ssl_certificate" "example" { 40 certificate = <<EOT` + certificate + `EOT 41 } 42 `, 43 expected: []sslcertificate.ServerCertificate{{ 44 Metadata: defsecTypes.NewTestMetadata(), 45 Expiration: defsecTypes.Time(func(timeVal string) time.Time { 46 parsed, _ := time.Parse(time.RFC3339, timeVal) 47 return parsed 48 }("2015-09-12T21:52:02Z"), defsecTypes.NewTestMetadata()), 49 }}, 50 }, 51 { 52 name: "defaults", 53 terraform: ` 54 resource "nifcloud_ssl_certificate" "example" { 55 } 56 `, 57 58 expected: []sslcertificate.ServerCertificate{{ 59 Metadata: defsecTypes.NewTestMetadata(), 60 Expiration: defsecTypes.Time(time.Time{}, defsecTypes.NewTestMetadata()), 61 }}, 62 }, 63 } 64 65 for _, test := range tests { 66 t.Run(test.name, func(t *testing.T) { 67 modules := tftestutil.CreateModulesFromSource(t, test.terraform, ".tf") 68 adapted := adaptServerCertificates(modules) 69 testutil.AssertDefsecEqual(t, test.expected, adapted) 70 }) 71 } 72 }