github.com/cilium/cilium@v1.16.2/pkg/hubble/metrics/metrics_test.go (about)

     1  // SPDX-License-Identifier: Apache-2.0
     2  // Copyright Authors of Hubble
     3  
     4  package metrics
     5  
     6  import (
     7  	"context"
     8  	"testing"
     9  	"time"
    10  
    11  	"github.com/stretchr/testify/assert"
    12  	"k8s.io/client-go/util/workqueue"
    13  
    14  	pb "github.com/cilium/cilium/api/v1/flow"
    15  	"github.com/cilium/cilium/pkg/hubble/metrics/api"
    16  	slim_metav1 "github.com/cilium/cilium/pkg/k8s/slim/k8s/apis/meta/v1"
    17  	"github.com/cilium/cilium/pkg/k8s/types"
    18  )
    19  
    20  func TestUninitializedMetrics(t *testing.T) {
    21  	enabledMetrics = nil
    22  	endpointDeletionHandler = nil
    23  	ProcessFlow(context.TODO(), &pb.Flow{})
    24  	ProcessCiliumEndpointDeletion(&types.CiliumEndpoint{})
    25  }
    26  
    27  func TestInitializedMetrics(t *testing.T) {
    28  	t.Run("Should send pod removal to delayed delivery queue", func(t *testing.T) {
    29  		deletedEndpoint := &types.CiliumEndpoint{
    30  			ObjectMeta: slim_metav1.ObjectMeta{
    31  				Name: "name",
    32  			},
    33  		}
    34  		enabledMetrics = &api.Handlers{}
    35  		endpointDeletionHandler = &CiliumEndpointDeletionHandler{
    36  			gracefulPeriod: 10 * time.Millisecond,
    37  			queue:          workqueue.NewDelayingQueue(),
    38  		}
    39  
    40  		ProcessCiliumEndpointDeletion(deletedEndpoint)
    41  
    42  		received, _ := endpointDeletionHandler.queue.Get()
    43  		assert.Equal(t, deletedEndpoint, received)
    44  
    45  		endpointDeletionHandler.queue.ShutDown()
    46  	})
    47  
    48  }