]> git.immae.eu Git - github/fretlink/terraform-provider-statuscake.git/blobdiff - vendor/github.com/DreamItGetIT/statuscake/ssl_test.go
update vendor/github.com/DreamItGetIT/statuscake/ to manage ssl tests
[github/fretlink/terraform-provider-statuscake.git] / vendor / github.com / DreamItGetIT / statuscake / ssl_test.go
diff --git a/vendor/github.com/DreamItGetIT/statuscake/ssl_test.go b/vendor/github.com/DreamItGetIT/statuscake/ssl_test.go
new file mode 100644 (file)
index 0000000..48a961c
--- /dev/null
@@ -0,0 +1,343 @@
+package statuscake
+
+import (
+       "testing"
+       //"fmt"
+       "github.com/stretchr/testify/assert"
+       "github.com/stretchr/testify/require"
+       "net/url"
+)
+
+func TestSsl_All(t *testing.T) {
+       assert := assert.New(t)
+       require := require.New(t)
+
+       c := &fakeAPIClient{
+               fixture: "sslListAllOk.json",
+       }
+       tt := NewSsls(c)
+       ssls, err := tt.All()
+       require.Nil(err)
+
+       assert.Equal("/SSL", c.sentRequestPath)
+       assert.Equal("GET", c.sentRequestMethod)
+       assert.Nil(c.sentRequestValues)
+       assert.Len(ssls, 3)
+       mixed := make(map[string]string)
+       flags := make(map[string]bool)
+       flags["is_extended"] = false
+       flags["has_pfs"] = true
+       flags["is_broken"] = false
+       flags["is_expired"] = false
+       flags["is_missing"] = false
+       flags["is_revoked"] = false
+       flags["has_mixed"] = false
+       expectedTest := &Ssl{
+               ID: "143615",
+               Checkrate: 2073600,
+               Paused: false,
+               Domain: "https://www.exemple.com",
+               IssuerCn: "Let's Encrypt Authority X3",
+               CertScore: "95",
+               CipherScore: "100",
+               CertStatus: "CERT_OK",
+               Cipher: "TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256",
+               ValidFromUtc: "2019-05-28 01:22:00",
+               ValidUntilUtc: "2019-08-26 01:22:00",
+               MixedContent: []map[string]string{},
+               Flags: flags,
+               ContactGroups: []string{},
+               ContactGroupsC: "",
+               AlertAt: "7,18,2019",
+               LastReminder: 2019,
+               AlertReminder: true,
+               AlertExpiry: true,
+               AlertBroken: true,
+               AlertMixed: true,
+               LastUpdatedUtc: "2019-06-20 10:11:03",
+       }
+       assert.Equal(expectedTest, ssls[0])
+
+       expectedTest.ID="143617"
+       expectedTest.LastUpdatedUtc="2019-06-20 10:23:20"
+       assert.Equal(expectedTest, ssls[2])
+
+       expectedTest.ID="143616"
+       expectedTest.LastUpdatedUtc="2019-06-20 10:23:14"
+       mixed["type"]="img"
+       mixed["src"]="http://example.com/image.gif"
+       expectedTest.MixedContent=[]map[string]string{mixed}
+       expectedTest.ContactGroupsC="12,13,34"
+       expectedTest.ContactGroups=[]string{"12","13","34"}
+       assert.Equal(expectedTest, ssls[1])
+}
+
+func TestSsls_Detail_OK(t *testing.T) {
+       assert := assert.New(t)
+       require := require.New(t)
+
+       c := &fakeAPIClient{
+               fixture: "sslListAllOk.json",
+       }
+       tt := NewSsls(c)
+
+       ssl, err := tt.Detail("143616")
+       require.Nil(err)
+       assert.Equal("/SSL", c.sentRequestPath)
+       assert.Equal("GET", c.sentRequestMethod)
+       assert.Nil(c.sentRequestValues)
+       
+       mixed := make(map[string]string)
+       flags := make(map[string]bool)
+
+       mixed["type"]="img"
+       mixed["src"]="http://example.com/image.gif"
+       
+       flags["is_extended"] = false
+       flags["has_pfs"] = true
+       flags["is_broken"] = false
+       flags["is_expired"] = false
+       flags["is_missing"] = false
+       flags["is_revoked"] = false
+       flags["has_mixed"] = false
+       expectedTest := &Ssl{
+               ID: "143616",
+               Checkrate: 2073600,
+               Paused: false,
+               Domain: "https://www.exemple.com",
+               IssuerCn: "Let's Encrypt Authority X3",
+               CertScore: "95",
+               CipherScore: "100",
+               CertStatus: "CERT_OK",
+               Cipher: "TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256",
+               ValidFromUtc: "2019-05-28 01:22:00",
+               ValidUntilUtc: "2019-08-26 01:22:00",
+               MixedContent: []map[string]string{mixed},
+               Flags: flags,
+               ContactGroups: []string{"12","13","34"},
+               ContactGroupsC: "12,13,34",
+               AlertAt: "7,18,2019",
+               LastReminder: 2019,
+               AlertReminder: true,
+               AlertExpiry: true,
+               AlertBroken: true,
+               AlertMixed: true,
+               LastUpdatedUtc: "2019-06-20 10:23:14",
+       }
+       
+       assert.Equal(expectedTest, ssl)
+}
+
+func TestSsls_CreatePartial_OK(t *testing.T) {
+       assert := assert.New(t)
+       require := require.New(t)
+
+       c := &fakeAPIClient{
+               fixture: "sslCreateOk.json",
+       }
+       tt := NewSsls(c)
+       partial := &PartialSsl{
+               Domain: "https://www.exemple.com",
+               Checkrate: "2073600",
+               ContactGroupsC: "",
+               AlertReminder: true,
+               AlertExpiry: true,
+               AlertBroken: true,
+               AlertMixed: true,
+               AlertAt: "7,18,2019",
+       }
+       expectedRes := &PartialSsl {
+               ID: 143616,
+               Domain: "https://www.exemple.com",
+               Checkrate: "2073600",
+               ContactGroupsC: "",
+               AlertReminder: true,
+               AlertExpiry: true,
+               AlertBroken: true,
+               AlertMixed: true,
+               AlertAt: "7,18,2019",
+       }
+       res, err := tt.CreatePartial(partial)
+       require.Nil(err)
+       assert.Equal("/SSL/Update", c.sentRequestPath)
+       assert.Equal("PUT", c.sentRequestMethod)
+       assert.Equal(c.sentRequestValues,url.Values(url.Values{"domain":[]string{"https://www.exemple.com"}, "checkrate":[]string{"2073600"}, "contact_groups":[]string{""}, "alert_at":[]string{"7,18,2019"}, "alert_expiry":[]string{"true"}, "alert_reminder":[]string{"true"}, "alert_broken":[]string{"true"}, "alert_mixed":[]string{"true"}}))
+
+       assert.Equal(expectedRes, res)
+}
+
+func TestSsls_UpdatePartial_OK(t *testing.T) {
+       assert := assert.New(t)
+       require := require.New(t)
+
+       c := &fakeAPIClient{
+               fixture: "sslUpdateOk.json",
+       }
+       tt := NewSsls(c)
+       partial := &PartialSsl{
+               ID: 143616,
+               Domain: "https://www.exemple.com",
+               Checkrate: "2073600",
+               ContactGroupsC: "",
+               AlertReminder: false,
+               AlertExpiry: true,
+               AlertBroken: true,
+               AlertMixed: true,
+               AlertAt: "7,18,2019",
+       }
+       expectedRes := &PartialSsl {
+               ID: 143616,
+               Domain: "https://www.exemple.com",
+               Checkrate: "2073600",
+               ContactGroupsC: "",
+               AlertReminder: false,
+               AlertExpiry: true,
+               AlertBroken: true,
+               AlertMixed: true,
+               AlertAt: "7,18,2019",
+       }
+       res, err := tt.UpdatePartial(partial)
+       require.Nil(err)
+       assert.Equal(expectedRes, res)
+       assert.Equal("/SSL/Update", c.sentRequestPath)
+       assert.Equal("PUT", c.sentRequestMethod)
+       assert.Equal(c.sentRequestValues,url.Values(url.Values{"id":[]string{"143616"},"domain":[]string{"https://www.exemple.com"}, "checkrate":[]string{"2073600"}, "contact_groups":[]string{""}, "alert_at":[]string{"7,18,2019"}, "alert_expiry":[]string{"true"}, "alert_reminder":[]string{"false"}, "alert_broken":[]string{"true"}, "alert_mixed":[]string{"true"}}))
+}
+
+func TestSsl_complete_OK(t *testing.T) {
+       assert := assert.New(t)
+       require := require.New(t)
+
+       c := &fakeAPIClient{
+               fixture: "sslListAllOk.json",
+       }
+       tt := NewSsls(c)
+
+       partial := &PartialSsl {
+               ID: 143616,
+               Domain: "https://www.exemple.com",
+               Checkrate: "2073600",
+               ContactGroupsC: "12,13,34",
+               AlertReminder: true,
+               AlertExpiry: true,
+               AlertBroken: true,
+               AlertMixed: true,
+               AlertAt: "7,18,2019",
+       }
+       full, err := tt.completeSsl(partial)
+       require.Nil(err)
+       mixed := make(map[string]string)
+       flags := make(map[string]bool)
+
+       mixed["type"]="img"
+       mixed["src"]="http://example.com/image.gif"
+       
+       flags["is_extended"] = false
+       flags["has_pfs"] = true
+       flags["is_broken"] = false
+       flags["is_expired"] = false
+       flags["is_missing"] = false
+       flags["is_revoked"] = false
+       flags["has_mixed"] = false
+       expectedTest := &Ssl{
+               ID: "143616",
+               Checkrate: 2073600,
+               Paused: false,
+               Domain: "https://www.exemple.com",
+               IssuerCn: "Let's Encrypt Authority X3",
+               CertScore: "95",
+               CipherScore: "100",
+               CertStatus: "CERT_OK",
+               Cipher: "TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256",
+               ValidFromUtc: "2019-05-28 01:22:00",
+               ValidUntilUtc: "2019-08-26 01:22:00",
+               MixedContent: []map[string]string{mixed},
+               Flags: flags,
+               ContactGroups: []string{"12","13","34"},
+               ContactGroupsC: "12,13,34",
+               AlertAt: "7,18,2019",
+               LastReminder: 2019,
+               AlertReminder: true,
+               AlertExpiry: true,
+               AlertBroken: true,
+               AlertMixed: true,
+               LastUpdatedUtc: "2019-06-20 10:23:14",
+       }
+       
+       assert.Equal(expectedTest, full)
+       
+}
+
+func TestSsl_partial_OK(t *testing.T) {
+       assert := assert.New(t)
+       require := require.New(t)
+       
+       mixed := make(map[string]string)
+       flags := make(map[string]bool)
+
+       mixed["type"]="img"
+       mixed["src"]="http://example.com/image.gif"
+       
+       flags["is_extended"] = false
+       flags["has_pfs"] = true
+       flags["is_broken"] = false
+       flags["is_expired"] = false
+       flags["is_missing"] = false
+       flags["is_revoked"] = false
+       flags["has_mixed"] = false
+       full := &Ssl{
+               ID: "143616",
+               Checkrate: 2073600,
+               Paused: false,
+               Domain: "https://www.exemple.com",
+               IssuerCn: "Let's Encrypt Authority X3",
+               CertScore: "95",
+               CipherScore: "100",
+               CertStatus: "CERT_OK",
+               Cipher: "TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256",
+               ValidFromUtc: "2019-05-28 01:22:00",
+               ValidUntilUtc: "2019-08-26 01:22:00",
+               MixedContent: []map[string]string{mixed},
+               Flags: flags,
+               ContactGroups: []string{"12","13","34"},
+               ContactGroupsC: "12,13,34",
+               AlertAt: "7,18,2019",
+               LastReminder: 2019,
+               AlertReminder: true,
+               AlertExpiry: true,
+               AlertBroken: true,
+               AlertMixed: true,
+               LastUpdatedUtc: "2019-06-20 10:23:14",
+       }
+       expectedTest:=&PartialSsl {
+               ID: 143616,
+               Domain: "https://www.exemple.com",
+               Checkrate: "2073600",
+               ContactGroupsC: "12,13,34",
+               AlertReminder: true,
+               AlertExpiry: true,
+               AlertBroken: true,
+               AlertMixed: true,
+               AlertAt: "7,18,2019",
+       }
+       partial,err:=Partial(full)
+       require.Nil(err)
+       assert.Equal(expectedTest, partial)
+       
+}
+
+func TestSsls_Delete_OK(t *testing.T) {
+       assert := assert.New(t)
+       require := require.New(t)
+
+       c := &fakeAPIClient{
+               fixture: "sslDeleteOk.json",
+       }
+       tt := NewSsls(c)
+
+       err := tt.Delete("143616")
+       require.Nil(err)
+       assert.Equal("/SSL/Update", c.sentRequestPath)
+       assert.Equal("DELETE", c.sentRequestMethod)
+       assert.Equal(c.sentRequestValues,url.Values(url.Values{"id":[]string{"143616"},},))
+}