Skip to content

Commit 85238a2

Browse files
authored
Merge pull request #969 from Shruthi-1MN/api-server-ut
API server test cases for fileshare
2 parents 089dca6 + c2f7081 commit 85238a2

2 files changed

Lines changed: 158 additions & 0 deletions

File tree

pkg/api/util/db_test.go

Lines changed: 156 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -682,3 +682,159 @@ func TestDeleteFileShareAclDBEntry(t *testing.T) {
682682
}
683683
})
684684
}
685+
686+
func TestCreateFileShareAclDBEntry(t *testing.T) {
687+
var in = &model.FileShareAclSpec{
688+
BaseModel: &model.BaseModel{
689+
Id: "6ad25d59-a160-45b2-8920-211be282e2df",
690+
},
691+
Description: "This is a sample Acl for testing",
692+
ProfileId: "1106b972-66ef-11e7-b172-db03f3689c9c",
693+
Type: "ip",
694+
AccessCapability: []string{"Read", "Write"},
695+
AccessTo: "10.32.109.15",
696+
FileShareId: "d2975ebe-d82c-430f-b28e-f373746a71ca",
697+
}
698+
699+
t.Run("Everything should work well", func(t *testing.T) {
700+
mockClient := new(dbtest.Client)
701+
mockClient.On("GetFileShare", context.NewAdminContext(), in.FileShareId).Return(&SampleFileShares[0], nil)
702+
mockClient.On("CreateFileShareAcl", context.NewAdminContext(), in).Return(&SampleFileSharesAcl[2], nil)
703+
db.C = mockClient
704+
705+
var expected = &SampleFileSharesAcl[2]
706+
result, err := CreateFileShareAclDBEntry(context.NewAdminContext(), in)
707+
if err != nil {
708+
t.Errorf("failed to create fileshare err is %v\n", err)
709+
}
710+
assertTestResult(t, result, expected)
711+
})
712+
713+
t.Run("If profile id is empty", func(t *testing.T) {
714+
in.ProfileId = ""
715+
mockClient := new(dbtest.Client)
716+
mockClient.On("GetFileShare", context.NewAdminContext(), in.FileShareId).Return(&SampleFileShares[0], nil)
717+
mockClient.On("CreateFileShareAcl", context.NewAdminContext(), in).Return(&SampleFileSharesAcl[2], nil)
718+
db.C = mockClient
719+
720+
_, err := CreateFileShareAclDBEntry(context.NewAdminContext(), in)
721+
expectedError := "profile id can not be empty when creating fileshare acl in db!"
722+
assertTestResult(t, err.Error(), expectedError)
723+
})
724+
725+
t.Run("Invalid Access Type", func(t *testing.T) {
726+
in.ProfileId, in.Type = "d2975ebe-d82c-430f-b28e-f373746a71ca", "system"
727+
mockClient := new(dbtest.Client)
728+
mockClient.On("GetFileShare", context.NewAdminContext(), in.FileShareId).Return(&SampleFileShares[0], nil)
729+
mockClient.On("CreateFileShareAcl", context.NewAdminContext(), in).Return(&SampleFileSharesAcl[2], nil)
730+
db.C = mockClient
731+
732+
_, err := CreateFileShareAclDBEntry(context.NewAdminContext(), in)
733+
expectedError := fmt.Sprintf("invalid fileshare type: %v. Supported type is: ip", in.Type)
734+
assertTestResult(t, err.Error(), expectedError)
735+
})
736+
737+
t.Run("Empty Access To", func(t *testing.T) {
738+
in.ProfileId, in.Type, in.AccessTo = "d2975ebe-d82c-430f-b28e-f373746a71ca", "ip", ""
739+
mockClient := new(dbtest.Client)
740+
mockClient.On("GetFileShare", context.NewAdminContext(), in.FileShareId).Return(&SampleFileShares[0], nil)
741+
mockClient.On("CreateFileShareAcl", context.NewAdminContext(), in).Return(&SampleFileSharesAcl[2], nil)
742+
db.C = mockClient
743+
744+
_, err := CreateFileShareAclDBEntry(context.NewAdminContext(), in)
745+
expectedError := "accessTo is empty. Please give valid ip segment"
746+
assertTestResult(t, err.Error(), expectedError)
747+
})
748+
749+
t.Run("Invalid Ip Segment", func(t *testing.T) {
750+
in.ProfileId, in.Type, in.AccessTo = "d2975ebe-d82c-430f-b28e-f373746a71ca", "ip", "201.100.101.8/9.9"
751+
mockClient := new(dbtest.Client)
752+
mockClient.On("GetFileShare", context.NewAdminContext(), in.FileShareId).Return(&SampleFileShares[0], nil)
753+
mockClient.On("CreateFileShareAcl", context.NewAdminContext(), in).Return(&SampleFileSharesAcl[2], nil)
754+
db.C = mockClient
755+
756+
_, err := CreateFileShareAclDBEntry(context.NewAdminContext(), in)
757+
expectedError := fmt.Sprintf("invalid IP segment %v", in.AccessTo)
758+
assertTestResult(t, err.Error(), expectedError)
759+
})
760+
761+
t.Run("Invalid Ip", func(t *testing.T) {
762+
in.ProfileId, in.Type, in.AccessTo = "d2975ebe-d82c-430f-b28e-f373746a71ca", "ip", "201.100.101"
763+
mockClient := new(dbtest.Client)
764+
mockClient.On("GetFileShare", context.NewAdminContext(), in.FileShareId).Return(&SampleFileShares[0], nil)
765+
mockClient.On("CreateFileShareAcl", context.NewAdminContext(), in).Return(&SampleFileSharesAcl[2], nil)
766+
db.C = mockClient
767+
768+
_, err := CreateFileShareAclDBEntry(context.NewAdminContext(), in)
769+
expectedError := fmt.Sprintf("%v is not a valid ip. Please give the proper ip", in.AccessTo)
770+
assertTestResult(t, err.Error(), expectedError)
771+
})
772+
773+
t.Run("Empty accesscapability", func(t *testing.T) {
774+
in.ProfileId, in.Type, in.AccessTo, in.AccessCapability = "d2975ebe-d82c-430f-b28e-f373746a71ca", "ip", "201.100.101.9", []string{}
775+
mockClient := new(dbtest.Client)
776+
mockClient.On("GetFileShare", context.NewAdminContext(), in.FileShareId).Return(&SampleFileShares[0], nil)
777+
mockClient.On("CreateFileShareAcl", context.NewAdminContext(), in).Return(&SampleFileSharesAcl[2], nil)
778+
db.C = mockClient
779+
780+
_, err := CreateFileShareAclDBEntry(context.NewAdminContext(), in)
781+
expectedError := fmt.Sprintf("empty fileshare accesscapability. Supported accesscapability are: {read, write}")
782+
assertTestResult(t, err.Error(), expectedError)
783+
})
784+
785+
t.Run("Invalid accesscapabilities", func(t *testing.T) {
786+
in.ProfileId, in.Type, in.AccessTo, in.AccessCapability = "d2975ebe-d82c-430f-b28e-f373746a71ca", "ip", "201.100.101.9", []string{"read", "execute"}
787+
mockClient := new(dbtest.Client)
788+
mockClient.On("GetFileShare", context.NewAdminContext(), in.FileShareId).Return(&SampleFileShares[0], nil)
789+
mockClient.On("CreateFileShareAcl", context.NewAdminContext(), in).Return(&SampleFileSharesAcl[2], nil)
790+
db.C = mockClient
791+
792+
value := "execute"
793+
_, err := CreateFileShareAclDBEntry(context.NewAdminContext(), in)
794+
expectedError := fmt.Sprintf("invalid fileshare accesscapability: %v. Supported accesscapability are: {read, write}", value)
795+
assertTestResult(t, err.Error(), expectedError)
796+
})
797+
798+
t.Run("Invalid fileshare id given", func(t *testing.T) {
799+
in.ProfileId, in.Type, in.AccessTo, in.AccessCapability = "d2975ebe-d82c-430f-b28e-f373746a71ca", "ip", "201.100.101.9", []string{"read"}
800+
mockClient := new(dbtest.Client)
801+
mockClient.On("GetFileShare", context.NewAdminContext(), in.FileShareId).Return(&SampleFileShares[0], nil)
802+
SampleFileShares[0].Status = model.FileShareError
803+
mockClient.On("CreateFileShareAcl", context.NewAdminContext(), in).Return(&SampleFileSharesAcl[2], nil)
804+
db.C = mockClient
805+
806+
_, err := CreateFileShareAclDBEntry(context.NewAdminContext(), in)
807+
expectedError := "only the status of file share is available, the acl can be created"
808+
assertTestResult(t, err.Error(), expectedError)
809+
})
810+
}
811+
812+
func TestDeleteFileShareSnapshotDBEntry(t *testing.T) {
813+
var in = &SampleFileShareSnapshots[0]
814+
815+
t.Run("When everything works fine", func(t *testing.T) {
816+
mockClient := new(dbtest.Client)
817+
mockClient.On("GetFileShare", context.NewAdminContext(), in.FileShareId).Return(&SampleFileShares[0],nil)
818+
mockClient.On("DeleteFileShareSnapshot", context.NewAdminContext(), in.Id).Return(nil, nil)
819+
mockClient.On("UpdateFileShareSnapshot", context.NewAdminContext(), in.Id, in).Return(nil, nil)
820+
db.C = mockClient
821+
822+
err := DeleteFileShareSnapshotDBEntry(context.NewAdminContext(), in)
823+
if err != nil {
824+
t.Errorf("failed to delete fileshare snapshot, err is %v\n", err)
825+
}
826+
})
827+
828+
t.Run("File status not available", func(t *testing.T) {
829+
in.Status = model.FileShareAclInUse
830+
mockClient := new(dbtest.Client)
831+
mockClient.On("GetFileShare", context.NewAdminContext(), in.FileShareId).Return(nil, nil)
832+
mockClient.On("DeleteFileShareSnapshot", context.NewAdminContext(), in.Id).Return(nil, nil)
833+
mockClient.On("UpdateFileShareSnapshot", context.NewAdminContext(), in.Id, in).Return(nil, nil)
834+
db.C = mockClient
835+
836+
err := DeleteFileShareSnapshotDBEntry(context.NewAdminContext(), in)
837+
expectedError := fmt.Sprintf("only the fileshare snapshot with the status available, error, error_deleting can be deleted, the fileshare status is %s", in.Status)
838+
assertTestResult(t, err.Error(), expectedError)
839+
})
840+
}

testutils/collection/data.go

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -248,6 +248,7 @@ var (
248248
Id: "6ad25d59-a160-45b2-8920-211be282e2df",
249249
},
250250
Description: "This is a sample Acl for testing",
251+
ProfileId: "1106b972-66ef-11e7-b172-db03f3689c9c",
251252
Type: "ip",
252253
AccessCapability: []string{"Read", "Write"},
253254
AccessTo: "10.32.109.15",
@@ -274,6 +275,7 @@ var (
274275
Name: "sample-snapshot-01",
275276
Description: "This is the first sample snapshot for testing",
276277
SnapshotSize: int64(1),
278+
FileShareId: "d2975ebe-d82c-430f-b28e-f373746a71ca",
277279
Status: "available",
278280
},
279281
{

0 commit comments

Comments
 (0)