| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152 |
- package xray
- import (
- "testing"
- "github.com/mhsanaei/3x-ui/v3/util/json_util"
- )
- func makeInbound() InboundConfig {
- return InboundConfig{
- Listen: json_util.RawMessage(`"0.0.0.0"`),
- Port: 1234,
- Protocol: "vless",
- Settings: json_util.RawMessage(`{"clients":[{"id":"abc"}]}`),
- StreamSettings: json_util.RawMessage(`{"network":"tcp"}`),
- Tag: "inbound-1234",
- Sniffing: json_util.RawMessage(`{"enabled":false}`),
- }
- }
- func TestInboundConfigEquals_Identical(t *testing.T) {
- a := makeInbound()
- b := makeInbound()
- if !a.Equals(&b) {
- t.Fatal("two identical inbounds should be Equals")
- }
- }
- func TestInboundConfigEquals_MutationsBreakEquality(t *testing.T) {
- cases := []struct {
- name string
- mutator func(c *InboundConfig)
- }{
- {"Listen", func(c *InboundConfig) { c.Listen = json_util.RawMessage(`"127.0.0.1"`) }},
- {"Port", func(c *InboundConfig) { c.Port = 9999 }},
- {"Protocol", func(c *InboundConfig) { c.Protocol = "vmess" }},
- {"Settings", func(c *InboundConfig) { c.Settings = json_util.RawMessage(`{"clients":[]}`) }},
- {"StreamSettings", func(c *InboundConfig) { c.StreamSettings = json_util.RawMessage(`{"network":"ws"}`) }},
- {"Tag", func(c *InboundConfig) { c.Tag = "inbound-other" }},
- {"Sniffing", func(c *InboundConfig) { c.Sniffing = json_util.RawMessage(`{"enabled":true}`) }},
- }
- for _, tc := range cases {
- t.Run(tc.name, func(t *testing.T) {
- a := makeInbound()
- b := makeInbound()
- tc.mutator(&b)
- if a.Equals(&b) {
- t.Fatalf("mutating %s should break Equals", tc.name)
- }
- })
- }
- }
|