diff --git a/pkg/apis/core/v1/helper/helpers_test.go b/pkg/apis/core/v1/helper/helpers_test.go index dcd4e8b175a..0a455ee9627 100644 --- a/pkg/apis/core/v1/helper/helpers_test.go +++ b/pkg/apis/core/v1/helper/helpers_test.go @@ -917,3 +917,86 @@ func TestHugePageUnitSizeFromByteSize(t *testing.T) { } } } + +func TestLoadBalancerStatusEqual(t *testing.T) { + + testCases := []struct { + left *v1.LoadBalancerStatus + right *v1.LoadBalancerStatus + name string + expectVal bool + }{{ + name: "left equals right", + left: &v1.LoadBalancerStatus{ + Ingress: []v1.LoadBalancerIngress{{ + IP: "1.1.1.1", + Hostname: "host1", + }}, + }, + right: &v1.LoadBalancerStatus{ + Ingress: []v1.LoadBalancerIngress{{ + IP: "1.1.1.1", + Hostname: "host1", + }}, + }, + expectVal: true, + }, { + name: "length of LoadBalancerIngress slice is not equal", + left: &v1.LoadBalancerStatus{ + Ingress: []v1.LoadBalancerIngress{{ + IP: "1.1.1.1", + Hostname: "host1", + }, { + IP: "1.1.1.2", + Hostname: "host1", + }}, + }, + right: &v1.LoadBalancerStatus{ + Ingress: []v1.LoadBalancerIngress{{ + IP: "1.1.1.1", + Hostname: "host1", + }}, + }, + expectVal: false, + }, { + name: "LoadBalancerIngress ip is not equal", + left: &v1.LoadBalancerStatus{ + Ingress: []v1.LoadBalancerIngress{{ + IP: "1.1.1.2", + Hostname: "host1", + }}, + }, + right: &v1.LoadBalancerStatus{ + Ingress: []v1.LoadBalancerIngress{{ + IP: "1.1.1.1", + Hostname: "host1", + }}, + }, + expectVal: false, + }, { + name: "LoadBalancerIngress hostname is not equal", + left: &v1.LoadBalancerStatus{ + Ingress: []v1.LoadBalancerIngress{{ + IP: "1.1.1.1", + Hostname: "host2", + }}, + }, + right: &v1.LoadBalancerStatus{ + Ingress: []v1.LoadBalancerIngress{{ + IP: "1.1.1.1", + Hostname: "host1", + }}, + }, + expectVal: false, + }} + + for _, tc := range testCases { + t.Run(tc.name, func(t *testing.T) { + v := LoadBalancerStatusEqual(tc.left, tc.right) + if v != tc.expectVal { + t.Errorf("test %s failed. left input=%v, right input=%v, Got %v but expected %v", + tc.name, tc.left, tc.right, v, tc.expectVal) + } + }) + } +}