summaryrefslogtreecommitdiffstats
path: root/vendor/github.com/xenolf/lego/providers/dns/dns_providers_test.go
blob: 3f87ffd337a45d72a304dd7eab959bc166320967 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
package dns

import (
	"os"
	"reflect"
	"testing"

	"github.com/stretchr/testify/assert"
	"github.com/xenolf/lego/providers/dns/exoscale"
)

var (
	apiKey    string
	apiSecret string
)

func init() {
	apiSecret = os.Getenv("EXOSCALE_API_SECRET")
	apiKey = os.Getenv("EXOSCALE_API_KEY")
}

func restoreExoscaleEnv() {
	os.Setenv("EXOSCALE_API_KEY", apiKey)
	os.Setenv("EXOSCALE_API_SECRET", apiSecret)
}

func TestKnownDNSProviderSuccess(t *testing.T) {
	os.Setenv("EXOSCALE_API_KEY", "abc")
	os.Setenv("EXOSCALE_API_SECRET", "123")
	provider, err := NewDNSChallengeProviderByName("exoscale")
	assert.NoError(t, err)
	assert.NotNil(t, provider)
	if reflect.TypeOf(provider) != reflect.TypeOf(&exoscale.DNSProvider{}) {
		t.Errorf("Not loaded correct DNS proviver: %v is not *exoscale.DNSProvider", reflect.TypeOf(provider))
	}
	restoreExoscaleEnv()
}

func TestKnownDNSProviderError(t *testing.T) {
	os.Setenv("EXOSCALE_API_KEY", "")
	os.Setenv("EXOSCALE_API_SECRET", "")
	_, err := NewDNSChallengeProviderByName("exoscale")
	assert.Error(t, err)
	restoreExoscaleEnv()
}

func TestUnknownDNSProvider(t *testing.T) {
	_, err := NewDNSChallengeProviderByName("foobar")
	assert.Error(t, err)
}