mirror of
https://gitlab.com/pnx-tools/dns-updater.git
synced 2026-06-16 05:54:56 +02:00
105 lines
3.1 KiB
Go
105 lines
3.1 KiB
Go
package digitalocean
|
|
|
|
import (
|
|
"context"
|
|
"errors"
|
|
"testing"
|
|
|
|
"github.com/digitalocean/godo"
|
|
"github.com/stretchr/testify/assert"
|
|
)
|
|
|
|
type mock struct {
|
|
t *testing.T
|
|
|
|
records_by_type map[string][]godo.DomainRecord
|
|
|
|
edit_record_request *godo.DomainRecordEditRequest
|
|
edit_record_error error
|
|
}
|
|
|
|
func (m mock) List(context.Context, *godo.ListOptions) ([]godo.Domain, *godo.Response, error) {
|
|
m.t.Error("List called when it should not have been")
|
|
return nil, nil, nil
|
|
}
|
|
|
|
func (m mock) Get(context.Context, string) (*godo.Domain, *godo.Response, error) {
|
|
m.t.Error("Get called when it should not have been")
|
|
return nil, nil, nil
|
|
}
|
|
|
|
func (m mock) Create(context.Context, *godo.DomainCreateRequest) (*godo.Domain, *godo.Response, error) {
|
|
m.t.Error("Create called when it should not have been")
|
|
return nil, nil, nil
|
|
}
|
|
|
|
func (m mock) Delete(context.Context, string) (*godo.Response, error) {
|
|
m.t.Error("Delete called when it should not have been")
|
|
return nil, nil
|
|
}
|
|
|
|
func (m mock) Records(context.Context, string, *godo.ListOptions) ([]godo.DomainRecord, *godo.Response, error) {
|
|
m.t.Error("Records called when it should not have been")
|
|
return nil, nil, nil
|
|
}
|
|
|
|
func (m mock) RecordsByType(_ context.Context, name string, t string, opt *godo.ListOptions) ([]godo.DomainRecord, *godo.Response, error) {
|
|
var err error
|
|
|
|
// Only care about "A" records
|
|
assert.Equal(m.t, "A", t)
|
|
|
|
r, ok := m.records_by_type[name]
|
|
if !ok {
|
|
err = errors.New("Record not found")
|
|
}
|
|
return r, nil, err
|
|
}
|
|
|
|
func (m mock) RecordsByName(context.Context, string, string, *godo.ListOptions) ([]godo.DomainRecord, *godo.Response, error) {
|
|
m.t.Error("RecordsByName called when it should not have been")
|
|
return nil, nil, nil
|
|
}
|
|
|
|
func (m mock) RecordsByTypeAndName(context.Context, string, string, string, *godo.ListOptions) ([]godo.DomainRecord, *godo.Response, error) {
|
|
m.t.Error("RecordsByTypeAndName called when it should not have been")
|
|
return nil, nil, nil
|
|
}
|
|
|
|
func (m mock) Record(context.Context, string, int) (*godo.DomainRecord, *godo.Response, error) {
|
|
m.t.Error("Record called when it should not have been")
|
|
return nil, nil, nil
|
|
}
|
|
|
|
func (m mock) DeleteRecord(context.Context, string, int) (*godo.Response, error) {
|
|
m.t.Error("DeleteRecord called when it should not have been")
|
|
return nil, nil
|
|
}
|
|
|
|
func (m mock) EditRecord(_ context.Context, domain string, id int, req *godo.DomainRecordEditRequest) (*godo.DomainRecord, *godo.Response, error) {
|
|
if m.edit_record_request == nil {
|
|
m.t.Error("EditRecord called with empty request")
|
|
}
|
|
|
|
assert.Equal(m.t, m.edit_record_request, req)
|
|
|
|
record := godo.DomainRecord{
|
|
ID: id,
|
|
Type: req.Type,
|
|
Name: req.Name,
|
|
Data: req.Data,
|
|
Priority: req.Priority,
|
|
Port: req.Port,
|
|
TTL: req.TTL,
|
|
Weight: req.Weight,
|
|
Flags: req.Flags,
|
|
Tag: req.Tag,
|
|
}
|
|
|
|
return &record, nil, m.edit_record_error
|
|
}
|
|
|
|
func (m mock) CreateRecord(context.Context, string, *godo.DomainRecordEditRequest) (*godo.DomainRecord, *godo.Response, error) {
|
|
m.t.Error("CreateRecord called when it should not have been")
|
|
return nil, nil, nil
|
|
}
|