mirror of
https://github.com/StackExchange/dnscontrol.git
synced 2025-10-06 11:56:50 +08:00
140 lines
4.8 KiB
Go
140 lines
4.8 KiB
Go
package cloudflare
|
|
|
|
import (
|
|
"context"
|
|
"fmt"
|
|
"net/http"
|
|
"testing"
|
|
|
|
"github.com/stretchr/testify/assert"
|
|
)
|
|
|
|
const (
|
|
listDispatchNamespaces = `{
|
|
"result": [
|
|
{
|
|
"namespace_id": "6446f71d-13b3-4bbc-a8a4-9e18760499c8",
|
|
"namespace_name": "test",
|
|
"created_on": "2024-02-20T17:26:15.4134Z",
|
|
"created_by": "4e599df4216133509abaac54b109a647",
|
|
"modified_on": "2024-02-20T17:26:15.4134Z",
|
|
"modified_by": "4e599df4216133509abaac54b109a647"
|
|
},
|
|
{
|
|
"namespace_id": "d6851dad-d412-4509-ae13-a364bc5f125a",
|
|
"namespace_name": "test-2",
|
|
"created_on": "2024-02-20T20:28:36.560575Z",
|
|
"created_by": "4e599df4216133509abaac54b109a647",
|
|
"modified_on": "2024-02-20T20:28:36.560575Z",
|
|
"modified_by": "4e599df4216133509abaac54b109a647"
|
|
}
|
|
],
|
|
"success": true,
|
|
"errors": [],
|
|
"messages": []
|
|
}`
|
|
|
|
getDispatchNamespace = `{
|
|
"result": {
|
|
"namespace_id": "6446f71d-13b3-4bbc-a8a4-9e18760499c8",
|
|
"namespace_name": "test",
|
|
"created_on": "2024-02-20T17:26:15.4134Z",
|
|
"created_by": "4e599df4216133509abaac54b109a647",
|
|
"modified_on": "2024-02-20T17:26:15.4134Z",
|
|
"modified_by": "4e599df4216133509abaac54b109a647"
|
|
},
|
|
"success": true,
|
|
"errors": [],
|
|
"messages": []
|
|
}`
|
|
|
|
deleteDispatchNamespace = `{
|
|
"result": null,
|
|
"success": true,
|
|
"errors": [],
|
|
"messages": []
|
|
}`
|
|
)
|
|
|
|
func TestListWorkersForPlatformsDispatchNamespaces(t *testing.T) {
|
|
setup()
|
|
defer teardown()
|
|
|
|
mux.HandleFunc("/accounts/"+testAccountID+"/workers/dispatch/namespaces", func(w http.ResponseWriter, r *http.Request) {
|
|
assert.Equal(t, http.MethodGet, r.Method, "Expected method 'GET', got %s", r.Method)
|
|
w.Header().Set("content-type", "application/json")
|
|
fmt.Fprint(w, listDispatchNamespaces)
|
|
})
|
|
|
|
res, err := client.ListWorkersForPlatformsDispatchNamespaces(context.Background(), AccountIdentifier(testAccountID))
|
|
|
|
assert.NoError(t, err)
|
|
assert.Len(t, res.Result, 2)
|
|
|
|
assert.Equal(t, "6446f71d-13b3-4bbc-a8a4-9e18760499c8", res.Result[0].NamespaceId)
|
|
assert.Equal(t, "test", res.Result[0].NamespaceName)
|
|
assert.Equal(t, "4e599df4216133509abaac54b109a647", res.Result[0].CreatedBy)
|
|
assert.Equal(t, "4e599df4216133509abaac54b109a647", res.Result[0].ModifiedBy)
|
|
|
|
assert.Equal(t, "d6851dad-d412-4509-ae13-a364bc5f125a", res.Result[1].NamespaceId)
|
|
assert.Equal(t, "test-2", res.Result[1].NamespaceName)
|
|
assert.Equal(t, "4e599df4216133509abaac54b109a647", res.Result[1].CreatedBy)
|
|
assert.Equal(t, "4e599df4216133509abaac54b109a647", res.Result[1].ModifiedBy)
|
|
}
|
|
|
|
func TestGetWorkersForPlatformsDispatchNamespace(t *testing.T) {
|
|
setup()
|
|
defer teardown()
|
|
|
|
mux.HandleFunc("/accounts/"+testAccountID+"/workers/dispatch/namespaces/test", func(w http.ResponseWriter, r *http.Request) {
|
|
assert.Equal(t, http.MethodGet, r.Method, "Expected method 'GET', got %s", r.Method)
|
|
w.Header().Set("content-type", "application/json")
|
|
fmt.Fprint(w, getDispatchNamespace)
|
|
})
|
|
|
|
res, err := client.GetWorkersForPlatformsDispatchNamespace(context.Background(), AccountIdentifier(testAccountID), "test")
|
|
|
|
assert.NoError(t, err)
|
|
|
|
assert.Equal(t, "6446f71d-13b3-4bbc-a8a4-9e18760499c8", res.Result.NamespaceId)
|
|
assert.Equal(t, "test", res.Result.NamespaceName)
|
|
assert.Equal(t, "4e599df4216133509abaac54b109a647", res.Result.CreatedBy)
|
|
assert.Equal(t, "4e599df4216133509abaac54b109a647", res.Result.ModifiedBy)
|
|
}
|
|
|
|
func TestCreateWorkersForPlatformsDispatchNamespace(t *testing.T) {
|
|
setup()
|
|
defer teardown()
|
|
|
|
mux.HandleFunc("/accounts/"+testAccountID+"/workers/dispatch/namespaces", func(w http.ResponseWriter, r *http.Request) {
|
|
assert.Equal(t, http.MethodPost, r.Method, "Expected method 'POST', got %s", r.Method)
|
|
w.Header().Set("content-type", "application/json")
|
|
fmt.Fprint(w, getDispatchNamespace)
|
|
})
|
|
|
|
res, err := client.CreateWorkersForPlatformsDispatchNamespace(context.Background(), AccountIdentifier(testAccountID), CreateWorkersForPlatformsDispatchNamespaceParams{
|
|
Name: "test",
|
|
})
|
|
|
|
assert.NoError(t, err)
|
|
|
|
assert.Equal(t, "6446f71d-13b3-4bbc-a8a4-9e18760499c8", res.Result.NamespaceId)
|
|
assert.Equal(t, "test", res.Result.NamespaceName)
|
|
assert.Equal(t, "4e599df4216133509abaac54b109a647", res.Result.CreatedBy)
|
|
assert.Equal(t, "4e599df4216133509abaac54b109a647", res.Result.ModifiedBy)
|
|
}
|
|
|
|
func TestDeleteWorkersForPlatformsDispatchNamespace(t *testing.T) {
|
|
setup()
|
|
defer teardown()
|
|
|
|
mux.HandleFunc("/accounts/"+testAccountID+"/workers/dispatch/namespaces/test", func(w http.ResponseWriter, r *http.Request) {
|
|
assert.Equal(t, http.MethodDelete, r.Method, "Expected method 'DELETE', got %s", r.Method)
|
|
w.Header().Set("content-type", "application/json")
|
|
fmt.Fprint(w, deleteDispatchNamespace)
|
|
})
|
|
|
|
err := client.DeleteWorkersForPlatformsDispatchNamespace(context.Background(), AccountIdentifier(testAccountID), "test")
|
|
|
|
assert.NoError(t, err)
|
|
}
|