policy_test.go 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. package dbdata
  2. import (
  3. "testing"
  4. "github.com/stretchr/testify/assert"
  5. )
  6. func TestGetPolicy(t *testing.T) {
  7. ast := assert.New(t)
  8. preIpData()
  9. defer closeIpdata()
  10. // 添加 Policy
  11. p1 := Policy{Username: "a1", ClientDns: []ValData{{Val: "114.114.114.114"}}, DsExcludeDomains: "baidu.com,163.com"}
  12. err := SetPolicy(&p1)
  13. ast.Nil(err)
  14. p2 := Policy{Username: "a2", ClientDns: []ValData{{Val: "114.114.114.114"}}, DsExcludeDomains: "com.cn,qq.com"}
  15. err = SetPolicy(&p2)
  16. ast.Nil(err)
  17. route := []ValData{{Val: "192.168.1.1/24"}}
  18. p3 := Policy{Username: "a3", ClientDns: []ValData{{Val: "114.114.114.114"}}, RouteInclude: route, DsExcludeDomains: "com.cn,qq.com"}
  19. err = SetPolicy(&p3)
  20. ast.Nil(err)
  21. // 判断 IpMask
  22. ast.Equal(p3.RouteInclude[0].IpMask, "192.168.1.1/255.255.255.0")
  23. route2 := []ValData{{Val: "192.168.2.1/24"}}
  24. p4 := Policy{Username: "a4", ClientDns: []ValData{{Val: "114.114.114.114"}}, RouteExclude: route2, DsIncludeDomains: "com.cn,qq.com"}
  25. err = SetPolicy(&p4)
  26. ast.Nil(err)
  27. // 判断 IpMask
  28. ast.Equal(p4.RouteExclude[0].IpMask, "192.168.2.1/255.255.255.0")
  29. // 判断所有数据
  30. var userPolicy *Policy
  31. pAll := []string{"a1", "a2", "a3", "a4"}
  32. for _, v := range pAll {
  33. userPolicy = GetPolicy(v)
  34. ast.NotEqual(userPolicy.Id, 0, "user policy id is zero")
  35. }
  36. }