feat(files): enable space limit

This commit is contained in:
hexxa 2021-08-16 22:18:07 +08:00 committed by Hexxa
parent 921a7c1ef9
commit 41654e36d0
5 changed files with 181 additions and 64 deletions

View file

@ -3,6 +3,7 @@ package userstore
import (
"io/ioutil"
"os"
"strings"
"testing"
"github.com/ihexxa/quickshare/src/kvstore/boltdbpvd"
@ -38,8 +39,8 @@ func TestUserStores(t *testing.T) {
id, name1 := uint64(1), "test_user1"
pwd1, pwd2 := "666", "888"
role1, role2 := UserRole, AdminRole
spaceLimit1, upLimit1, downLimit1 := 3, 5, 7
spaceLimit2, upLimit2, downLimit2 := 11, 13, 17
spaceLimit1, upLimit1, downLimit1 := 17, 5, 7
spaceLimit2, upLimit2, downLimit2 := 19, 13, 17
err = store.AddUser(&User{
ID: id,
@ -110,6 +111,22 @@ func TestUserStores(t *testing.T) {
},
})
usedIncr, usedDecr := int64(spaceLimit2), int64(7)
err = store.SetUsed(id, true, usedIncr)
if err != nil {
t.Fatal(err)
}
err = store.SetUsed(id, false, usedDecr)
if err != nil {
t.Fatal(err)
}
err = store.SetUsed(id, true, int64(spaceLimit2)-(usedIncr-usedDecr)+1)
if err == nil || !strings.Contains(err.Error(), "reached space limit") {
t.Fatal("should reject big file")
} else {
err = nil
}
user, err = store.GetUser(id)
if err != nil {
t.Fatal(err)
@ -129,6 +146,9 @@ func TestUserStores(t *testing.T) {
if user.Quota.DownloadSpeedLimit != downLimit2 {
t.Fatalf("down limit not matched %d %d", downLimit2, user.Quota.DownloadSpeedLimit)
}
if user.UsedSpace != usedIncr-usedDecr {
t.Fatalf("used space not matched %d %d", user.UsedSpace, usedIncr-usedDecr)
}
user, err = store.GetUserByName(name1)
if err != nil {