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 }