From 915afb5947155c8e8e149182e9bf87575cddd7d4 Mon Sep 17 00:00:00 2001 From: AllenZMC Date: Tue, 2 Aug 2022 09:01:24 +0800 Subject: [PATCH] Optimize code to reduce redundancy Signed-off-by: AllenZMC --- pkg/util/resource.go | 17 +--------------- pkg/util/resource_test.go | 41 +++++++++++++++++++++++++++++++++++++++ 2 files changed, 42 insertions(+), 16 deletions(-) create mode 100644 pkg/util/resource_test.go diff --git a/pkg/util/resource.go b/pkg/util/resource.go index d36c2033f..e25581a45 100644 --- a/pkg/util/resource.go +++ b/pkg/util/resource.go @@ -29,22 +29,7 @@ func EmptyResource() *Resource { // NewResource creates a new resource object from resource list. func NewResource(rl corev1.ResourceList) *Resource { r := &Resource{} - for rName, rQuant := range rl { - switch rName { - case corev1.ResourceCPU: - r.MilliCPU += rQuant.MilliValue() - case corev1.ResourceMemory: - r.Memory += rQuant.Value() - case corev1.ResourcePods: - r.AllowedPodNumber += rQuant.Value() - case corev1.ResourceEphemeralStorage: - r.EphemeralStorage += rQuant.Value() - default: - if lifted.IsScalarResourceName(rName) { - r.AddScalar(rName, rQuant.Value()) - } - } - } + r.Add(rl) return r } diff --git a/pkg/util/resource_test.go b/pkg/util/resource_test.go new file mode 100644 index 000000000..dfb09178e --- /dev/null +++ b/pkg/util/resource_test.go @@ -0,0 +1,41 @@ +package util + +import ( + "reflect" + "testing" + + corev1 "k8s.io/api/core/v1" + "k8s.io/apimachinery/pkg/api/resource" +) + +func TestNewResource(t *testing.T) { + tests := []struct { + name string + rl corev1.ResourceList + want *Resource + }{ + { + name: "Resource", + rl: corev1.ResourceList{ + corev1.ResourceCPU: *resource.NewMilliQuantity(5, resource.DecimalSI), + corev1.ResourceMemory: *resource.NewQuantity(5, resource.BinarySI), + corev1.ResourcePods: *resource.NewQuantity(5, resource.DecimalSI), + corev1.ResourceEphemeralStorage: *resource.NewQuantity(5, resource.BinarySI), + }, + want: &Resource{ + MilliCPU: 5, + Memory: 5, + EphemeralStorage: 5, + AllowedPodNumber: 5, + }, + }, + } + + for _, tt := range tests { + t.Run(tt.name, func(t *testing.T) { + if got := NewResource(tt.rl); !reflect.DeepEqual(got, tt.want) { + t.Errorf("NewResource() = %v, want %v", got, tt.want) + } + }) + } +}