github.com/cloudreve/Cloudreve/v3@v3.0.0-20240224133659-3edb00a6484c/models/webdav_test.go (about) 1 package model 2 3 import ( 4 "errors" 5 "github.com/DATA-DOG/go-sqlmock" 6 "github.com/stretchr/testify/assert" 7 "testing" 8 ) 9 10 func TestWebdav_Create(t *testing.T) { 11 asserts := assert.New(t) 12 // 成功 13 { 14 mock.ExpectBegin() 15 mock.ExpectExec("INSERT(.+)").WillReturnResult(sqlmock.NewResult(1, 1)) 16 mock.ExpectCommit() 17 task := Webdav{} 18 id, err := task.Create() 19 asserts.NoError(mock.ExpectationsWereMet()) 20 asserts.NoError(err) 21 asserts.EqualValues(1, id) 22 } 23 24 // 失败 25 { 26 mock.ExpectBegin() 27 mock.ExpectExec("INSERT(.+)").WillReturnError(errors.New("error")) 28 mock.ExpectRollback() 29 task := Webdav{} 30 id, err := task.Create() 31 asserts.NoError(mock.ExpectationsWereMet()) 32 asserts.Error(err) 33 asserts.EqualValues(0, id) 34 } 35 } 36 37 func TestGetWebdavByPassword(t *testing.T) { 38 asserts := assert.New(t) 39 mock.ExpectQuery("SELECT(.+)").WillReturnRows(sqlmock.NewRows([]string{"id"})) 40 _, err := GetWebdavByPassword("e", 1) 41 asserts.NoError(mock.ExpectationsWereMet()) 42 asserts.Error(err) 43 } 44 45 func TestListWebDAVAccounts(t *testing.T) { 46 asserts := assert.New(t) 47 mock.ExpectQuery("SELECT(.+)").WillReturnRows(sqlmock.NewRows([]string{"id"})) 48 res := ListWebDAVAccounts(1) 49 asserts.NoError(mock.ExpectationsWereMet()) 50 asserts.Len(res, 0) 51 } 52 53 func TestDeleteWebDAVAccountByID(t *testing.T) { 54 asserts := assert.New(t) 55 mock.ExpectBegin() 56 mock.ExpectExec("UPDATE(.+)").WillReturnResult(sqlmock.NewResult(1, 1)) 57 mock.ExpectCommit() 58 DeleteWebDAVAccountByID(1, 1) 59 asserts.NoError(mock.ExpectationsWereMet()) 60 }