github.com/cilium/cilium@v1.16.2/pkg/bgpv1/api/conversions_test.go (about)

     1  // SPDX-License-Identifier: Apache-2.0
     2  // Copyright Authors of Cilium
     3  
     4  package api
     5  
     6  import (
     7  	"testing"
     8  
     9  	"github.com/stretchr/testify/require"
    10  
    11  	"github.com/cilium/cilium/pkg/bgpv1/types"
    12  )
    13  
    14  var testRouterASN = int64(65001)
    15  
    16  // Test common Route conversions appearing in the codebase
    17  func TestRouteConversions(t *testing.T) {
    18  	for _, tt := range types.CommonPaths {
    19  		t.Run(tt.Name, func(t *testing.T) {
    20  			expectedRoute := &types.Route{
    21  				Prefix: tt.Path.NLRI.String(),
    22  				Paths:  []*types.Path{&tt.Path},
    23  			}
    24  
    25  			apiRoutes, err := ToAPIRoutes([]*types.Route{expectedRoute}, testRouterASN, "")
    26  			require.NoError(t, err)
    27  			require.NotZero(t, apiRoutes)
    28  
    29  			agentRoutes, err := ToAgentRoutes(apiRoutes)
    30  			require.NoError(t, err)
    31  			require.NotZero(t, agentRoutes)
    32  
    33  			require.EqualValues(t, expectedRoute, agentRoutes[0])
    34  		})
    35  	}
    36  }
    37  
    38  // Test conversion of common route policies
    39  func TestRoutePolicyConversions(t *testing.T) {
    40  	for _, tt := range types.TestCommonRoutePolicies {
    41  		t.Run(tt.Name, func(t *testing.T) {
    42  			apiPolicies := ToAPIRoutePolicies([]*types.RoutePolicy{tt.Policy}, testRouterASN)
    43  			require.NotZero(t, apiPolicies)
    44  
    45  			agentPolicies, err := ToAgentRoutePolicies(apiPolicies)
    46  			require.NoError(t, err)
    47  			require.NotZero(t, agentPolicies)
    48  
    49  			require.EqualValues(t, tt.Policy, agentPolicies[0])
    50  		})
    51  	}
    52  }