You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
boundary/internal/servers/controller/handlers/host_sets/service_test.go

50 lines
1.3 KiB

package host_sets_test
import (
"context"
"testing"
"github.com/golang/protobuf/proto"
"github.com/hashicorp/watchtower/internal/gen/controller/api"
"github.com/hashicorp/watchtower/internal/servers/controller/handlers/host_sets"
"google.golang.org/grpc/codes"
"google.golang.org/grpc/status"
)
func TestDelete(t *testing.T) {
toMerge := &api.DeleteHostSetRequest{
OrgId: "1",
ProjectId: "2",
HostCatalogId: "3",
Id: "4",
}
s := host_sets.Service{}
cases := []struct {
name string
req *api.DeleteHostSetRequest
res *api.DeleteHostSetResponse
errCode codes.Code
}{
{
name: "Delete succeeds even for non existing resources",
req: &api.DeleteHostSetRequest{Id: "this doesn't exist"},
res: &api.DeleteHostSetResponse{},
errCode: codes.OK,
},
}
for _, tc := range cases {
t.Run(tc.name, func(t *testing.T) {
req := proto.Clone(toMerge).(*api.DeleteHostSetRequest)
proto.Merge(req, tc.req)
got, gErr := s.DeleteHostSet(context.Background(), req)
if status.Code(gErr) != tc.errCode {
t.Errorf("DeleteHostSet(%+v) got error %v, wanted %v", req, gErr, tc.errCode)
}
if !proto.Equal(got, tc.res) {
t.Errorf("DeleteHostSet(%q) got response %q, wanted %q", req, got, tc.res)
}
})
}
}