Skip to content

Commit b23d800

Browse files
committed
Cover missing code and address review comments
1 parent b74caab commit b23d800

File tree

1 file changed

+48
-7
lines changed

1 file changed

+48
-7
lines changed

cloud/scope/powervs_cluster_test.go

Lines changed: 48 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -179,7 +179,7 @@ func TestReconcileNetwork(t *testing.T) {
179179

180180
clusterScopeParams := getPowerVSClusterScopeParams()
181181
clusterScopeParams.PowerVSClientFactory = func() (powervs.PowerVS, error) {
182-
mockPowerVS.EXPECT().GetDHCPServer(gomock.Any()).Return(nil, fmt.Errorf("intentional error"))
182+
mockPowerVS.EXPECT().GetDHCPServer(gomock.Any()).Return(nil, fmt.Errorf("GetDHCPServer error"))
183183
return mockPowerVS, nil
184184
}
185185
clusterScope, _ := NewPowerVSClusterScope(clusterScopeParams)
@@ -188,6 +188,23 @@ func TestReconcileNetwork(t *testing.T) {
188188
g.Expect(err).ToNot(BeNil())
189189
g.Expect(requeue).To(BeFalse())
190190
})
191+
t.Run("When DHCPServer exists and is active", func(t *testing.T) {
192+
g := NewWithT(t)
193+
setup(t)
194+
t.Cleanup(teardown)
195+
196+
clusterScopeParams := getPowerVSClusterScopeParams()
197+
clusterScopeParams.PowerVSClientFactory = func() (powervs.PowerVS, error) {
198+
dhcpServer := &models.DHCPServerDetail{ID: ptr.To("dhcpID"), Status: ptr.To(string(infrav1beta2.DHCPServerStateActive))}
199+
mockPowerVS.EXPECT().GetDHCPServer(gomock.Any()).Return(dhcpServer, nil)
200+
return mockPowerVS, nil
201+
}
202+
clusterScope, _ := NewPowerVSClusterScope(clusterScopeParams)
203+
204+
requeue, err := clusterScope.ReconcileNetwork()
205+
g.Expect(err).To(BeNil())
206+
g.Expect(requeue).To(BeFalse())
207+
})
191208
t.Run("When DHCPID is empty and GetNetworkByID returns error ", func(t *testing.T) {
192209
g := NewWithT(t)
193210
setup(t)
@@ -196,7 +213,7 @@ func TestReconcileNetwork(t *testing.T) {
196213
clusterScopeParams := getPowerVSClusterScopeParams()
197214
clusterScopeParams.PowerVSClientFactory = func() (powervs.PowerVS, error) {
198215
network := &models.Network{}
199-
mockPowerVS.EXPECT().GetNetworkByID(gomock.Any()).Return(network, fmt.Errorf("intentional error"))
216+
mockPowerVS.EXPECT().GetNetworkByID(gomock.Any()).Return(network, fmt.Errorf("GetNetworkByID error"))
200217
return mockPowerVS, nil
201218
}
202219
clusterScopeParams.IBMPowerVSCluster.Spec.DHCPServer.ID = nil
@@ -211,10 +228,9 @@ func TestReconcileNetwork(t *testing.T) {
211228
g := NewWithT(t)
212229
setup(t)
213230
t.Cleanup(teardown)
214-
231+
network := &models.Network{NetworkID: ptr.To("networkID")}
215232
clusterScopeParams := getPowerVSClusterScopeParams()
216233
clusterScopeParams.PowerVSClientFactory = func() (powervs.PowerVS, error) {
217-
network := &models.Network{NetworkID: ptr.To("networkID")}
218234
mockPowerVS.EXPECT().GetNetworkByID(gomock.Any()).Return(network, nil)
219235
return mockPowerVS, nil
220236
}
@@ -223,10 +239,35 @@ func TestReconcileNetwork(t *testing.T) {
223239
clusterScope, _ := NewPowerVSClusterScope(clusterScopeParams)
224240

225241
requeue, err := clusterScope.ReconcileNetwork()
242+
g.Expect(clusterScope.IBMPowerVSCluster.Status.Network.ID).To(Equal(network.NetworkID))
226243
g.Expect(err).To(BeNil())
227244
g.Expect(requeue).To(BeFalse())
228245
})
229-
t.Run("When DHCPID is empty and networkID is empty", func(t *testing.T) {
246+
t.Run("When DHCPID is empty and GetNetworkByName returns empty network", func(t *testing.T) {
247+
g := NewWithT(t)
248+
setup(t)
249+
t.Cleanup(teardown)
250+
251+
network := &models.NetworkReference{}
252+
dhcpNetwork := &models.DHCPServerNetwork{ID: ptr.To("dhcpNetworkID")}
253+
dhcpServer := &models.DHCPServer{ID: ptr.To("dhcpID"), Network: dhcpNetwork}
254+
clusterScopeParams := getPowerVSClusterScopeParams()
255+
clusterScopeParams.PowerVSClientFactory = func() (powervs.PowerVS, error) {
256+
mockPowerVS.EXPECT().GetNetworkByName(gomock.Any()).Return(network, nil)
257+
mockPowerVS.EXPECT().CreateDHCPServer(gomock.Any()).Return(dhcpServer, nil)
258+
return mockPowerVS, nil
259+
}
260+
clusterScopeParams.IBMPowerVSCluster.Spec.DHCPServer.ID = nil
261+
clusterScope, _ := NewPowerVSClusterScope(clusterScopeParams)
262+
263+
requeue, err := clusterScope.ReconcileNetwork()
264+
g.Expect(clusterScope.IBMPowerVSCluster.Status.DHCPServer.ID).To(Equal(dhcpServer.ID))
265+
g.Expect(clusterScope.IBMPowerVSCluster.Status.Network.ID).To(Equal(dhcpNetwork.ID))
266+
g.Expect(err).To(BeNil())
267+
g.Expect(requeue).To(BeTrue())
268+
269+
})
270+
t.Run("When DHCPID is empty and checkNetwork returns empty network ID", func(t *testing.T) {
230271
g := NewWithT(t)
231272
setup(t)
232273
t.Cleanup(teardown)
@@ -249,7 +290,7 @@ func TestReconcileNetwork(t *testing.T) {
249290
g.Expect(requeue).To(BeTrue())
250291

251292
})
252-
t.Run("When DHCPID and networkID is empty and createDHCPServer returns error", func(t *testing.T) {
293+
t.Run("When DHCPID and networkID is not empty and createDHCPServer returns error", func(t *testing.T) {
253294
g := NewWithT(t)
254295
setup(t)
255296
t.Cleanup(teardown)
@@ -258,7 +299,7 @@ func TestReconcileNetwork(t *testing.T) {
258299
clusterScopeParams.PowerVSClientFactory = func() (powervs.PowerVS, error) {
259300
network := &models.Network{}
260301
mockPowerVS.EXPECT().GetNetworkByID(gomock.Any()).Return(network, nil)
261-
mockPowerVS.EXPECT().CreateDHCPServer(gomock.Any()).Return(nil, fmt.Errorf("intentional error"))
302+
mockPowerVS.EXPECT().CreateDHCPServer(gomock.Any()).Return(nil, fmt.Errorf("CreateDHCPServer error"))
262303
return mockPowerVS, nil
263304
}
264305
clusterScopeParams.IBMPowerVSCluster.Spec.DHCPServer.ID = nil

0 commit comments

Comments
 (0)