summaryrefslogtreecommitdiffstats
path: root/vendor/github.com/xenolf/lego/providers/dns/otc/otc_test.go
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/github.com/xenolf/lego/providers/dns/otc/otc_test.go')
-rw-r--r--vendor/github.com/xenolf/lego/providers/dns/otc/otc_test.go112
1 files changed, 112 insertions, 0 deletions
diff --git a/vendor/github.com/xenolf/lego/providers/dns/otc/otc_test.go b/vendor/github.com/xenolf/lego/providers/dns/otc/otc_test.go
new file mode 100644
index 000000000..0c05334a9
--- /dev/null
+++ b/vendor/github.com/xenolf/lego/providers/dns/otc/otc_test.go
@@ -0,0 +1,112 @@
+package otc
+
+import (
+ "fmt"
+ "github.com/stretchr/testify/assert"
+ "github.com/stretchr/testify/suite"
+ "os"
+ "testing"
+)
+
+type OTCDNSTestSuite struct {
+ suite.Suite
+ Mock *DNSMock
+}
+
+func (s *OTCDNSTestSuite) TearDownSuite() {
+ s.Mock.ShutdownServer()
+}
+
+func (s *OTCDNSTestSuite) SetupTest() {
+ s.Mock = NewDNSMock(s.T())
+ s.Mock.Setup()
+ s.Mock.HandleAuthSuccessfully()
+
+}
+
+func TestOTCDNSTestSuite(t *testing.T) {
+ suite.Run(t, new(OTCDNSTestSuite))
+}
+
+func (s *OTCDNSTestSuite) createDNSProvider() (*DNSProvider, error) {
+ url := fmt.Sprintf("%s/v3/auth/token", s.Mock.Server.URL)
+ return NewDNSProviderCredentials(fakeOTCUserName, fakeOTCPassword, fakeOTCDomainName, fakeOTCProjectName, url)
+}
+
+func (s *OTCDNSTestSuite) TestOTCDNSLoginEnv() {
+ os.Setenv("OTC_DOMAIN_NAME", "unittest1")
+ os.Setenv("OTC_USER_NAME", "unittest2")
+ os.Setenv("OTC_PASSWORD", "unittest3")
+ os.Setenv("OTC_PROJECT_NAME", "unittest4")
+ os.Setenv("OTC_IDENTITY_ENDPOINT", "unittest5")
+
+ provider, err := NewDNSProvider()
+ assert.Nil(s.T(), err)
+ assert.Equal(s.T(), provider.domainName, "unittest1")
+ assert.Equal(s.T(), provider.userName, "unittest2")
+ assert.Equal(s.T(), provider.password, "unittest3")
+ assert.Equal(s.T(), provider.projectName, "unittest4")
+ assert.Equal(s.T(), provider.identityEndpoint, "unittest5")
+
+ os.Setenv("OTC_IDENTITY_ENDPOINT", "")
+
+ provider, err = NewDNSProvider()
+ assert.Nil(s.T(), err)
+ assert.Equal(s.T(), provider.identityEndpoint, "https://iam.eu-de.otc.t-systems.com:443/v3/auth/tokens")
+
+ os.Clearenv()
+}
+
+func (s *OTCDNSTestSuite) TestOTCDNSLoginEnvEmpty() {
+ _, err := NewDNSProvider()
+ assert.Equal(s.T(), "OTC credentials missing", err.Error())
+
+ os.Clearenv()
+}
+
+func (s *OTCDNSTestSuite) TestOTCDNSLogin() {
+ otcProvider, err := s.createDNSProvider()
+
+ assert.Nil(s.T(), err)
+ err = otcProvider.loginRequest()
+ assert.Nil(s.T(), err)
+ assert.Equal(s.T(), otcProvider.otcBaseURL, fmt.Sprintf("%s/v2", s.Mock.Server.URL))
+ assert.Equal(s.T(), fakeOTCToken, otcProvider.token)
+}
+
+func (s *OTCDNSTestSuite) TestOTCDNSEmptyZone() {
+ s.Mock.HandleListZonesEmpty()
+ s.Mock.HandleListRecordsetsSuccessfully()
+
+ otcProvider, _ := s.createDNSProvider()
+ err := otcProvider.Present("example.com", "", "foobar")
+ assert.NotNil(s.T(), err)
+}
+
+func (s *OTCDNSTestSuite) TestOTCDNSEmptyRecordset() {
+ s.Mock.HandleListZonesSuccessfully()
+ s.Mock.HandleListRecordsetsEmpty()
+
+ otcProvider, _ := s.createDNSProvider()
+ err := otcProvider.CleanUp("example.com", "", "foobar")
+ assert.NotNil(s.T(), err)
+}
+
+func (s *OTCDNSTestSuite) TestOTCDNSPresent() {
+ s.Mock.HandleListZonesSuccessfully()
+ s.Mock.HandleListRecordsetsSuccessfully()
+
+ otcProvider, _ := s.createDNSProvider()
+ err := otcProvider.Present("example.com", "", "foobar")
+ assert.Nil(s.T(), err)
+}
+
+func (s *OTCDNSTestSuite) TestOTCDNSCleanup() {
+ s.Mock.HandleListZonesSuccessfully()
+ s.Mock.HandleListRecordsetsSuccessfully()
+ s.Mock.HandleDeleteRecordsetsSuccessfully()
+
+ otcProvider, _ := s.createDNSProvider()
+ err := otcProvider.CleanUp("example.com", "", "foobar")
+ assert.Nil(s.T(), err)
+}