...

Source file src/github.com/datawire/ambassador/v2/pkg/envoy-control-plane/cache/v3/cache_test.go

Documentation: github.com/datawire/ambassador/v2/pkg/envoy-control-plane/cache/v3

     1  // Code generated by create_version. DO NOT EDIT.
     2  package cache_test
     3  
     4  import (
     5  	"testing"
     6  
     7  	route "github.com/datawire/ambassador/v2/pkg/api/envoy/config/route/v3"
     8  	discovery "github.com/datawire/ambassador/v2/pkg/api/envoy/service/discovery/v3"
     9  	"github.com/datawire/ambassador/v2/pkg/envoy-control-plane/cache/types"
    10  	"github.com/datawire/ambassador/v2/pkg/envoy-control-plane/cache/v3"
    11  	"github.com/datawire/ambassador/v2/pkg/envoy-control-plane/resource/v3"
    12  	ttl_helper "github.com/datawire/ambassador/v2/pkg/envoy-control-plane/ttl/v2"
    13  	"github.com/golang/protobuf/ptypes"
    14  	"github.com/golang/protobuf/ptypes/any"
    15  	"github.com/stretchr/testify/assert"
    16  )
    17  
    18  const (
    19  	resourceName = "route1"
    20  )
    21  
    22  func TestResponseGetDiscoveryResponse(t *testing.T) {
    23  	routes := []types.ResourceWithTtl{{Resource: &route.RouteConfiguration{Name: resourceName}}}
    24  	resp := cache.RawResponse{
    25  		Request:   &discovery.DiscoveryRequest{TypeUrl: resource.RouteType},
    26  		Version:   "v",
    27  		Resources: routes,
    28  	}
    29  
    30  	discoveryResponse, err := resp.GetDiscoveryResponse()
    31  	assert.Nil(t, err)
    32  	assert.Equal(t, discoveryResponse.VersionInfo, resp.Version)
    33  	assert.Equal(t, len(discoveryResponse.Resources), 1)
    34  
    35  	cachedResponse, err := resp.GetDiscoveryResponse()
    36  	assert.Nil(t, err)
    37  	assert.Same(t, discoveryResponse, cachedResponse)
    38  
    39  	r := &route.RouteConfiguration{}
    40  	err = ptypes.UnmarshalAny(discoveryResponse.Resources[0], r)
    41  	assert.Nil(t, err)
    42  	assert.Equal(t, r.Name, resourceName)
    43  }
    44  
    45  func TestPassthroughResponseGetDiscoveryResponse(t *testing.T) {
    46  	routes := []types.Resource{&route.RouteConfiguration{Name: resourceName}}
    47  	rsrc, err := ptypes.MarshalAny(routes[0])
    48  	assert.Nil(t, err)
    49  	dr := &discovery.DiscoveryResponse{
    50  		TypeUrl:     resource.RouteType,
    51  		Resources:   []*any.Any{rsrc},
    52  		VersionInfo: "v",
    53  	}
    54  	resp := cache.PassthroughResponse{
    55  		Request:           &discovery.DiscoveryRequest{TypeUrl: resource.RouteType},
    56  		DiscoveryResponse: dr,
    57  	}
    58  
    59  	discoveryResponse, err := resp.GetDiscoveryResponse()
    60  	assert.Nil(t, err)
    61  	assert.Equal(t, discoveryResponse.VersionInfo, resp.DiscoveryResponse.VersionInfo)
    62  	assert.Equal(t, len(discoveryResponse.Resources), 1)
    63  
    64  	r := &route.RouteConfiguration{}
    65  	err = ptypes.UnmarshalAny(discoveryResponse.Resources[0], r)
    66  	assert.Nil(t, err)
    67  	assert.Equal(t, r.Name, resourceName)
    68  	assert.Equal(t, discoveryResponse, dr)
    69  }
    70  
    71  func TestHeartbeatResponseGetDiscoveryResponse(t *testing.T) {
    72  	routes := []types.ResourceWithTtl{{Resource: &route.RouteConfiguration{Name: resourceName}}}
    73  	resp := cache.RawResponse{
    74  		Request:   &discovery.DiscoveryRequest{TypeUrl: resource.RouteType},
    75  		Version:   "v",
    76  		Resources: routes,
    77  		Heartbeat: true,
    78  	}
    79  
    80  	discoveryResponse, err := resp.GetDiscoveryResponse()
    81  	assert.Nil(t, err)
    82  	assert.Equal(t, discoveryResponse.VersionInfo, resp.Version)
    83  	assert.Equal(t, len(discoveryResponse.Resources), 1)
    84  	assert.True(t, ttl_helper.IsTTLResource(discoveryResponse.Resources[0]))
    85  
    86  	cachedResponse, err := resp.GetDiscoveryResponse()
    87  	assert.Nil(t, err)
    88  	assert.Same(t, discoveryResponse, cachedResponse)
    89  
    90  	r := &route.RouteConfiguration{}
    91  	err = ptypes.UnmarshalAny(discoveryResponse.Resources[0], r)
    92  	assert.Nil(t, err)
    93  	assert.Equal(t, r.Name, resourceName)
    94  }
    95  

View as plain text