package connections import "testing" func TestSearchByName(t *testing.T) { svc := setupTestService(t) svc.CreateConnection(CreateConnectionInput{Name: "Asgard", Hostname: "192.168.1.4", Port: 22, Protocol: "ssh"}) svc.CreateConnection(CreateConnectionInput{Name: "Docker", Hostname: "155.254.29.221", Port: 22, Protocol: "ssh"}) results, err := svc.Search("asg") if err != nil { t.Fatalf("Search() error: %v", err) } if len(results) != 1 { t.Fatalf("len(results) = %d, want 1", len(results)) } if results[0].Name != "Asgard" { t.Errorf("Name = %q, want %q", results[0].Name, "Asgard") } } func TestSearchByHostname(t *testing.T) { svc := setupTestService(t) svc.CreateConnection(CreateConnectionInput{Name: "Asgard", Hostname: "192.168.1.4", Port: 22, Protocol: "ssh"}) results, _ := svc.Search("192.168") if len(results) != 1 { t.Errorf("len(results) = %d, want 1", len(results)) } } func TestSearchByTag(t *testing.T) { svc := setupTestService(t) svc.CreateConnection(CreateConnectionInput{Name: "ProdServer", Hostname: "10.0.0.1", Port: 22, Protocol: "ssh", Tags: []string{"Prod", "Linux"}}) svc.CreateConnection(CreateConnectionInput{Name: "DevServer", Hostname: "10.0.0.2", Port: 22, Protocol: "ssh", Tags: []string{"Dev", "Linux"}}) results, _ := svc.Search("Prod") if len(results) != 1 { t.Errorf("len(results) = %d, want 1", len(results)) } } func TestFilterByTag(t *testing.T) { svc := setupTestService(t) svc.CreateConnection(CreateConnectionInput{Name: "A", Hostname: "10.0.0.1", Port: 22, Protocol: "ssh", Tags: []string{"Prod"}}) svc.CreateConnection(CreateConnectionInput{Name: "B", Hostname: "10.0.0.2", Port: 22, Protocol: "ssh", Tags: []string{"Dev"}}) svc.CreateConnection(CreateConnectionInput{Name: "C", Hostname: "10.0.0.3", Port: 22, Protocol: "ssh", Tags: []string{"Prod", "Linux"}}) results, _ := svc.FilterByTag("Prod") if len(results) != 2 { t.Errorf("len(results) = %d, want 2", len(results)) } }