|
@@ -20,3 +20,67 @@ func TestGetAuthKey(t *testing.T) {
|
|
|
t.Log(key)
|
|
|
assert.Equal("6df41a43725f0c770fd56379e12acf8c", key)
|
|
|
}
|
|
|
+
|
|
|
+func TestGetPortRanges(t *testing.T) {
|
|
|
+ assert := assert.New(t)
|
|
|
+
|
|
|
+ rangesStr := "2000-3000,3001,4000-50000"
|
|
|
+ expect := [][2]int64{
|
|
|
+ [2]int64{2000, 3000},
|
|
|
+ [2]int64{3001, 3001},
|
|
|
+ [2]int64{4000, 50000},
|
|
|
+ }
|
|
|
+ actual, err := GetPortRanges(rangesStr)
|
|
|
+ assert.Nil(err)
|
|
|
+ t.Log(actual)
|
|
|
+ assert.Equal(expect, actual)
|
|
|
+}
|
|
|
+
|
|
|
+func TestContainsPort(t *testing.T) {
|
|
|
+ assert := assert.New(t)
|
|
|
+
|
|
|
+ rangesStr := "2000-3000,3001,4000-50000"
|
|
|
+ portRanges, err := GetPortRanges(rangesStr)
|
|
|
+ assert.Nil(err)
|
|
|
+
|
|
|
+ type Case struct {
|
|
|
+ Port int64
|
|
|
+ Answer bool
|
|
|
+ }
|
|
|
+ cases := []Case{
|
|
|
+ Case{
|
|
|
+ Port: 3001,
|
|
|
+ Answer: true,
|
|
|
+ },
|
|
|
+ Case{
|
|
|
+ Port: 3002,
|
|
|
+ Answer: false,
|
|
|
+ },
|
|
|
+ Case{
|
|
|
+ Port: 44444,
|
|
|
+ Answer: true,
|
|
|
+ },
|
|
|
+ }
|
|
|
+ for _, elem := range cases {
|
|
|
+ ok := ContainsPort(portRanges, elem.Port)
|
|
|
+ assert.Equal(elem.Answer, ok)
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
+func TestPortRangesCut(t *testing.T) {
|
|
|
+ assert := assert.New(t)
|
|
|
+
|
|
|
+ rangesStr := "2000-3000,3001,4000-50000"
|
|
|
+ portRanges, err := GetPortRanges(rangesStr)
|
|
|
+ assert.Nil(err)
|
|
|
+
|
|
|
+ expect := [][2]int64{
|
|
|
+ [2]int64{2000, 3000},
|
|
|
+ [2]int64{3001, 3001},
|
|
|
+ [2]int64{4000, 44443},
|
|
|
+ [2]int64{44445, 50000},
|
|
|
+ }
|
|
|
+ actual := PortRangesCut(portRanges, 44444)
|
|
|
+ t.Log(actual)
|
|
|
+ assert.Equal(expect, actual)
|
|
|
+}
|