File: network_reserved_ips_test.go

package info (click to toggle)
golang-github-linode-linodego 1.55.0-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 13,112 kB
  • sloc: makefile: 96; sh: 52; python: 24
file content (115 lines) | stat: -rw-r--r-- 3,341 bytes parent folder | download
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")
}