package ingest import "testing" func TestResolveResourceByIPFirst(t *testing.T) { e := &Engine{ resourceByIP: map[string]resourceRef{ "10.0.0.10": {ResourceType: "server", ResourceID: "srv-10", ResourceName: "s10"}, }, resourceByHN: map[string]resourceRef{ "host-a": {ResourceType: "device", ResourceID: "dev-a", ResourceName: "a"}, }, } ref, method := e.resolveResource("10.0.0.10", "host-a") if method != "ip" { t.Fatalf("method=%s", method) } if ref.ResourceID != "srv-10" { t.Fatalf("resource id=%s", ref.ResourceID) } } func TestResolveResourceByHostname(t *testing.T) { e := &Engine{ resourceByIP: map[string]resourceRef{}, resourceByHN: map[string]resourceRef{ "host-a": {ResourceType: "device", ResourceID: "dev-a", ResourceName: "a"}, }, } ref, method := e.resolveResource("10.0.0.20", "HOST-A") if method != "hostname" { t.Fatalf("method=%s", method) } if ref.ResourceID != "dev-a" { t.Fatalf("resource id=%s", ref.ResourceID) } } func TestResolveResourceNoMatch(t *testing.T) { e := &Engine{ resourceByIP: map[string]resourceRef{}, resourceByHN: map[string]resourceRef{}, } _, method := e.resolveResource("10.0.0.20", "host-b") if method != "none" { t.Fatalf("method=%s", method) } }