59 lines
1.2 KiB
Go
59 lines
1.2 KiB
Go
package geo
|
|
|
|
import (
|
|
"net"
|
|
"testing"
|
|
)
|
|
|
|
func TestNewGeoLookup_NilPath(t *testing.T) {
|
|
gl, err := NewGeoLookup("")
|
|
if err != nil {
|
|
t.Fatalf("unexpected error: %v", err)
|
|
}
|
|
if gl == nil {
|
|
t.Fatal("expected non-nil GeoLookup")
|
|
}
|
|
if gl.IsEnabled() {
|
|
t.Error("expected IsEnabled() = false for empty path")
|
|
}
|
|
}
|
|
|
|
func TestGeoLookup_LookupWithNoDb(t *testing.T) {
|
|
gl, _ := NewGeoLookup("")
|
|
result := gl.Lookup(net.ParseIP("8.8.8.8"))
|
|
if result != nil {
|
|
t.Errorf("expected nil result when no db, got %+v", result)
|
|
}
|
|
}
|
|
|
|
func TestGeoLookup_LookupNilIP(t *testing.T) {
|
|
gl, _ := NewGeoLookup("")
|
|
result := gl.Lookup(nil)
|
|
if result != nil {
|
|
t.Errorf("expected nil result for nil IP, got %+v", result)
|
|
}
|
|
}
|
|
|
|
func TestNewGeoLookup_InvalidPath(t *testing.T) {
|
|
_, err := NewGeoLookup("/nonexistent/path/GeoLite2-City.mmdb")
|
|
if err == nil {
|
|
t.Error("expected error for nonexistent db file, got nil")
|
|
}
|
|
}
|
|
|
|
func TestGeoPoint_Fields(t *testing.T) {
|
|
gp := GeoPoint{
|
|
IP: "1.2.3.4",
|
|
Lat: 37.751,
|
|
Lon: -97.822,
|
|
Country: "United States",
|
|
CountryCode: "US",
|
|
Count: 42,
|
|
}
|
|
if gp.IP != "1.2.3.4" {
|
|
t.Errorf("IP = %q", gp.IP)
|
|
}
|
|
if gp.Count != 42 {
|
|
t.Errorf("Count = %d", gp.Count)
|
|
}
|
|
}
|