|
|
@ -214,7 +214,7 @@ func TestFileSystem_CreateDirectory(t *testing.T) {
|
|
|
|
asserts.Equal(ErrFileExisted, err)
|
|
|
|
asserts.Equal(ErrFileExisted, err)
|
|
|
|
asserts.NoError(mock.ExpectationsWereMet())
|
|
|
|
asserts.NoError(mock.ExpectationsWereMet())
|
|
|
|
|
|
|
|
|
|
|
|
// 存在同名目录
|
|
|
|
// 存在同名目录,直接返回
|
|
|
|
mock.ExpectQuery("SELECT(.+)").
|
|
|
|
mock.ExpectQuery("SELECT(.+)").
|
|
|
|
WithArgs(1).
|
|
|
|
WithArgs(1).
|
|
|
|
WillReturnRows(sqlmock.NewRows([]string{"id", "owner_id"}).AddRow(1, 1))
|
|
|
|
WillReturnRows(sqlmock.NewRows([]string{"id", "owner_id"}).AddRow(1, 1))
|
|
|
@ -225,14 +225,17 @@ func TestFileSystem_CreateDirectory(t *testing.T) {
|
|
|
|
|
|
|
|
|
|
|
|
mock.ExpectQuery("SELECT(.+)files").WillReturnRows(sqlmock.NewRows([]string{"id", "name"}))
|
|
|
|
mock.ExpectQuery("SELECT(.+)files").WillReturnRows(sqlmock.NewRows([]string{"id", "name"}))
|
|
|
|
mock.ExpectBegin()
|
|
|
|
mock.ExpectBegin()
|
|
|
|
mock.ExpectExec("INSERT(.+)").WillReturnError(errors.New("s"))
|
|
|
|
// ab
|
|
|
|
mock.ExpectRollback()
|
|
|
|
mock.ExpectQuery("SELECT(.+)").
|
|
|
|
_, err = fs.CreateDirectory(ctx, "/ad/ab")
|
|
|
|
WithArgs("ab", 2, 1).
|
|
|
|
asserts.Error(err)
|
|
|
|
WillReturnRows(sqlmock.NewRows([]string{"id", "owner_id"}).AddRow(3, 1))
|
|
|
|
|
|
|
|
mock.ExpectCommit()
|
|
|
|
|
|
|
|
res, err := fs.CreateDirectory(ctx, "/ad/ab")
|
|
|
|
|
|
|
|
asserts.NoError(err)
|
|
|
|
|
|
|
|
asserts.EqualValues(3, res.ID)
|
|
|
|
asserts.NoError(mock.ExpectationsWereMet())
|
|
|
|
asserts.NoError(mock.ExpectationsWereMet())
|
|
|
|
|
|
|
|
|
|
|
|
// 成功创建
|
|
|
|
// 成功创建
|
|
|
|
// 根目录
|
|
|
|
|
|
|
|
mock.ExpectQuery("SELECT(.+)").
|
|
|
|
mock.ExpectQuery("SELECT(.+)").
|
|
|
|
WithArgs(1).
|
|
|
|
WithArgs(1).
|
|
|
|
WillReturnRows(sqlmock.NewRows([]string{"id", "owner_id"}).AddRow(1, 1))
|
|
|
|
WillReturnRows(sqlmock.NewRows([]string{"id", "owner_id"}).AddRow(1, 1))
|
|
|
@ -243,16 +246,79 @@ func TestFileSystem_CreateDirectory(t *testing.T) {
|
|
|
|
|
|
|
|
|
|
|
|
mock.ExpectQuery("SELECT(.+)files").WillReturnRows(sqlmock.NewRows([]string{"id", "name"}))
|
|
|
|
mock.ExpectQuery("SELECT(.+)files").WillReturnRows(sqlmock.NewRows([]string{"id", "name"}))
|
|
|
|
mock.ExpectBegin()
|
|
|
|
mock.ExpectBegin()
|
|
|
|
|
|
|
|
mock.ExpectQuery("SELECT(.+)").
|
|
|
|
|
|
|
|
WithArgs("ab", 2, 1).
|
|
|
|
|
|
|
|
WillReturnRows(sqlmock.NewRows([]string{"id", "owner_id"}))
|
|
|
|
mock.ExpectExec("INSERT(.+)").WillReturnResult(sqlmock.NewResult(1, 1))
|
|
|
|
mock.ExpectExec("INSERT(.+)").WillReturnResult(sqlmock.NewResult(1, 1))
|
|
|
|
mock.ExpectCommit()
|
|
|
|
mock.ExpectCommit()
|
|
|
|
_, err = fs.CreateDirectory(ctx, "/ad/ab")
|
|
|
|
_, err = fs.CreateDirectory(ctx, "/ad/ab")
|
|
|
|
asserts.NoError(err)
|
|
|
|
asserts.NoError(err)
|
|
|
|
asserts.NoError(mock.ExpectationsWereMet())
|
|
|
|
asserts.NoError(mock.ExpectationsWereMet())
|
|
|
|
|
|
|
|
|
|
|
|
// 父目录不存在
|
|
|
|
// 成功创建, 递归创建父目录
|
|
|
|
mock.ExpectQuery("SELECT(.+)folders").WillReturnRows(sqlmock.NewRows([]string{"id", "name"}))
|
|
|
|
// 根目录
|
|
|
|
_, err = fs.CreateDirectory(ctx, "/ad")
|
|
|
|
mock.ExpectQuery("SELECT(.+)").
|
|
|
|
asserts.Equal(ErrRootProtected, err)
|
|
|
|
WithArgs(1).
|
|
|
|
|
|
|
|
WillReturnRows(sqlmock.NewRows([]string{"id", "owner_id"}).AddRow(1, 1))
|
|
|
|
|
|
|
|
// ad
|
|
|
|
|
|
|
|
mock.ExpectQuery("SELECT(.+)").
|
|
|
|
|
|
|
|
WithArgs(1, 1, "ad").
|
|
|
|
|
|
|
|
WillReturnRows(sqlmock.NewRows([]string{"id", "owner_id"}))
|
|
|
|
|
|
|
|
// 根目录
|
|
|
|
|
|
|
|
mock.ExpectQuery("SELECT(.+)").
|
|
|
|
|
|
|
|
WithArgs(1).
|
|
|
|
|
|
|
|
WillReturnRows(sqlmock.NewRows([]string{"id", "owner_id"}).AddRow(1, 1))
|
|
|
|
|
|
|
|
mock.ExpectQuery("SELECT(.+)files").WillReturnRows(sqlmock.NewRows([]string{"id", "name"}))
|
|
|
|
|
|
|
|
// 创建ad
|
|
|
|
|
|
|
|
mock.ExpectBegin()
|
|
|
|
|
|
|
|
mock.ExpectQuery("SELECT(.+)").
|
|
|
|
|
|
|
|
WithArgs("ad", 1, 1).
|
|
|
|
|
|
|
|
WillReturnRows(sqlmock.NewRows([]string{"id", "owner_id"}))
|
|
|
|
|
|
|
|
mock.ExpectExec("INSERT(.+)").WillReturnResult(sqlmock.NewResult(2, 1))
|
|
|
|
|
|
|
|
mock.ExpectCommit()
|
|
|
|
|
|
|
|
mock.ExpectQuery("SELECT(.+)files").WillReturnRows(sqlmock.NewRows([]string{"id", "name"}))
|
|
|
|
|
|
|
|
// 创建ab
|
|
|
|
|
|
|
|
mock.ExpectBegin()
|
|
|
|
|
|
|
|
mock.ExpectQuery("SELECT(.+)").
|
|
|
|
|
|
|
|
WithArgs("ab", 2, 1).
|
|
|
|
|
|
|
|
WillReturnRows(sqlmock.NewRows([]string{"id", "owner_id"}))
|
|
|
|
|
|
|
|
mock.ExpectExec("INSERT(.+)").WillReturnResult(sqlmock.NewResult(1, 1))
|
|
|
|
|
|
|
|
mock.ExpectCommit()
|
|
|
|
|
|
|
|
_, err = fs.CreateDirectory(ctx, "/ad/ab")
|
|
|
|
|
|
|
|
asserts.NoError(err)
|
|
|
|
|
|
|
|
asserts.NoError(mock.ExpectationsWereMet())
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// 底层创建失败
|
|
|
|
|
|
|
|
// 成功创建
|
|
|
|
|
|
|
|
mock.ExpectQuery("SELECT(.+)").
|
|
|
|
|
|
|
|
WithArgs(1).
|
|
|
|
|
|
|
|
WillReturnRows(sqlmock.NewRows([]string{"id", "owner_id"}).AddRow(1, 1))
|
|
|
|
|
|
|
|
// ad
|
|
|
|
|
|
|
|
mock.ExpectQuery("SELECT(.+)").
|
|
|
|
|
|
|
|
WithArgs(1, 1, "ad").
|
|
|
|
|
|
|
|
WillReturnRows(sqlmock.NewRows([]string{"id", "owner_id"}))
|
|
|
|
|
|
|
|
// 根目录
|
|
|
|
|
|
|
|
mock.ExpectQuery("SELECT(.+)").
|
|
|
|
|
|
|
|
WithArgs(1).
|
|
|
|
|
|
|
|
WillReturnRows(sqlmock.NewRows([]string{"id", "owner_id"}).AddRow(1, 1))
|
|
|
|
|
|
|
|
mock.ExpectQuery("SELECT(.+)files").WillReturnRows(sqlmock.NewRows([]string{"id", "name"}))
|
|
|
|
|
|
|
|
// 创建ad
|
|
|
|
|
|
|
|
mock.ExpectBegin()
|
|
|
|
|
|
|
|
mock.ExpectQuery("SELECT(.+)").
|
|
|
|
|
|
|
|
WithArgs("ad", 1, 1).
|
|
|
|
|
|
|
|
WillReturnRows(sqlmock.NewRows([]string{"id", "owner_id"}))
|
|
|
|
|
|
|
|
mock.ExpectExec("INSERT(.+)").WillReturnResult(sqlmock.NewResult(2, 1)).WillReturnError(errors.New("error"))
|
|
|
|
|
|
|
|
mock.ExpectRollback()
|
|
|
|
|
|
|
|
_, err = fs.CreateDirectory(ctx, "/ad/ab")
|
|
|
|
|
|
|
|
asserts.Error(err)
|
|
|
|
|
|
|
|
asserts.NoError(mock.ExpectationsWereMet())
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// 直接创建根目录
|
|
|
|
|
|
|
|
mock.ExpectQuery("SELECT(.+)").
|
|
|
|
|
|
|
|
WithArgs(1).
|
|
|
|
|
|
|
|
WillReturnRows(sqlmock.NewRows([]string{"id", "owner_id"}).AddRow(1, 1))
|
|
|
|
|
|
|
|
_, err = fs.CreateDirectory(ctx, "/")
|
|
|
|
|
|
|
|
asserts.NoError(err)
|
|
|
|
asserts.NoError(mock.ExpectationsWereMet())
|
|
|
|
asserts.NoError(mock.ExpectationsWereMet())
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|