dockerfiles/anylink/server/dbdata/policy_test.go

46 lines
1.3 KiB
Go

package dbdata
import (
"testing"
"github.com/stretchr/testify/assert"
)
func TestGetPolicy(t *testing.T) {
ast := assert.New(t)
preIpData()
defer closeIpdata()
// 添加 Policy
p1 := Policy{Username: "a1", ClientDns: []ValData{{Val: "114.114.114.114"}}, DsExcludeDomains: "baidu.com,163.com"}
err := SetPolicy(&p1)
ast.Nil(err)
p2 := Policy{Username: "a2", ClientDns: []ValData{{Val: "114.114.114.114"}}, DsExcludeDomains: "com.cn,qq.com"}
err = SetPolicy(&p2)
ast.Nil(err)
route := []ValData{{Val: "192.168.1.1/24"}}
p3 := Policy{Username: "a3", ClientDns: []ValData{{Val: "114.114.114.114"}}, RouteInclude: route, DsExcludeDomains: "com.cn,qq.com"}
err = SetPolicy(&p3)
ast.Nil(err)
// 判断 IpMask
ast.Equal(p3.RouteInclude[0].IpMask, "192.168.1.1/255.255.255.0")
route2 := []ValData{{Val: "192.168.2.1/24"}}
p4 := Policy{Username: "a4", ClientDns: []ValData{{Val: "114.114.114.114"}}, RouteExclude: route2, DsIncludeDomains: "com.cn,qq.com"}
err = SetPolicy(&p4)
ast.Nil(err)
// 判断 IpMask
ast.Equal(p4.RouteExclude[0].IpMask, "192.168.2.1/255.255.255.0")
// 判断所有数据
var userPolicy *Policy
pAll := []string{"a1", "a2", "a3", "a4"}
for _, v := range pAll {
userPolicy = GetPolicy(v)
ast.NotEqual(userPolicy.Id, 0, "user policy id is zero")
}
}