package rbac

import (
	"context"
	"testing"

	"github.com/golang/mock/gomock"
	"github.com/smartystreets/goconvey/convey"
	"github.com/tidbcloud/account/internel/dao"
)

func TestRbacPrivilegeSvc_GetRbacPrivilegeByID(t *testing.T) {
	ctrl := gomock.NewController(t)
	defer ctrl.Finish()
	mockedDaoHub := dao.NewDaoMockHub(ctrl).NewHub()
	ctx := context.TODO()
	svc := NewRbacPrivilegesSvc(db, ddbClient, mockedDaoHub)
	convey.Convey("GetRbacPrivilegeByID", t, func() {
		var id uint64 = 1
		mockedDaoHub.Mock.Rbac.EXPECT().GetRbacPrivilegeByID(ctx, gomock.Any(), id)
		_, err := svc.GetRbacPrivilegeByID(ctx, id)

		convey.So(err, convey.ShouldBeNil)
	})
}

/*
func TestRbacPrivilegeSvc_UpdateRbacPrivilege(t *testing.T) {
	ctrl := gomock.NewController(t)
	defer ctrl.Finish()
	mockedDaoHub := dao.NewDaoMockHub(ctrl).NewHub()
	ctx := context.TODO()
	svc := NewRbacPrivilegesSvc(nil, mockedDaoHub)
	resourceUri := "/orgs/100/create"
	url := "/orgs/100/create"
	system := "admin"
	desc := "create org"
	convey.Convey("UpdateRbacPrivilege", t, func() {
		mockedDaoHub.Mock.Rbac.EXPECT().CreateRbacPrivilege(ctx, nil, resourceUri, url, system, desc)
		r, err := svc.CreateRbacPrivilege(ctx, resourceUri, url, system, desc)
		convey.So(err, convey.ShouldBeNil)
		convey.So(r, convey.ShouldNotBeNil)

		var id uint64 = 1
		resourceUri = "/orgs/101/create"
		mockedDaoHub.Mock.Rbac.EXPECT().UpdateRbacPrivilege(ctx, nil, id, resourceUri, url, system, desc)
		err = svc.UpdateRbacPrivilege(ctx, id, resourceUri, url, system, desc)
		convey.So(err, convey.ShouldBeNil)
	})
}
*/
