package conf_test import ( "encoding/json" "testing" "v2ray.com/core/proxy/shadowsocks" "v2ray.com/core/testing/assert" . "v2ray.com/core/tools/conf" ) func TestShadowsocksServerConfigParsing(t *testing.T) { assert := assert.On(t) rawJson := `{ "method": "aes-128-cfb", "password": "v2ray-password" }` rawConfig := new(ShadowsocksServerConfig) err := json.Unmarshal([]byte(rawJson), rawConfig) assert.Error(err).IsNil() ts, err := rawConfig.Build() assert.Error(err).IsNil() iConfig, err := ts.GetInstance() assert.Error(err).IsNil() config := iConfig.(*shadowsocks.ServerConfig) rawAccount, err := config.User.GetTypedAccount() assert.Error(err).IsNil() account, ok := rawAccount.(*shadowsocks.ShadowsocksAccount) assert.Bool(ok).IsTrue() assert.Int(account.Cipher.KeySize()).Equals(16) assert.Bytes(account.Key).Equals([]byte{160, 224, 26, 2, 22, 110, 9, 80, 65, 52, 80, 20, 38, 243, 224, 241}) }