Skip to content

Commit

Permalink
Add the testing for delete storageProvider
Browse files Browse the repository at this point in the history
  • Loading branch information
hwchiu committed Jun 23, 2018
1 parent b312705 commit 1539247
Show file tree
Hide file tree
Showing 3 changed files with 79 additions and 0 deletions.
23 changes: 23 additions & 0 deletions src/server/handler_storage_provider.go
Original file line number Diff line number Diff line change
Expand Up @@ -45,3 +45,26 @@ func CreateStorageProvider(ctx *web.Context) {
Message: "Create success",
})
}

func DeleteStorageProvider(ctx *web.Context) {
as, req, resp := ctx.ServiceProvider, ctx.Request, ctx.Response

id := req.PathParameter("id")

session := as.Mongo.NewSession()
defer session.Close()

if err := session.Remove(entity.StorageProviderCollectionName, "_id", bson.ObjectIdHex(id)); err != nil {
if mgo.ErrNotFound == err {
response.NotFound(req.Request, resp.ResponseWriter, err)
} else {
response.InternalServerError(req.Request, resp.ResponseWriter, err)
}
return
}

resp.WriteEntity(ActionResponse{
Error: false,
Message: "Delete success",
})
}
55 changes: 55 additions & 0 deletions src/server/handler_storage_provider_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@ import (
"github.com/linkernetworks/vortex/src/entity"
"github.com/linkernetworks/vortex/src/serviceprovider"
"github.com/stretchr/testify/assert"
"gopkg.in/mgo.v2/bson"
)

func TestCreateStorageProvider(t *testing.T) {
Expand Down Expand Up @@ -47,6 +48,7 @@ func TestCreateStorageProvider(t *testing.T) {
service := newStorageProviderService(sp)
wc.Add(service)
wc.Dispatch(httpWriter, httpRequest)
defer session.Remove(entity.StorageProviderCollectionName, "displayName", tName)
assertResponseCode(t, http.StatusOK, httpWriter)
//Empty data
//We use the new write but empty input
Expand All @@ -61,5 +63,58 @@ func TestCreateStorageProvider(t *testing.T) {
httpWriter = httptest.NewRecorder()
wc.Dispatch(httpWriter, httpRequest)
assertResponseCode(t, http.StatusConflict, httpWriter)
}

func TestDeleteStorageProvider(t *testing.T) {
cf := config.MustRead("../../config/testing.json")
sp := serviceprovider.New(cf)

//Testing parameter
tName := namesgenerator.GetRandomName(0)
tType := "nfs"
tIP := "1.2.3.4"
tPath := "/exports"
storageProvider := entity.StorageProvider{
ID: bson.NewObjectId(),
Type: tType,
DisplayName: tName,
NFSStorageProvider: entity.NFSStorageProvider{
IP: tIP,
PATH: tPath,
},
}

session := sp.Mongo.NewSession()
defer session.Close()
session.C(entity.StorageProviderCollectionName).Insert(storageProvider)
defer session.Remove(entity.StorageProviderCollectionName, "displayName", tName)

bodyBytes, err := json.MarshalIndent(storageProvider, "", " ")
assert.NoError(t, err)

//Create again and it should fail since the name exist
bodyReader := strings.NewReader(string(bodyBytes))
httpRequest, err := http.NewRequest("DELETE", "http://localhost:7890/v1/storageprovider/"+storageProvider.ID.Hex(), bodyReader)
assert.NoError(t, err)
httpRequest.Header.Add("Content-Type", "application/json")
httpWriter := httptest.NewRecorder()
wc := restful.NewContainer()
service := newStorageProviderService(sp)
wc.Add(service)
wc.Dispatch(httpWriter, httpRequest)
assertResponseCode(t, http.StatusOK, httpWriter)
}

func TestInValidDeleteStorageProvider(t *testing.T) {
cf := config.MustRead("../../config/testing.json")
sp := serviceprovider.New(cf)

httpRequest, err := http.NewRequest("DELETE", "http://localhost:7890/v1/storageprovider/"+bson.NewObjectId().Hex(), nil)
assert.NoError(t, err)
httpWriter := httptest.NewRecorder()
wc := restful.NewContainer()
service := newStorageProviderService(sp)
wc.Add(service)
wc.Dispatch(httpWriter, httpRequest)
assertResponseCode(t, http.StatusNotFound, httpWriter)
}
1 change: 1 addition & 0 deletions src/server/route.go
Original file line number Diff line number Diff line change
Expand Up @@ -44,5 +44,6 @@ func newStorageProviderService(sp *serviceprovider.Container) *restful.WebServic
webService := new(restful.WebService)
webService.Path("/v1/storageprovider").Consumes(restful.MIME_JSON, restful.MIME_JSON).Produces(restful.MIME_JSON, restful.MIME_JSON)
webService.Route(webService.POST("/").To(handler.RESTfulServiceHandler(sp, CreateStorageProvider)))
webService.Route(webService.DELETE("/{id}").To(handler.RESTfulServiceHandler(sp, DeleteStorageProvider)))
return webService
}

0 comments on commit 1539247

Please sign in to comment.