@@ -53,3 +53,109 @@ func TestIsEqualPrivateNetwork(t *testing.T) {
53
53
})
54
54
}
55
55
}
56
+
57
+ func TestPrivateNetworksCompare (t * testing.T ) {
58
+ tests := []struct {
59
+ name string
60
+ oldPNs []* lbSDK.PrivateNetwork
61
+ newPNs []* lbSDK.PrivateNetwork
62
+ expectedToDetach []* lbSDK.PrivateNetwork
63
+ expectedToAttach []* lbSDK.PrivateNetwork
64
+ }{
65
+ {
66
+ name : "no changes" ,
67
+ oldPNs : []* lbSDK.PrivateNetwork {
68
+ {PrivateNetworkID : "pn1" , StaticConfig : & lbSDK.PrivateNetworkStaticConfig {IPAddress : scw .StringsPtr ([]string {"192.168.1.1" })}},
69
+ {PrivateNetworkID : "pn2" , DHCPConfig : & lbSDK.PrivateNetworkDHCPConfig {}},
70
+ },
71
+ newPNs : []* lbSDK.PrivateNetwork {
72
+ {PrivateNetworkID : "pn1" , StaticConfig : & lbSDK.PrivateNetworkStaticConfig {IPAddress : scw .StringsPtr ([]string {"192.168.1.1" })}},
73
+ {PrivateNetworkID : "pn2" , DHCPConfig : & lbSDK.PrivateNetworkDHCPConfig {}},
74
+ },
75
+ expectedToDetach : []* lbSDK.PrivateNetwork (nil ),
76
+ expectedToAttach : []* lbSDK.PrivateNetwork (nil ),
77
+ },
78
+ {
79
+ name : "private network removed" ,
80
+ oldPNs : []* lbSDK.PrivateNetwork {
81
+ {PrivateNetworkID : "pn1" , StaticConfig : & lbSDK.PrivateNetworkStaticConfig {IPAddress : scw .StringsPtr ([]string {"192.168.1.1" })}},
82
+ {PrivateNetworkID : "pn2" , DHCPConfig : & lbSDK.PrivateNetworkDHCPConfig {}},
83
+ },
84
+ newPNs : []* lbSDK.PrivateNetwork {
85
+ {PrivateNetworkID : "pn1" , StaticConfig : & lbSDK.PrivateNetworkStaticConfig {IPAddress : scw .StringsPtr ([]string {"192.168.1.1" })}},
86
+ },
87
+ expectedToDetach : []* lbSDK.PrivateNetwork {
88
+ {PrivateNetworkID : "pn2" , DHCPConfig : & lbSDK.PrivateNetworkDHCPConfig {}},
89
+ },
90
+ expectedToAttach : []* lbSDK.PrivateNetwork (nil ),
91
+ },
92
+ {
93
+ name : "private network added" ,
94
+ oldPNs : []* lbSDK.PrivateNetwork {
95
+ {PrivateNetworkID : "pn1" , StaticConfig : & lbSDK.PrivateNetworkStaticConfig {IPAddress : scw .StringsPtr ([]string {"192.168.1.1" })}},
96
+ },
97
+ newPNs : []* lbSDK.PrivateNetwork {
98
+ {PrivateNetworkID : "pn1" , StaticConfig : & lbSDK.PrivateNetworkStaticConfig {IPAddress : scw .StringsPtr ([]string {"192.168.1.1" })}},
99
+ {PrivateNetworkID : "pn2" , DHCPConfig : & lbSDK.PrivateNetworkDHCPConfig {}},
100
+ },
101
+ expectedToDetach : []* lbSDK.PrivateNetwork (nil ),
102
+ expectedToAttach : []* lbSDK.PrivateNetwork {
103
+ {PrivateNetworkID : "pn2" , DHCPConfig : & lbSDK.PrivateNetworkDHCPConfig {}},
104
+ },
105
+ },
106
+ {
107
+ name : "private network static configuration changed" ,
108
+ oldPNs : []* lbSDK.PrivateNetwork {
109
+ {PrivateNetworkID : "pn1" , StaticConfig : & lbSDK.PrivateNetworkStaticConfig {IPAddress : scw .StringsPtr ([]string {"192.168.1.1" })}},
110
+ },
111
+ newPNs : []* lbSDK.PrivateNetwork {
112
+ {PrivateNetworkID : "pn1" , StaticConfig : & lbSDK.PrivateNetworkStaticConfig {IPAddress : scw .StringsPtr ([]string {"192.168.1.2" })}},
113
+ },
114
+ expectedToDetach : []* lbSDK.PrivateNetwork {
115
+ {PrivateNetworkID : "pn1" , StaticConfig : & lbSDK.PrivateNetworkStaticConfig {IPAddress : scw .StringsPtr ([]string {"192.168.1.1" })}},
116
+ },
117
+ expectedToAttach : []* lbSDK.PrivateNetwork {
118
+ {PrivateNetworkID : "pn1" , StaticConfig : & lbSDK.PrivateNetworkStaticConfig {IPAddress : scw .StringsPtr ([]string {"192.168.1.2" })}},
119
+ },
120
+ },
121
+ {
122
+ name : "private network configuration changed from static to DHCP" ,
123
+ oldPNs : []* lbSDK.PrivateNetwork {
124
+ {PrivateNetworkID : "pn1" , StaticConfig : & lbSDK.PrivateNetworkStaticConfig {IPAddress : scw .StringsPtr ([]string {"192.168.1.1" })}},
125
+ },
126
+ newPNs : []* lbSDK.PrivateNetwork {
127
+ {PrivateNetworkID : "pn1" , DHCPConfig : & lbSDK.PrivateNetworkDHCPConfig {}},
128
+ },
129
+ expectedToDetach : []* lbSDK.PrivateNetwork {
130
+ {PrivateNetworkID : "pn1" , StaticConfig : & lbSDK.PrivateNetworkStaticConfig {IPAddress : scw .StringsPtr ([]string {"192.168.1.1" })}},
131
+ },
132
+ expectedToAttach : []* lbSDK.PrivateNetwork {
133
+ {PrivateNetworkID : "pn1" , DHCPConfig : & lbSDK.PrivateNetworkDHCPConfig {}},
134
+ },
135
+ },
136
+ {
137
+ name : "multiple private networks removed" ,
138
+ oldPNs : []* lbSDK.PrivateNetwork {
139
+ {PrivateNetworkID : "pn1" , StaticConfig : & lbSDK.PrivateNetworkStaticConfig {IPAddress : scw .StringsPtr ([]string {"192.168.1.1" })}},
140
+ {PrivateNetworkID : "pn2" , DHCPConfig : & lbSDK.PrivateNetworkDHCPConfig {}},
141
+ {PrivateNetworkID : "pn3" , StaticConfig : & lbSDK.PrivateNetworkStaticConfig {IPAddress : scw .StringsPtr ([]string {"192.168.1.3" })}},
142
+ },
143
+ newPNs : []* lbSDK.PrivateNetwork {
144
+ {PrivateNetworkID : "pn1" , StaticConfig : & lbSDK.PrivateNetworkStaticConfig {IPAddress : scw .StringsPtr ([]string {"192.168.1.1" })}},
145
+ },
146
+ expectedToDetach : []* lbSDK.PrivateNetwork {
147
+ {PrivateNetworkID : "pn2" , DHCPConfig : & lbSDK.PrivateNetworkDHCPConfig {}},
148
+ {PrivateNetworkID : "pn3" , StaticConfig : & lbSDK.PrivateNetworkStaticConfig {IPAddress : scw .StringsPtr ([]string {"192.168.1.3" })}},
149
+ },
150
+ expectedToAttach : []* lbSDK.PrivateNetwork (nil ),
151
+ },
152
+ }
153
+
154
+ for _ , tt := range tests {
155
+ t .Run (tt .name , func (t * testing.T ) {
156
+ toDetach , toAttach := lb .PrivateNetworksCompare (tt .oldPNs , tt .newPNs )
157
+ assert .ElementsMatch (t , tt .expectedToDetach , toDetach )
158
+ assert .ElementsMatch (t , tt .expectedToAttach , toAttach )
159
+ })
160
+ }
161
+ }
0 commit comments