| 123456789101112131415161718192021222324252627282930313233343536373839 | // +build jsonpackage loader_testimport (	"testing"	. "v2ray.com/core/common/loader"	"v2ray.com/core/testing/assert")type TestConfigA struct {	V int}type TestConfigB struct {	S string}func TestCreatorCache(t *testing.T) {	assert := assert.On(t)	cache := ConfigCreatorCache{}	creator1 := func() interface{} { return &TestConfigA{} }	creator2 := func() interface{} { return &TestConfigB{} }	cache.RegisterCreator("1", creator1)	loader := NewJSONConfigLoader(cache, "test", "")	rawA, err := loader.LoadWithID([]byte(`{"V": 2}`), "1")	assert.Error(err).IsNil()	instA := rawA.(*TestConfigA)	assert.Int(instA.V).Equals(2)	cache.RegisterCreator("2", creator2)	rawB, err := loader.LoadWithID([]byte(`{"S": "a"}`), "2")	assert.Error(err).IsNil()	instB := rawB.(*TestConfigB)	assert.String(instB.S).Equals("a")}
 |