github.com/tetratelabs/proxy-wasm-go-sdk@v0.23.1-0.20240517021853-021aa9cf78e8/properties/upstream_test.go (about)

     1  package properties
     2  
     3  import (
     4  	"testing"
     5  
     6  	"github.com/stretchr/testify/require"
     7  
     8  	"github.com/tetratelabs/proxy-wasm-go-sdk/proxywasm/proxytest"
     9  )
    10  
    11  func TestGetUpstreamAddress(t *testing.T) {
    12  	opt := proxytest.NewEmulatorOption().WithProperty(upstreamAddress, []byte("127.0.0.1"))
    13  	_, reset := proxytest.NewHostEmulator(opt)
    14  	defer reset()
    15  
    16  	result, err := GetUpstreamAddress()
    17  	require.NoError(t, err)
    18  	require.Equal(t, "127.0.0.1", result)
    19  }
    20  
    21  func TestGetUpstreamPort(t *testing.T) {
    22  	opt := proxytest.NewEmulatorOption().WithProperty(upstreamPort, serializeUint64(8080))
    23  	_, reset := proxytest.NewHostEmulator(opt)
    24  	defer reset()
    25  
    26  	result, err := GetUpstreamPort()
    27  	require.NoError(t, err)
    28  	require.Equal(t, uint64(8080), result)
    29  }
    30  
    31  func TestGetUpstreamTlsVersion(t *testing.T) {
    32  	opt := proxytest.NewEmulatorOption().WithProperty(upstreamTlsVersion, []byte("TLSv1.3"))
    33  	_, reset := proxytest.NewHostEmulator(opt)
    34  	defer reset()
    35  
    36  	result, err := GetUpstreamTlsVersion()
    37  	require.NoError(t, err)
    38  	require.Equal(t, "TLSv1.3", result)
    39  }
    40  
    41  func TestGetUpstreamSubjectLocalCertificate(t *testing.T) {
    42  	opt := proxytest.NewEmulatorOption().WithProperty(upstreamSubjectLocalCertificate,
    43  		[]byte("CN=example.com,OU=IT,O=example,L=San Francisco,ST=California,C=US"))
    44  	_, reset := proxytest.NewHostEmulator(opt)
    45  	defer reset()
    46  
    47  	result, err := GetUpstreamSubjectLocalCertificate()
    48  	require.NoError(t, err)
    49  	require.Equal(t, "CN=example.com,OU=IT,O=example,L=San Francisco,ST=California,C=US", result)
    50  }
    51  
    52  func TestGetUpstreamSubjectPeerCertificate(t *testing.T) {
    53  	opt := proxytest.NewEmulatorOption().WithProperty(upstreamSubjectPeerCertificate,
    54  		[]byte("CN=example.com,OU=IT,O=example,L=San Francisco,ST=California,C=US"))
    55  	_, reset := proxytest.NewHostEmulator(opt)
    56  	defer reset()
    57  
    58  	result, err := GetUpstreamSubjectPeerCertificate()
    59  	require.NoError(t, err)
    60  	require.Equal(t, "CN=example.com,OU=IT,O=example,L=San Francisco,ST=California,C=US", result)
    61  }
    62  
    63  func TestGetUpstreamDnsSanLocalCertificate(t *testing.T) {
    64  	opt := proxytest.NewEmulatorOption().WithProperty(upstreamDnsSanLocalCertificate, []byte("example.com"))
    65  	_, reset := proxytest.NewHostEmulator(opt)
    66  	defer reset()
    67  
    68  	result, err := GetUpstreamDnsSanLocalCertificate()
    69  	require.NoError(t, err)
    70  	require.Equal(t, "example.com", result)
    71  }
    72  
    73  func TestGetUpstreamDnsSanPeerCertificate(t *testing.T) {
    74  	opt := proxytest.NewEmulatorOption().WithProperty(upstreamDnsSanPeerCertificate, []byte("example.com"))
    75  	_, reset := proxytest.NewHostEmulator(opt)
    76  	defer reset()
    77  
    78  	result, err := GetUpstreamDnsSanPeerCertificate()
    79  	require.NoError(t, err)
    80  	require.Equal(t, "example.com", result)
    81  }
    82  
    83  func TestGetUpstreamUriSanLocalCertificate(t *testing.T) {
    84  	opt := proxytest.NewEmulatorOption().WithProperty(upstreamUriSanLocalCertificate, []byte("example.com"))
    85  	_, reset := proxytest.NewHostEmulator(opt)
    86  	defer reset()
    87  
    88  	result, err := GetUpstreamUriSanLocalCertificate()
    89  	require.NoError(t, err)
    90  	require.Equal(t, "example.com", result)
    91  }
    92  
    93  func TestGetUpstreamUriSanPeerCertificate(t *testing.T) {
    94  	opt := proxytest.NewEmulatorOption().WithProperty(upstreamUriSanPeerCertificate, []byte("example.com"))
    95  	_, reset := proxytest.NewHostEmulator(opt)
    96  	defer reset()
    97  
    98  	result, err := GetUpstreamUriSanPeerCertificate()
    99  	require.NoError(t, err)
   100  	require.Equal(t, "example.com", result)
   101  }
   102  
   103  func TestGetUpstreamSha256PeerCertificateDigest(t *testing.T) {
   104  	opt := proxytest.NewEmulatorOption().WithProperty(upstreamSha256PeerCertificateDigest,
   105  		[]byte("b714f3d6f83efc2fddf80b8feda3e3b21b3e27b5"))
   106  	_, reset := proxytest.NewHostEmulator(opt)
   107  	defer reset()
   108  
   109  	result, err := GetUpstreamSha256PeerCertificateDigest()
   110  	require.NoError(t, err)
   111  	require.Equal(t, "b714f3d6f83efc2fddf80b8feda3e3b21b3e27b5", result)
   112  }
   113  
   114  func TestGetUpstreamLocalAddress(t *testing.T) {
   115  	opt := proxytest.NewEmulatorOption().WithProperty(upstreamLocalAddress, []byte("192.168.1.1"))
   116  	_, reset := proxytest.NewHostEmulator(opt)
   117  	defer reset()
   118  
   119  	result, err := GetUpstreamLocalAddress()
   120  	require.NoError(t, err)
   121  	require.Equal(t, "192.168.1.1", result)
   122  }
   123  
   124  func TestGetUpstreamTransportFailureReason(t *testing.T) {
   125  	opt := proxytest.NewEmulatorOption().WithProperty(upstreamTransportFailureReason, []byte("connection closed"))
   126  	_, reset := proxytest.NewHostEmulator(opt)
   127  	defer reset()
   128  
   129  	result, err := GetUpstreamTransportFailureReason()
   130  	require.NoError(t, err)
   131  	require.Equal(t, "connection closed", result)
   132  }