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 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115
|
package unit
import (
"context"
"testing"
"github.com/linode/linodego"
"github.com/stretchr/testify/assert"
)
func TestReservedIPAddresses_List(t *testing.T) {
var base ClientBaseCase
base.SetUp(t)
defer base.TearDown(t)
// Mock API response with additional attributes
mockResponse := struct {
Data []linodego.InstanceIP `json:"data"`
}{
Data: []linodego.InstanceIP{
{
Address: "192.168.1.10",
Region: "us-east",
LinodeID: 12345,
Reserved: true,
},
{
Address: "192.168.1.20",
Region: "us-west",
LinodeID: 67890,
Reserved: true,
},
},
}
base.MockGet("networking/reserved/ips", mockResponse)
reservedIPs, err := base.Client.ListReservedIPAddresses(context.Background(), nil)
assert.NoError(t, err, "Expected no error when listing reserved IP addresses")
assert.NotNil(t, reservedIPs, "Expected non-nil reserved IP addresses")
assert.Len(t, reservedIPs, 2, "Expected two reserved IP addresses")
assert.Equal(t, "192.168.1.10", reservedIPs[0].Address, "Expected first reserved IP address to match")
assert.Equal(t, "us-east", reservedIPs[0].Region, "Expected region to match")
assert.Equal(t, 12345, reservedIPs[0].LinodeID, "Expected Linode ID to match")
}
func TestReservedIPAddress_Get(t *testing.T) {
var base ClientBaseCase
base.SetUp(t)
defer base.TearDown(t)
ip := "192.168.1.10"
// Mock response with necessary attributes
mockResponse := linodego.InstanceIP{
Address: ip,
Region: "us-east",
LinodeID: 12345,
Reserved: true,
}
base.MockGet("networking/reserved/ips/"+ip, mockResponse)
reservedIP, err := base.Client.GetReservedIPAddress(context.Background(), ip)
assert.NoError(t, err, "Expected no error when getting reserved IP address")
assert.NotNil(t, reservedIP, "Expected non-nil reserved IP address")
assert.Equal(t, ip, reservedIP.Address, "Expected reserved IP address to match")
assert.Equal(t, "us-east", reservedIP.Region, "Expected region to match")
assert.Equal(t, 12345, reservedIP.LinodeID, "Expected Linode ID to match")
}
func TestIPReserveIPAddress(t *testing.T) {
var base ClientBaseCase
base.SetUp(t)
defer base.TearDown(t)
createOpts := linodego.ReserveIPOptions{
Region: "us-west",
}
// Mock the POST request for reserving an IP
mockResponse := linodego.InstanceIP{
Address: "192.168.1.30",
Region: "us-west",
LinodeID: 13579,
Reserved: true,
}
base.MockPost("networking/reserved/ips", mockResponse)
reservedIP, err := base.Client.ReserveIPAddress(context.Background(), createOpts)
assert.NoError(t, err, "Expected no error when reserving IP address")
assert.NotNil(t, reservedIP, "Expected non-nil reserved IP address")
assert.Equal(t, "192.168.1.30", reservedIP.Address, "Expected reserved IP address to match")
assert.Equal(t, "us-west", reservedIP.Region, "Expected region to match")
assert.Equal(t, 13579, reservedIP.LinodeID, "Expected Linode ID to match")
}
func TestReservedIPAddress_Delete(t *testing.T) {
var base ClientBaseCase
base.SetUp(t)
defer base.TearDown(t)
ip := "192.168.1.10"
// Mock the DELETE request for deleting the reserved IP
base.MockDelete("networking/reserved/ips/"+ip, nil)
err := base.Client.DeleteReservedIPAddress(context.Background(), ip)
assert.NoError(t, err, "Expected no error when deleting reserved IP address")
}
|