Skip to content

Commit

Permalink
review: refactor tests.
Browse files Browse the repository at this point in the history
  • Loading branch information
ldez committed Sep 26, 2018
1 parent db4299d commit f765be9
Showing 1 changed file with 108 additions and 35 deletions.
143 changes: 108 additions & 35 deletions providers/dns/mydnsjp/mydnsjp_test.go
Expand Up @@ -30,46 +30,119 @@ func restoreEnv() {
os.Setenv("MYDNSJP_PASSWORD", mydnsjpPassword)
}

func TestNewDNSProviderValid(t *testing.T) {
os.Setenv("MYDNSJP_MASTER_ID", "")
os.Setenv("MYDNSJP_PASSWORD", "")
defer restoreEnv()

config := NewDefaultConfig()
config.MasterID = "123"
config.Password = "123"

_, err := NewDNSProviderConfig(config)
assert.NoError(t, err)
}

func TestNewDNSProviderValidEnv(t *testing.T) {
defer restoreEnv()
os.Setenv("MYDNSJP_MASTER_ID", "test@example.com")
os.Setenv("MYDNSJP_PASSWORD", "123")

_, err := NewDNSProvider()
assert.NoError(t, err)
}

func TestNewDNSProviderMissingCredErr(t *testing.T) {
defer restoreEnv()
os.Setenv("MYDNSJP_MASTER_ID", "")
os.Setenv("MYDNSJP_PASSWORD", "")
func TestNewDNSProvider(t *testing.T) {
testCases := []struct {
desc string
envVars map[string]string
expected string
}{
{
desc: "success",
envVars: map[string]string{
"MYDNSJP_MASTER_ID": "test@example.com",
"MYDNSJP_PASSWORD": "123",
},
},
{
desc: "missing credentials",
envVars: map[string]string{
"MYDNSJP_MASTER_ID": "",
"MYDNSJP_PASSWORD": "",
},
expected: "mydnsjp: some credentials information are missing: MYDNSJP_MASTER_ID,MYDNSJP_PASSWORD",
},
{
desc: "missing email",
envVars: map[string]string{
"MYDNSJP_MASTER_ID": "",
"MYDNSJP_PASSWORD": "key",
},
expected: "mydnsjp: some credentials information are missing: MYDNSJP_MASTER_ID",
},
{
desc: "missing api key",
envVars: map[string]string{
"MYDNSJP_MASTER_ID": "awesome@possum.com",
"MYDNSJP_PASSWORD": "",
},
expected: "mydnsjp: some credentials information are missing: MYDNSJP_PASSWORD",
},
}

_, err := NewDNSProvider()
assert.EqualError(t, err, "mydnsjp: some credentials information are missing: MYDNSJP_MASTER_ID,MYDNSJP_PASSWORD")
for _, test := range testCases {
t.Run(test.desc, func(t *testing.T) {
defer restoreEnv()
for key, value := range test.envVars {
if len(value) == 0 {
os.Unsetenv(key)
} else {
os.Setenv(key, value)
}
}

p, err := NewDNSProvider()

if len(test.expected) == 0 {
assert.NoError(t, err)
assert.NotNil(t, p)
} else {
require.EqualError(t, err, test.expected)
}
})
}
}

func TestNewDNSProviderMissingCredErrSingle(t *testing.T) {
defer restoreEnv()
os.Setenv("MYDNSJP_MASTER_ID", "awesome@possum.com")
func TestNewDNSProviderConfig(t *testing.T) {
testCases := []struct {
desc string
masterID string
password string
expected string
}{
{
desc: "success",
masterID: "test@example.com",
password: "123",
},
{
desc: "missing credentials",
expected: "mydnsjp: some credentials information are missing",
},
{
desc: "missing email",
password: "123",
expected: "mydnsjp: some credentials information are missing",
},
{
desc: "missing api key",
masterID: "test@example.com",
expected: "mydnsjp: some credentials information are missing",
},
}

_, err := NewDNSProvider()
assert.EqualError(t, err, "mydnsjp: some credentials information are missing: MYDNSJP_PASSWORD")
for _, test := range testCases {
t.Run(test.desc, func(t *testing.T) {
defer restoreEnv()
os.Unsetenv("MYDNSJP_MASTER_ID")
os.Unsetenv("MYDNSJP_PASSWORD")

config := NewDefaultConfig()
config.MasterID = test.masterID
config.Password = test.password

p, err := NewDNSProviderConfig(config)

if len(test.expected) == 0 {
assert.NoError(t, err)
assert.NotNil(t, p)
} else {
require.EqualError(t, err, test.expected)
}
})
}
}

func TestMyDNSJPPresent(t *testing.T) {
func TestLivePresent(t *testing.T) {
if !mydnsjpLiveTest {
t.Skip("skipping live test")
}
Expand All @@ -85,7 +158,7 @@ func TestMyDNSJPPresent(t *testing.T) {
assert.NoError(t, err)
}

func TestMyDNSJPCleanUp(t *testing.T) {
func TestLiveCleanUp(t *testing.T) {
if !mydnsjpLiveTest {
t.Skip("skipping live test")
}
Expand Down

0 comments on commit f765be9

Please sign in to comment.