@@ -1585,3 +1585,82 @@ func TestGetStaticIPs(t *testing.T) {
1585
1585
}
1586
1586
}
1587
1587
}
1588
+
1589
+ var ignoreClientCertificateFields = cmpopts .IgnoreFields (checkly.ClientCertificate {}, "ID" , "Passphrase" , "CreatedAt" )
1590
+
1591
+ var testClientCertificate = checkly.ClientCertificate {
1592
+ ID : "49a1d5df-b89a-4998-a469-b1358e282ea5" ,
1593
+ Host : "*.acme.com" ,
1594
+ Certificate : "-----BEGIN CERTIFICATE-----\n MIICDzCCAbagAwIBAgIUMTZlfGA7WcD8e4/zt2MqxvEgQPYwCgYIKoZIzj0EAwIw\n VDELMAkGA1UEBhMCVVMxCzAJBgNVBAgMAkNBMREwDwYDVQQHDAhUb29udG93bjES\n MBAGA1UECgwJQWNtZSBJbmMuMREwDwYDVQQDDAhhY21lLmNvbTAeFw0yNTAzMDMw\n NTQ2NTJaFw00OTEwMjMwNTQ2NTJaMHgxCzAJBgNVBAYTAlVTMQswCQYDVQQIDAJD\n QTERMA8GA1UEBwwIVG9vbnRvd24xEjAQBgNVBAoMCUFjbWUgSW5jLjEXMBUGA1UE\n AwwOV2lsZSBFLiBDb3lvdGUxHDAaBgkqhkiG9w0BCQEWDXdpbGVAYWNtZS5jb20w\n WTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAATAjjDGsKFS1qgdNqziDZoD5hamTfdH\n 0P+Ukk1RIue57QYVXhQSyNzcEz15kQnwYezEqfN+FtjtTwdk/CgnAELlo0IwQDAd\n BgNVHQ4EFgQU9C9CpZqM2WMrOs3vAYsc5GbjyzswHwYDVR0jBBgwFoAUnlOyzF/N\n K7YmKQegLdbdyIOCT/UwCgYIKoZIzj0EAwIDRwAwRAIgGgSnBymlH4MkZCVk5DYH\n PdnDo2Xf5uFi1Eyn2LTYP1MCIEtiGtsf0qYv6NzIPd5uTTZoB/8hPrAgM1QzWG4O\n 3C/I\n -----END CERTIFICATE-----\n " ,
1595
+ PrivateKey : "-----BEGIN ENCRYPTED PRIVATE KEY-----\n MIH0MF8GCSqGSIb3DQEFDTBSMDEGCSqGSIb3DQEFDDAkBBA5yR3aqy8mZD2wQzp1\n FH2JAgIIADAMBggqhkiG9w0CCQUAMB0GCWCGSAFlAwQBKgQQA49YCnXvfJ2CsQsV\n 9C5JJwSBkNkWunSlqyeVW6OFa/+OjlLArgTGvW5ul08qu/145O9PO4Nr2CXeK5N2\n uvHwkWGfD8IVke+sgZPUjLoHsJ4h4AnyxlNHpIxgOfm0CoXT7PTaFb//d5NC6XyB\n K7ZpBzIThGlbuS/b9wp4MPmSaJn5Fci+84VG7KYK5RxU0fcU0rGSBynrZw803wnO\n FjP7qaq5bw==\n -----END ENCRYPTED PRIVATE KEY-----\n " ,
1596
+ Passphrase : "secret password" ,
1597
+ TrustedCA : "-----BEGIN CERTIFICATE-----\n MIIB/jCCAaOgAwIBAgIUZzxdNpoDYXaNiIBsh0/s++I+ZOEwCgYIKoZIzj0EAwIw\n VDELMAkGA1UEBhMCVVMxCzAJBgNVBAgMAkNBMREwDwYDVQQHDAhUb29udG93bjES\n MBAGA1UECgwJQWNtZSBJbmMuMREwDwYDVQQDDAhhY21lLmNvbTAeFw0yNTAzMDMw\n NTQzMDZaFw0yNTA0MDIwNTQzMDZaMFQxCzAJBgNVBAYTAlVTMQswCQYDVQQIDAJD\n QTERMA8GA1UEBwwIVG9vbnRvd24xEjAQBgNVBAoMCUFjbWUgSW5jLjERMA8GA1UE\n AwwIYWNtZS5jb20wWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAARDH3KGK6Vsk1A4\n yGf9ItQIS3yuAOi0n0ihmPzIOOOEN0c758ETABeUdgH55bakdx6q5KYSxf4TuXsJ\n 2nCihqVVo1MwUTAdBgNVHQ4EFgQUnlOyzF/NK7YmKQegLdbdyIOCT/UwHwYDVR0j\n BBgwFoAUnlOyzF/NK7YmKQegLdbdyIOCT/UwDwYDVR0TAQH/BAUwAwEB/zAKBggq\n hkjOPQQDAgNJADBGAiEA/cJ9jV8MQz4ypQsFvUatrnbxyHO0f+pJhf09pAk6Kj8C\n IQCkSbope5r0KlVdqBeFF8wCfE3plwpelve3jqVIz6MedQ==\n -----END CERTIFICATE-----\n " ,
1598
+ }
1599
+
1600
+ func validateClientCertificate (t * testing.T , body []byte ) {
1601
+ var clientCertificate checkly.ClientCertificate
1602
+ err := json .Unmarshal (body , & clientCertificate )
1603
+ if err != nil {
1604
+ t .Fatalf ("decoding error for data %q: %v" , body , err )
1605
+ }
1606
+ if ! cmp .Equal (testClientCertificate , clientCertificate ) {
1607
+ t .Error (cmp .Diff (testClientCertificate , clientCertificate ))
1608
+ }
1609
+ }
1610
+
1611
+ func TestCreateClientCertificate (t * testing.T ) {
1612
+ t .Parallel ()
1613
+ ts := cannedResponseServer (t ,
1614
+ http .MethodPost ,
1615
+ "/v1/client-certificates" ,
1616
+ validateClientCertificate ,
1617
+ http .StatusCreated ,
1618
+ "CreateClientCertificate.json" ,
1619
+ )
1620
+ defer ts .Close ()
1621
+ client := checkly .NewClient (ts .URL , "dummy-key" , ts .Client (), nil )
1622
+ response , err := client .CreateClientCertificate (context .Background (), testClientCertificate )
1623
+ if err != nil {
1624
+ t .Error (err )
1625
+ }
1626
+ if ! cmp .Equal (testClientCertificate , * response , ignoreClientCertificateFields ) {
1627
+ t .Error (cmp .Diff (testClientCertificate , * response , ignoreClientCertificateFields ))
1628
+ }
1629
+ }
1630
+
1631
+ func TestGetClientCertificate (t * testing.T ) {
1632
+ t .Parallel ()
1633
+ ts := cannedResponseServer (t ,
1634
+ http .MethodGet ,
1635
+ fmt .Sprintf ("/v1/client-certificates/%s" , testClientCertificate .ID ),
1636
+ validateEmptyBody ,
1637
+ http .StatusOK ,
1638
+ "GetClientCertificate.json" ,
1639
+ )
1640
+ defer ts .Close ()
1641
+ client := checkly .NewClient (ts .URL , "dummy-key" , ts .Client (), nil )
1642
+ response , err := client .GetClientCertificate (context .Background (), testClientCertificate .ID )
1643
+ if err != nil {
1644
+ t .Error (err )
1645
+ }
1646
+ if ! cmp .Equal (testClientCertificate , * response , ignoreClientCertificateFields ) {
1647
+ t .Error (cmp .Diff (testClientCertificate , * response , ignoreClientCertificateFields ))
1648
+ }
1649
+ }
1650
+
1651
+ func TestDeleteClientCertificate (t * testing.T ) {
1652
+ t .Parallel ()
1653
+ ts := cannedResponseServer (t ,
1654
+ http .MethodDelete ,
1655
+ fmt .Sprintf ("/v1/client-certificates/%s" , testClientCertificate .ID ),
1656
+ validateEmptyBody ,
1657
+ http .StatusNoContent ,
1658
+ "Empty.json" ,
1659
+ )
1660
+ defer ts .Close ()
1661
+ client := checkly .NewClient (ts .URL , "dummy-key" , ts .Client (), nil )
1662
+ err := client .DeleteClientCertificate (context .Background (), testClientCertificate .ID )
1663
+ if err != nil {
1664
+ t .Error (err )
1665
+ }
1666
+ }
0 commit comments