mirror of
				https://github.com/cloudreve/cloudreve.git
				synced 2025-10-31 00:27:31 +08:00 
			
		
		
		
	Test: delete objects related methods
This commit is contained in:
		| @ -3,6 +3,7 @@ package model | ||||
| import ( | ||||
| 	"errors" | ||||
| 	"github.com/DATA-DOG/go-sqlmock" | ||||
| 	"github.com/HFO4/cloudreve/pkg/util" | ||||
| 	"github.com/jinzhu/gorm" | ||||
| 	"github.com/stretchr/testify/assert" | ||||
| 	"testing" | ||||
| @ -72,3 +73,59 @@ func TestFolder_GetChildFolder(t *testing.T) { | ||||
| 	asserts.Len(files, 2) | ||||
| 	asserts.NoError(mock.ExpectationsWereMet()) | ||||
| } | ||||
|  | ||||
| func TestGetRecursiveChildFolder(t *testing.T) { | ||||
| 	asserts := assert.New(t) | ||||
| 	dirs := []string{"/目录1", "/目录2"} | ||||
|  | ||||
| 	// 正常 | ||||
| 	{ | ||||
| 		mock.ExpectQuery("SELECT(.+)folders(.+)"). | ||||
| 			WithArgs(1, util.BuildRegexp(dirs, "^", "/", "|"), "/目录1", "/目录2"). | ||||
| 			WillReturnRows( | ||||
| 				sqlmock.NewRows([]string{"id", "name"}). | ||||
| 					AddRow(1, "sub1"). | ||||
| 					AddRow(2, "sub2"). | ||||
| 					AddRow(3, "sub3"), | ||||
| 			) | ||||
| 		subs, err := GetRecursiveChildFolder(dirs, 1) | ||||
| 		asserts.NoError(mock.ExpectationsWereMet()) | ||||
| 		asserts.NoError(err) | ||||
| 		asserts.Len(subs, 3) | ||||
| 	} | ||||
| 	// 出错 | ||||
| 	{ | ||||
| 		mock.ExpectQuery("SELECT(.+)folders(.+)"). | ||||
| 			WithArgs(1, util.BuildRegexp(dirs, "^", "/", "|"), "/目录1", "/目录2"). | ||||
| 			WillReturnError(errors.New("233")) | ||||
| 		subs, err := GetRecursiveChildFolder(dirs, 1) | ||||
| 		asserts.NoError(mock.ExpectationsWereMet()) | ||||
| 		asserts.Error(err) | ||||
| 		asserts.Len(subs, 0) | ||||
| 	} | ||||
| } | ||||
|  | ||||
| func TestDeleteFolderByIDs(t *testing.T) { | ||||
| 	asserts := assert.New(t) | ||||
|  | ||||
| 	// 出错 | ||||
| 	{ | ||||
| 		mock.ExpectBegin() | ||||
| 		mock.ExpectExec("UPDATE(.+)delete(.+)"). | ||||
| 			WillReturnError(errors.New("error")) | ||||
| 		mock.ExpectRollback() | ||||
| 		err := DeleteFolderByIDs([]uint{1, 2, 3}) | ||||
| 		asserts.NoError(mock.ExpectationsWereMet()) | ||||
| 		asserts.Error(err) | ||||
| 	} | ||||
| 	// 成功 | ||||
| 	{ | ||||
| 		mock.ExpectBegin() | ||||
| 		mock.ExpectExec("UPDATE(.+)delete(.+)"). | ||||
| 			WillReturnResult(sqlmock.NewResult(0, 3)) | ||||
| 		mock.ExpectCommit() | ||||
| 		err := DeleteFolderByIDs([]uint{1, 2, 3}) | ||||
| 		asserts.NoError(mock.ExpectationsWereMet()) | ||||
| 		asserts.NoError(err) | ||||
| 	} | ||||
| } | ||||
|  | ||||
		Reference in New Issue
	
	Block a user
	 HFO4
					HFO4