|
| 1 | +package checkly |
| 2 | + |
| 3 | +import ( |
| 4 | + "regexp" |
| 5 | + "testing" |
| 6 | + |
| 7 | + "github.com/hashicorp/terraform-plugin-sdk/v2/helper/resource" |
| 8 | +) |
| 9 | + |
| 10 | +func TestAccClientCertificateCheckRequiredFields(t *testing.T) { |
| 11 | + config := `resource "checkly_client_certificate" "test" {}` |
| 12 | + accTestCase(t, []resource.TestStep{ |
| 13 | + { |
| 14 | + Config: config, |
| 15 | + ExpectError: regexp.MustCompile(`The argument "host" is required`), |
| 16 | + }, |
| 17 | + { |
| 18 | + Config: config, |
| 19 | + ExpectError: regexp.MustCompile(`The argument "certificate" is required`), |
| 20 | + }, |
| 21 | + { |
| 22 | + Config: config, |
| 23 | + ExpectError: regexp.MustCompile(`The argument "private_key" is required`), |
| 24 | + }, |
| 25 | + }) |
| 26 | +} |
| 27 | + |
| 28 | +func TestAccClientCertificate(t *testing.T) { |
| 29 | + config := ` |
| 30 | +resource "checkly_client_certificate" "test" { |
| 31 | + host = "*.acme.com" |
| 32 | +
|
| 33 | + certificate = <<-EOT |
| 34 | + -----BEGIN CERTIFICATE----- |
| 35 | + MIICDzCCAbagAwIBAgIUMTZlfGA7WcD8e4/zt2MqxvEgQPYwCgYIKoZIzj0EAwIw |
| 36 | + VDELMAkGA1UEBhMCVVMxCzAJBgNVBAgMAkNBMREwDwYDVQQHDAhUb29udG93bjES |
| 37 | + MBAGA1UECgwJQWNtZSBJbmMuMREwDwYDVQQDDAhhY21lLmNvbTAeFw0yNTAzMDMw |
| 38 | + NTQ2NTJaFw00OTEwMjMwNTQ2NTJaMHgxCzAJBgNVBAYTAlVTMQswCQYDVQQIDAJD |
| 39 | + QTERMA8GA1UEBwwIVG9vbnRvd24xEjAQBgNVBAoMCUFjbWUgSW5jLjEXMBUGA1UE |
| 40 | + AwwOV2lsZSBFLiBDb3lvdGUxHDAaBgkqhkiG9w0BCQEWDXdpbGVAYWNtZS5jb20w |
| 41 | + WTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAATAjjDGsKFS1qgdNqziDZoD5hamTfdH |
| 42 | + 0P+Ukk1RIue57QYVXhQSyNzcEz15kQnwYezEqfN+FtjtTwdk/CgnAELlo0IwQDAd |
| 43 | + BgNVHQ4EFgQU9C9CpZqM2WMrOs3vAYsc5GbjyzswHwYDVR0jBBgwFoAUnlOyzF/N |
| 44 | + K7YmKQegLdbdyIOCT/UwCgYIKoZIzj0EAwIDRwAwRAIgGgSnBymlH4MkZCVk5DYH |
| 45 | + PdnDo2Xf5uFi1Eyn2LTYP1MCIEtiGtsf0qYv6NzIPd5uTTZoB/8hPrAgM1QzWG4O |
| 46 | + 3C/I |
| 47 | + -----END CERTIFICATE----- |
| 48 | + EOT |
| 49 | +
|
| 50 | + private_key = <<-EOT |
| 51 | + -----BEGIN ENCRYPTED PRIVATE KEY----- |
| 52 | + MIH0MF8GCSqGSIb3DQEFDTBSMDEGCSqGSIb3DQEFDDAkBBA5yR3aqy8mZD2wQzp1 |
| 53 | + FH2JAgIIADAMBggqhkiG9w0CCQUAMB0GCWCGSAFlAwQBKgQQA49YCnXvfJ2CsQsV |
| 54 | + 9C5JJwSBkNkWunSlqyeVW6OFa/+OjlLArgTGvW5ul08qu/145O9PO4Nr2CXeK5N2 |
| 55 | + uvHwkWGfD8IVke+sgZPUjLoHsJ4h4AnyxlNHpIxgOfm0CoXT7PTaFb//d5NC6XyB |
| 56 | + K7ZpBzIThGlbuS/b9wp4MPmSaJn5Fci+84VG7KYK5RxU0fcU0rGSBynrZw803wnO |
| 57 | + FjP7qaq5bw== |
| 58 | + -----END ENCRYPTED PRIVATE KEY----- |
| 59 | + EOT |
| 60 | +
|
| 61 | + passphrase = "secret password" |
| 62 | +
|
| 63 | + trusted_ca = <<-EOT |
| 64 | + -----BEGIN CERTIFICATE----- |
| 65 | + MIIB/jCCAaOgAwIBAgIUZzxdNpoDYXaNiIBsh0/s++I+ZOEwCgYIKoZIzj0EAwIw |
| 66 | + VDELMAkGA1UEBhMCVVMxCzAJBgNVBAgMAkNBMREwDwYDVQQHDAhUb29udG93bjES |
| 67 | + MBAGA1UECgwJQWNtZSBJbmMuMREwDwYDVQQDDAhhY21lLmNvbTAeFw0yNTAzMDMw |
| 68 | + NTQzMDZaFw0yNTA0MDIwNTQzMDZaMFQxCzAJBgNVBAYTAlVTMQswCQYDVQQIDAJD |
| 69 | + QTERMA8GA1UEBwwIVG9vbnRvd24xEjAQBgNVBAoMCUFjbWUgSW5jLjERMA8GA1UE |
| 70 | + AwwIYWNtZS5jb20wWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAARDH3KGK6Vsk1A4 |
| 71 | + yGf9ItQIS3yuAOi0n0ihmPzIOOOEN0c758ETABeUdgH55bakdx6q5KYSxf4TuXsJ |
| 72 | + 2nCihqVVo1MwUTAdBgNVHQ4EFgQUnlOyzF/NK7YmKQegLdbdyIOCT/UwHwYDVR0j |
| 73 | + BBgwFoAUnlOyzF/NK7YmKQegLdbdyIOCT/UwDwYDVR0TAQH/BAUwAwEB/zAKBggq |
| 74 | + hkjOPQQDAgNJADBGAiEA/cJ9jV8MQz4ypQsFvUatrnbxyHO0f+pJhf09pAk6Kj8C |
| 75 | + IQCkSbope5r0KlVdqBeFF8wCfE3plwpelve3jqVIz6MedQ== |
| 76 | + -----END CERTIFICATE----- |
| 77 | + EOT |
| 78 | +}` |
| 79 | + accTestCase(t, []resource.TestStep{ |
| 80 | + { |
| 81 | + Config: config, |
| 82 | + Check: resource.ComposeTestCheckFunc( |
| 83 | + resource.TestCheckResourceAttr( |
| 84 | + "checkly_client_certificate.test", |
| 85 | + "host", |
| 86 | + "*.acme.com", |
| 87 | + ), |
| 88 | + resource.TestCheckResourceAttr( |
| 89 | + "checkly_client_certificate.test", |
| 90 | + "certificate", |
| 91 | + "-----BEGIN CERTIFICATE-----\n"+ |
| 92 | + "MIICDzCCAbagAwIBAgIUMTZlfGA7WcD8e4/zt2MqxvEgQPYwCgYIKoZIzj0EAwIw\n"+ |
| 93 | + "VDELMAkGA1UEBhMCVVMxCzAJBgNVBAgMAkNBMREwDwYDVQQHDAhUb29udG93bjES\n"+ |
| 94 | + "MBAGA1UECgwJQWNtZSBJbmMuMREwDwYDVQQDDAhhY21lLmNvbTAeFw0yNTAzMDMw\n"+ |
| 95 | + "NTQ2NTJaFw00OTEwMjMwNTQ2NTJaMHgxCzAJBgNVBAYTAlVTMQswCQYDVQQIDAJD\n"+ |
| 96 | + "QTERMA8GA1UEBwwIVG9vbnRvd24xEjAQBgNVBAoMCUFjbWUgSW5jLjEXMBUGA1UE\n"+ |
| 97 | + "AwwOV2lsZSBFLiBDb3lvdGUxHDAaBgkqhkiG9w0BCQEWDXdpbGVAYWNtZS5jb20w\n"+ |
| 98 | + "WTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAATAjjDGsKFS1qgdNqziDZoD5hamTfdH\n"+ |
| 99 | + "0P+Ukk1RIue57QYVXhQSyNzcEz15kQnwYezEqfN+FtjtTwdk/CgnAELlo0IwQDAd\n"+ |
| 100 | + "BgNVHQ4EFgQU9C9CpZqM2WMrOs3vAYsc5GbjyzswHwYDVR0jBBgwFoAUnlOyzF/N\n"+ |
| 101 | + "K7YmKQegLdbdyIOCT/UwCgYIKoZIzj0EAwIDRwAwRAIgGgSnBymlH4MkZCVk5DYH\n"+ |
| 102 | + "PdnDo2Xf5uFi1Eyn2LTYP1MCIEtiGtsf0qYv6NzIPd5uTTZoB/8hPrAgM1QzWG4O\n"+ |
| 103 | + "3C/I\n"+ |
| 104 | + "-----END CERTIFICATE-----\n", |
| 105 | + ), |
| 106 | + resource.TestCheckResourceAttr( |
| 107 | + "checkly_client_certificate.test", |
| 108 | + "private_key", |
| 109 | + "-----BEGIN ENCRYPTED PRIVATE KEY-----\n"+ |
| 110 | + "MIH0MF8GCSqGSIb3DQEFDTBSMDEGCSqGSIb3DQEFDDAkBBA5yR3aqy8mZD2wQzp1\n"+ |
| 111 | + "FH2JAgIIADAMBggqhkiG9w0CCQUAMB0GCWCGSAFlAwQBKgQQA49YCnXvfJ2CsQsV\n"+ |
| 112 | + "9C5JJwSBkNkWunSlqyeVW6OFa/+OjlLArgTGvW5ul08qu/145O9PO4Nr2CXeK5N2\n"+ |
| 113 | + "uvHwkWGfD8IVke+sgZPUjLoHsJ4h4AnyxlNHpIxgOfm0CoXT7PTaFb//d5NC6XyB\n"+ |
| 114 | + "K7ZpBzIThGlbuS/b9wp4MPmSaJn5Fci+84VG7KYK5RxU0fcU0rGSBynrZw803wnO\n"+ |
| 115 | + "FjP7qaq5bw==\n"+ |
| 116 | + "-----END ENCRYPTED PRIVATE KEY-----\n", |
| 117 | + ), |
| 118 | + resource.TestCheckResourceAttr( |
| 119 | + "checkly_client_certificate.test", |
| 120 | + "passphrase", |
| 121 | + "secret password", |
| 122 | + ), |
| 123 | + resource.TestCheckResourceAttr( |
| 124 | + "checkly_client_certificate.test", |
| 125 | + "trusted_ca", |
| 126 | + "-----BEGIN CERTIFICATE-----\n"+ |
| 127 | + "MIIB/jCCAaOgAwIBAgIUZzxdNpoDYXaNiIBsh0/s++I+ZOEwCgYIKoZIzj0EAwIw\n"+ |
| 128 | + "VDELMAkGA1UEBhMCVVMxCzAJBgNVBAgMAkNBMREwDwYDVQQHDAhUb29udG93bjES\n"+ |
| 129 | + "MBAGA1UECgwJQWNtZSBJbmMuMREwDwYDVQQDDAhhY21lLmNvbTAeFw0yNTAzMDMw\n"+ |
| 130 | + "NTQzMDZaFw0yNTA0MDIwNTQzMDZaMFQxCzAJBgNVBAYTAlVTMQswCQYDVQQIDAJD\n"+ |
| 131 | + "QTERMA8GA1UEBwwIVG9vbnRvd24xEjAQBgNVBAoMCUFjbWUgSW5jLjERMA8GA1UE\n"+ |
| 132 | + "AwwIYWNtZS5jb20wWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAARDH3KGK6Vsk1A4\n"+ |
| 133 | + "yGf9ItQIS3yuAOi0n0ihmPzIOOOEN0c758ETABeUdgH55bakdx6q5KYSxf4TuXsJ\n"+ |
| 134 | + "2nCihqVVo1MwUTAdBgNVHQ4EFgQUnlOyzF/NK7YmKQegLdbdyIOCT/UwHwYDVR0j\n"+ |
| 135 | + "BBgwFoAUnlOyzF/NK7YmKQegLdbdyIOCT/UwDwYDVR0TAQH/BAUwAwEB/zAKBggq\n"+ |
| 136 | + "hkjOPQQDAgNJADBGAiEA/cJ9jV8MQz4ypQsFvUatrnbxyHO0f+pJhf09pAk6Kj8C\n"+ |
| 137 | + "IQCkSbope5r0KlVdqBeFF8wCfE3plwpelve3jqVIz6MedQ==\n"+ |
| 138 | + "-----END CERTIFICATE-----\n", |
| 139 | + ), |
| 140 | + ), |
| 141 | + }, |
| 142 | + }) |
| 143 | +} |
0 commit comments