geosite_test.go 699 B

12345678910111213141516171819202122232425262728293031323334
  1. package geosite_test
  2. import (
  3. "bytes"
  4. "testing"
  5. "github.com/sagernet/sing-box/common/geosite"
  6. "github.com/stretchr/testify/require"
  7. )
  8. func TestGeosite(t *testing.T) {
  9. t.Parallel()
  10. var buffer bytes.Buffer
  11. err := geosite.Write(&buffer, map[string][]geosite.Item{
  12. "test": {
  13. {
  14. Type: geosite.RuleTypeDomain,
  15. Value: "example.org",
  16. },
  17. },
  18. })
  19. require.NoError(t, err)
  20. reader, codes, err := geosite.NewReader(bytes.NewReader(buffer.Bytes()))
  21. require.NoError(t, err)
  22. require.Equal(t, []string{"test"}, codes)
  23. items, err := reader.Read("test")
  24. require.NoError(t, err)
  25. require.Equal(t, []geosite.Item{{
  26. Type: geosite.RuleTypeDomain,
  27. Value: "example.org",
  28. }}, items)
  29. }