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  }