Skip to content

Commit

Permalink
Merge e0b101f into a53133c
Browse files Browse the repository at this point in the history
  • Loading branch information
kolsean committed Jan 11, 2019
2 parents a53133c + e0b101f commit edae1bf
Show file tree
Hide file tree
Showing 3 changed files with 87 additions and 0 deletions.
7 changes: 7 additions & 0 deletions selvpcclient/resell/v2/crossregionsubnets/doc.go
Original file line number Diff line number Diff line change
Expand Up @@ -45,5 +45,12 @@ Example of creating cross-region subnets
for _, newCrossRegionSubnet := range newCrossRegionSubnets {
fmt.Printf("%v\n", newCrossRegionSubnet)
}
Example of deleting a single cross-region subnet
_, err = crossregionsubnets.Delete(ctx, resellClient, crossRegionSubnetID)
if err != nil {
log.Fatal(err)
}
*/
package crossregionsubnets
13 changes: 13 additions & 0 deletions selvpcclient/resell/v2/crossregionsubnets/requests.go
Original file line number Diff line number Diff line change
Expand Up @@ -95,3 +95,16 @@ func Create(ctx context.Context, client *selvpcclient.ServiceClient, projectID s

return result.CrossRegionSubnets, responseResult, nil
}

// Delete deletes a single cross-region subnet by its id.
func Delete(ctx context.Context, client *selvpcclient.ServiceClient, id string) (*selvpcclient.ResponseResult, error) {
url := strings.Join([]string{client.Endpoint, resourceURL, id}, "/")
responseResult, err := client.DoRequest(ctx, http.MethodDelete, url, nil)
if err != nil {
return nil, err
}
if responseResult.Err != nil {
err = responseResult.Err
}
return responseResult, err
}
67 changes: 67 additions & 0 deletions selvpcclient/resell/v2/crossregionsubnets/testing/requests_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -347,3 +347,70 @@ func TestCreateCrossRegionSubnetsUnmarshalError(t *testing.T) {
t.Fatal("expected error from the Create method")
}
}

func TestDeleteCrossRegionSubnet(t *testing.T) {
endpointCalled := false

testEnv := testutils.SetupTestEnv()
defer testEnv.TearDownTestEnv()
testEnv.NewTestResellV2Client()
testutils.HandleReqWithoutBody(t, &testutils.HandleReqOpts{
Mux: testEnv.Mux,
URL: "/resell/v2/cross_region_subnets/12",
Method: http.MethodDelete,
Status: http.StatusOK,
CallFlag: &endpointCalled,
})

ctx := context.Background()
_, err := crossregionsubnets.Delete(ctx, testEnv.Client, "12")
if err != nil {
t.Fatal(err)
}

if !endpointCalled {
t.Fatal("endpoint wasn't called")
}
}

func TestDeleteCrossRegionSubnetHTTPError(t *testing.T) {
endpointCalled := false

testEnv := testutils.SetupTestEnv()
defer testEnv.TearDownTestEnv()
testEnv.NewTestResellV2Client()
testutils.HandleReqWithoutBody(t, &testutils.HandleReqOpts{
Mux: testEnv.Mux,
URL: "/resell/v2/cross_region_subnets/12",
Method: http.MethodDelete,
Status: http.StatusBadGateway,
CallFlag: &endpointCalled,
})

ctx := context.Background()
httpResponse, err := crossregionsubnets.Delete(ctx, testEnv.Client, "12")

if !endpointCalled {
t.Fatal("endpoint wasn't called")
}
if err == nil {
t.Fatal("expected error from the Delete method")
}
if httpResponse.StatusCode != http.StatusBadGateway {
t.Fatalf("expected %d status in the HTTP response, but got %d", http.StatusBadRequest, httpResponse.StatusCode)
}
}

func TestDeleteCrossRegionSubnetTimeoutError(t *testing.T) {
testEnv := testutils.SetupTestEnv()
testEnv.Server.Close()
defer testEnv.TearDownTestEnv()
testEnv.NewTestResellV2Client()

ctx := context.Background()
_, err := crossregionsubnets.Delete(ctx, testEnv.Client, "12")

if err == nil {
t.Fatal("expected error from the Delete method")
}
}

0 comments on commit edae1bf

Please sign in to comment.