filestash/server/ctrl/share_test.go

130 lines
3 KiB
Go

package ctrl
import (
"testing"
"github.com/mickael-kerjean/nuage/server/model"
. "github.com/mickael-kerjean/nuage/server/common"
"github.com/stretchr/testify/assert"
)
var shareObj = model.Share{
Backend: "foo",
Id: "foo",
Path: "/var/www/",
Password: NewString("password"),
Users: nil,
CanRead: true,
CanManageOwn: true,
CanShare: true,
Expire: NewInt(1537759505787),
}
//////////////////////////////////////////////
//// UPSERT
func TestShareSimpleUpsert(t *testing.T) {
err := model.ShareUpsert(&shareObj);
assert.NoError(t, err)
}
func TestShareMultipleUpsert(t *testing.T) {
err := model.ShareUpsert(&shareObj);
assert.NoError(t, err)
shareObj.CanManageOwn = false
err = model.ShareUpsert(&shareObj);
assert.NoError(t, err)
err = model.ShareGet(&shareObj)
assert.NoError(t, err)
}
// func TestShareUpsertIsProperlyInserted(t *testing.T) {
// err := model.ShareUpsert(&shareObj);
// assert.NoError(t, err)
// var obj model.Share
// err = model.ShareGet(&obj)
// assert.NoError(t, err)
// assert.NotNil(t, obj.Password)
// // TODO
// //assert.NotNil(t, obj.Password)
// }
//////////////////////////////////////////////
//// get
func TestShareGetNonExisting(t *testing.T) {
var s model.Share = shareObj
s.Id = "nothing"
err := model.ShareGet(&s);
assert.Error(t, err, "Shouldn't be able to get something that doesn't exist yet")
}
func TestShareGetExisting(t *testing.T) {
err := model.ShareUpsert(&shareObj);
assert.NoError(t, err, "Upsert issue")
err = model.ShareGet(&shareObj);
assert.NoError(t, err)
}
// func TestShareGetExistingMakeSureDataIsOk(t *testing.T) {
// err := model.ShareUpsert(&shareObj);
// assert.NoError(t, err, "Upsert issue")
// var obj model.Share
// obj.Id = shareObj.Id
// obj.Backend = shareObj.Backend
// err = model.ShareGet(&obj);
// assert.NoError(t, err)
// assert.Equal(t, "foo", obj.Id)
// assert.Equal(t, "/var/www/", obj.Path)
// assert.Equal(t, true, obj.CanManageOwn)
// assert.Equal(t, true, obj.CanShare)
// assert.Equal(t, true, obj.CanRead)
// assert.Equal(t, false, obj.CanWrite)
// assert.Equal(t, false, obj.CanUpload)
// assert.Nil(t, obj.Backend)
// assert.NotNil(t, obj.Expire)
// assert.Equal(t, shareObj.Expire, obj.Expire)
// assert.NotNil(t, obj.Password)
// assert.NotEqual(t, shareObj.Password, obj.Password)
// }
//////////////////////////////////////////////
//// LIST
func TestShareListAll(t *testing.T) {
// Initialise test
err := model.ShareUpsert(&shareObj);
assert.NoError(t, err, "Upsert issue")
// Actual test
list, err := model.ShareList(&shareObj)
assert.NoError(t, err)
assert.Len(t, list, 1)
assert.NotNil(t, list[0].Password)
}
//////////////////////////////////////////////
//// DELETE
func TestShareDeleteShares(t *testing.T) {
// Initialise test
err := model.ShareUpsert(&shareObj);
assert.NoError(t, err, "Upsert issue")
err = model.ShareGet(&shareObj)
assert.NoError(t, err)
// Actual Test
err = model.ShareDelete(&shareObj);
assert.NoError(t, err)
err = model.ShareGet(&shareObj)
assert.Error(t, err)
}