| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687 | package conf_testimport (	"encoding/json"	"testing"	"v2ray.com/core/common/net"	"v2ray.com/core/common/protocol"	"v2ray.com/core/proxy/socks"	"v2ray.com/core/testing/assert"	. "v2ray.com/core/tools/conf")func TestSocksInboundConfig(t *testing.T) {	assert := assert.On(t)	rawJson := `{    "auth": "password",    "accounts": [      {        "user": "my-username",        "pass": "my-password"      }    ],    "udp": false,    "ip": "127.0.0.1",    "timeout": 5  }`	config := new(SocksServerConfig)	err := json.Unmarshal([]byte(rawJson), &config)	assert.Error(err).IsNil()	message, err := config.Build()	assert.Error(err).IsNil()	iConfig, err := message.GetInstance()	assert.Error(err).IsNil()	socksConfig := iConfig.(*socks.ServerConfig)	assert.Bool(socksConfig.AuthType == socks.AuthType_PASSWORD).IsTrue()	assert.Int(len(socksConfig.Accounts)).Equals(1)	assert.String(socksConfig.Accounts["my-username"]).Equals("my-password")	assert.Bool(socksConfig.UdpEnabled).IsFalse()	assert.Address(socksConfig.Address.AsAddress()).Equals(net.LocalHostIP)	assert.Uint32(socksConfig.Timeout).Equals(5)}func TestSocksOutboundConfig(t *testing.T) {	assert := assert.On(t)	rawJson := `{    "servers": [{      "address": "127.0.0.1",      "port": 1234,      "users": [        {"user": "test user", "pass": "test pass", "email": "test@email.com"}      ]    }]  }`	config := new(SocksClientConfig)	err := json.Unmarshal([]byte(rawJson), &config)	assert.Error(err).IsNil()	message, err := config.Build()	assert.Error(err).IsNil()	iConfig, err := message.GetInstance()	assert.Error(err).IsNil()	socksConfig := iConfig.(*socks.ClientConfig)	assert.Int(len(socksConfig.Server)).Equals(1)	ss := protocol.NewServerSpecFromPB(*socksConfig.Server[0])	assert.Destination(ss.Destination()).EqualsString("tcp:127.0.0.1:1234")	user := ss.PickUser()	assert.String(user.Email).Equals("test@email.com")	account, err := user.GetTypedAccount()	assert.Error(err).IsNil()	socksAccount := account.(*socks.Account)	assert.String(socksAccount.Username).Equals("test user")	assert.String(socksAccount.Password).Equals("test pass")}
 |