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 TestSHareUpsertManageSensitiveData(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) }