103 lines
2 KiB
Go
103 lines
2 KiB
Go
package digitalocean
|
|
|
|
import (
|
|
"errors"
|
|
"net"
|
|
"testing"
|
|
|
|
"dnsupdater/dns"
|
|
|
|
"github.com/digitalocean/godo"
|
|
|
|
"github.com/stretchr/testify/assert"
|
|
)
|
|
|
|
func TestDigitalOceanService_New(t *testing.T) {
|
|
assert.Equal(t, Service{
|
|
api: godo.NewFromToken("token").Domains,
|
|
}, New("token"))
|
|
}
|
|
|
|
func TestDigitalOceanService_List(t *testing.T) {
|
|
expected := dns.RecordList{
|
|
{
|
|
Id: "236718",
|
|
Name: "sub1",
|
|
Ip: net.IPv4(161, 125, 137, 64),
|
|
},
|
|
{
|
|
Id: "23123131",
|
|
Name: "sub2",
|
|
Ip: net.IPv4(154, 63, 46, 159),
|
|
},
|
|
}
|
|
|
|
service := Service{
|
|
api: mock{
|
|
t: t,
|
|
records_by_type: map[string][]godo.DomainRecord{
|
|
"example.com": {
|
|
{
|
|
ID: 236718,
|
|
Type: "A",
|
|
Name: "sub1",
|
|
Data: "161.125.137.64",
|
|
Priority: 10,
|
|
TTL: 1800,
|
|
},
|
|
{
|
|
ID: 23123131,
|
|
Type: "A",
|
|
Name: "sub2",
|
|
Data: "154.63.46.159",
|
|
Priority: 5,
|
|
TTL: 1800,
|
|
},
|
|
},
|
|
},
|
|
},
|
|
}
|
|
|
|
// Test fetch.
|
|
records, err := service.List("example.com")
|
|
assert.NoError(t, err)
|
|
assert.Equal(t, expected, records)
|
|
}
|
|
|
|
func TestDigitalOceanService_Update(t *testing.T) {
|
|
mockApi := mock{
|
|
t: t,
|
|
records_by_type: map[string][]godo.DomainRecord{
|
|
"example.com": {
|
|
{
|
|
ID: 1337,
|
|
Name: "www",
|
|
Data: "80.17.42.157",
|
|
Priority: 10,
|
|
TTL: 360,
|
|
Port: 22,
|
|
Weight: 100,
|
|
Flags: 0xf1,
|
|
Tag: "some_tag",
|
|
},
|
|
},
|
|
},
|
|
edit_record_request: &godo.DomainRecordEditRequest{
|
|
Data: "221.135.170.186",
|
|
},
|
|
}
|
|
|
|
service := Service{
|
|
api: &mockApi,
|
|
}
|
|
|
|
err := service.Update("example.com", "1337", net.IPv4(221, 135, 170, 186).String())
|
|
assert.NoError(t, err)
|
|
|
|
mockApi.edit_record_error = errors.New("Error")
|
|
err = service.Update("invalid.com", "1340", net.IPv4(72, 82, 118, 186).String())
|
|
assert.Error(t, err)
|
|
|
|
err = service.Update("example.com", "1337", net.IPv4(221, 135, 170, 186).String())
|
|
assert.Error(t, err)
|
|
}
|