package resource import ( "testing" "github.com/stretchr/testify/require" corev1 "k8s.io/api/core/v1" kresource "k8s.io/apimachinery/pkg/api/resource" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" ) const testResource Resource = "test.edge.ncr.com/resource" func TestPodHasResourceRequest(t *testing.T) { tcs := []struct { Pod *corev1.Pod HasResourceRequest bool }{ { Pod: &corev1.Pod{ ObjectMeta: metav1.ObjectMeta{ Name: "example", Namespace: "example", }, Spec: corev1.PodSpec{}, }, HasResourceRequest: false, }, { Pod: &corev1.Pod{ ObjectMeta: metav1.ObjectMeta{ Name: "example", Namespace: "example", }, Spec: corev1.PodSpec{ Containers: []corev1.Container{ { Name: "ubuntu", Image: "docker.io/ubuntu", Resources: corev1.ResourceRequirements{ Requests: corev1.ResourceList{ testResource.ResourceName(): kresource.MustParse("1"), }, }, }, }, }, }, HasResourceRequest: false, }, { Pod: &corev1.Pod{ ObjectMeta: metav1.ObjectMeta{ Name: "example", Namespace: "example", }, Spec: corev1.PodSpec{ Containers: []corev1.Container{ { Name: "ubuntu", Image: "docker.io/ubuntu", Resources: corev1.ResourceRequirements{ Requests: corev1.ResourceList{ UIRequestResource.ResourceName(): kresource.MustParse("1"), }, }, }, }, }, }, HasResourceRequest: true, }, { Pod: &corev1.Pod{ ObjectMeta: metav1.ObjectMeta{ Name: "example", Namespace: "example", }, Spec: corev1.PodSpec{ Containers: []corev1.Container{ { Name: "ubuntu", Image: "docker.io/ubuntu", Resources: corev1.ResourceRequirements{ Requests: corev1.ResourceList{ AudioRequestResource.ResourceName(): kresource.MustParse("1"), }, }, }, }, }, }, HasResourceRequest: true, }, } for idx, tc := range tcs { require.Equal(t, tc.HasResourceRequest, ContainersHasResourceRequest(tc.Pod.Spec.Containers, UIRequestResource) || ContainersHasResourceRequest(tc.Pod.Spec.Containers, AudioRequestResource), "test case %d failed", idx+1) } }