package router import ( "testing" "github.com/stretchr/testify/assert" ) func TestEncodeHostInfo(t *testing.T) { host := EncodeHost("aaabbbcccddd", "10.0.0.1", HostOpts{}) assert.Equal(t, "ip10-0-0-1-aaabbbcccddd", host) opts := HostOpts{EncodedPort: 8080} host = EncodeHost("aaabbbcccddd", "10.0.0.1", opts) assert.Equal(t, "ip10-0-0-1-aaabbbcccddd-8080", host) opts = HostOpts{TLD: "foo.bar"} host = EncodeHost("aaabbbcccddd", "10.0.0.1", opts) assert.Equal(t, "ip10-0-0-1-aaabbbcccddd.foo.bar", host) opts = HostOpts{TLD: "foo.bar", EncodedPort: 8080, Port: 443} host = EncodeHost("aaabbbcccddd", "10.0.0.1", opts) assert.Equal(t, "ip10-0-0-1-aaabbbcccddd-8080.foo.bar:443", host) } func TestDecodeHostInfo(t *testing.T) { info, err := DecodeHost("ip10-0-0-1-aaabbbcccddd") assert.Nil(t, err) assert.Equal(t, HostInfo{InstanceIP: "10.0.0.1", SessionId: "aaabbbcccddd"}, info) info, err = DecodeHost("ip10-0-0-1-aaabbbcccddd-8080") assert.Nil(t, err) assert.Equal(t, HostInfo{InstanceIP: "10.0.0.1", SessionId: "aaabbbcccddd", EncodedPort: 8080}, info) info, err = DecodeHost("ip10-0-0-1-aaabbbcccddd-8080.foo.bar") assert.Nil(t, err) assert.Equal(t, HostInfo{InstanceIP: "10.0.0.1", SessionId: "aaabbbcccddd", EncodedPort: 8080, TLD: "foo.bar"}, info) info, err = DecodeHost("ip10-0-0-1-aaabbbcccddd-8080.foo.bar:443") assert.Nil(t, err) assert.Equal(t, HostInfo{InstanceIP: "10.0.0.1", SessionId: "aaabbbcccddd", EncodedPort: 8080, TLD: "foo.bar", Port: 443}, info) _, err = DecodeHost("ip10-0-0-1") assert.NotNil(t, err) }