mirror of
https://github.com/MetaCubeX/mihomo.git
synced 2025-01-03 16:13:30 +08:00
93 lines
2.1 KiB
Go
93 lines
2.1 KiB
Go
package outbound
|
|
|
|
import "testing"
|
|
|
|
func TestNewMieru(t *testing.T) {
|
|
testCases := []struct {
|
|
option MieruOption
|
|
wantBaseAddr string
|
|
}{
|
|
{
|
|
option: MieruOption{
|
|
Name: "test",
|
|
Server: "1.2.3.4",
|
|
Port: 10000,
|
|
Transport: "TCP",
|
|
UserName: "test",
|
|
Password: "test",
|
|
},
|
|
wantBaseAddr: "1.2.3.4:10000",
|
|
},
|
|
{
|
|
option: MieruOption{
|
|
Name: "test",
|
|
Server: "2001:db8::1",
|
|
PortRange: "10001-10002",
|
|
Transport: "TCP",
|
|
UserName: "test",
|
|
Password: "test",
|
|
},
|
|
wantBaseAddr: "[2001:db8::1]:10001",
|
|
},
|
|
{
|
|
option: MieruOption{
|
|
Name: "test",
|
|
Server: "example.com",
|
|
Port: 10003,
|
|
Transport: "TCP",
|
|
UserName: "test",
|
|
Password: "test",
|
|
},
|
|
wantBaseAddr: "example.com:10003",
|
|
},
|
|
}
|
|
|
|
for _, testCase := range testCases {
|
|
mieru, err := NewMieru(testCase.option)
|
|
if err != nil {
|
|
t.Error(err)
|
|
}
|
|
if mieru.addr != testCase.wantBaseAddr {
|
|
t.Errorf("got addr %q, want %q", mieru.addr, testCase.wantBaseAddr)
|
|
}
|
|
}
|
|
}
|
|
|
|
func TestBeginAndEndPortFromPortRange(t *testing.T) {
|
|
testCases := []struct {
|
|
input string
|
|
begin int
|
|
end int
|
|
hasErr bool
|
|
}{
|
|
{"1-10", 1, 10, false},
|
|
{"1000-2000", 1000, 2000, false},
|
|
{"65535-65535", 65535, 65535, false},
|
|
{"1", 0, 0, true},
|
|
{"1-", 0, 0, true},
|
|
{"-10", 0, 0, true},
|
|
{"a-b", 0, 0, true},
|
|
{"1-b", 0, 0, true},
|
|
{"a-10", 0, 0, true},
|
|
}
|
|
|
|
for _, testCase := range testCases {
|
|
begin, end, err := beginAndEndPortFromPortRange(testCase.input)
|
|
if testCase.hasErr {
|
|
if err == nil {
|
|
t.Errorf("beginAndEndPortFromPortRange(%s) should return an error", testCase.input)
|
|
}
|
|
} else {
|
|
if err != nil {
|
|
t.Errorf("beginAndEndPortFromPortRange(%s) should not return an error, but got %v", testCase.input, err)
|
|
}
|
|
if begin != testCase.begin {
|
|
t.Errorf("beginAndEndPortFromPortRange(%s) begin port mismatch, got %d, want %d", testCase.input, begin, testCase.begin)
|
|
}
|
|
if end != testCase.end {
|
|
t.Errorf("beginAndEndPortFromPortRange(%s) end port mismatch, got %d, want %d", testCase.input, end, testCase.end)
|
|
}
|
|
}
|
|
}
|
|
}
|