@@ -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+ }
0 commit comments