Files
threshold/internal/servers/controller/handlers/host_sets/service_test.go
T
c0c6a9b0b8 Handler project (#44)
* Renamed fakeRepo to mockRepo

* Changing around TODOs to capture current plans with the code.

* Remove the repo interface and use a real DB for tests.

* Fixed a few tests.

* Adding checks for properly formatted identifiers.

* Updating code to account for recent merges.  Relaxing some restrictions on what an id can look like.

* Added small comment explaining why RegisterGrpcGatewayer interface exists.

* Move project service up a call level.

Long term I think it would make sense to define these services even higher up the call stack, potentially at the initialization of the controller server, near where the DB is initialized.

* Making these fields align with those in the resources under hosts/...

* Hard code the service initialization in the handler registration code.

* Regenerate project related code proto code.

* Removing type field for project.

* Adds basic project handling in CLI/SDK (#47)

*    Adds SDK for creating and reading projects
*    Reorganizes a bit
*    Adds CLI for creating and reading projects
*    Fixes some some generation bugs
*    Adds redirect support for default org ID

* Fix protobuf import references being moved.

* Update client test to look for "orgs" and "projects" instead of "org" and "project"

* Update expected segments test

* Fix setAddr handling when default organization is in use

* Set client in target after create or read

Co-authored-by: Jim Lambert <jimlambrt@Jims-MBP-3.home>
Co-authored-by: Jim <jlambert@hashicorp.com>
Co-authored-by: Michael Gaffney <mgaffney@users.noreply.github.com>
Co-authored-by: Jeff Mitchell <jeffrey.mitchell@gmail.com>
2020-05-12 17:35:48 -07:00

50 lines
1.3 KiB
Go

package host_sets_test
import (
"context"
"testing"
"github.com/golang/protobuf/proto"
pbs "github.com/hashicorp/watchtower/internal/gen/controller/api/services"
"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 := &pbs.DeleteHostSetRequest{
OrgId: "1",
ProjectId: "2",
HostCatalogId: "3",
Id: "4",
}
s := host_sets.Service{}
cases := []struct {
name string
req *pbs.DeleteHostSetRequest
res *pbs.DeleteHostSetResponse
errCode codes.Code
}{
{
name: "Delete succeeds even for non existing resources",
req: &pbs.DeleteHostSetRequest{Id: "this doesn't exist"},
res: &pbs.DeleteHostSetResponse{},
errCode: codes.OK,
},
}
for _, tc := range cases {
t.Run(tc.name, func(t *testing.T) {
req := proto.Clone(toMerge).(*pbs.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)
}
})
}
}