| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172 |
- package sqlstore
- import (
- "testing"
- m "github.com/grafana/grafana/pkg/models"
- "github.com/grafana/grafana/pkg/setting"
- . "github.com/smartystreets/goconvey/convey"
- )
- func TestQuotaCommandsAndQueries(t *testing.T) {
- Convey("Testing Qutoa commands & queries", t, func() {
- InitTestDB(t)
- userId := int64(1)
- orgId := int64(0)
- setting.Quota = setting.QuotaSettings{
- Enabled: true,
- Org: &setting.OrgQuota{
- User: 5,
- Dashboard: 5,
- DataSource: 5,
- ApiKey: 5,
- },
- User: &setting.UserQuota{
- Org: 5,
- },
- Global: &setting.GlobalQuota{
- Org: 5,
- User: 5,
- Dashboard: 5,
- DataSource: 5,
- ApiKey: 5,
- Session: 5,
- },
- }
- // create a new org and add user_id 1 as admin.
- // we will then have an org with 1 user. and a user
- // with 1 org.
- userCmd := m.CreateOrgCommand{
- Name: "TestOrg",
- UserId: 1,
- }
- err := CreateOrg(&userCmd)
- So(err, ShouldBeNil)
- orgId = userCmd.Result.Id
- Convey("Given saved org quota for users", func() {
- orgCmd := m.UpdateOrgQuotaCmd{
- OrgId: orgId,
- Target: "org_user",
- Limit: 10,
- }
- err := UpdateOrgQuota(&orgCmd)
- So(err, ShouldBeNil)
- Convey("Should be able to get saved quota by org id and target", func() {
- query := m.GetOrgQuotaByTargetQuery{OrgId: orgId, Target: "org_user", Default: 1}
- err = GetOrgQuotaByTarget(&query)
- So(err, ShouldBeNil)
- So(query.Result.Limit, ShouldEqual, 10)
- })
- Convey("Should be able to get default quota by org id and target", func() {
- query := m.GetOrgQuotaByTargetQuery{OrgId: 123, Target: "org_user", Default: 11}
- err = GetOrgQuotaByTarget(&query)
- So(err, ShouldBeNil)
- So(query.Result.Limit, ShouldEqual, 11)
- })
- Convey("Should be able to get used org quota when rows exist", func() {
- query := m.GetOrgQuotaByTargetQuery{OrgId: orgId, Target: "org_user", Default: 11}
- err = GetOrgQuotaByTarget(&query)
- So(err, ShouldBeNil)
- So(query.Result.Used, ShouldEqual, 1)
- })
- Convey("Should be able to get used org quota when no rows exist", func() {
- query := m.GetOrgQuotaByTargetQuery{OrgId: 2, Target: "org_user", Default: 11}
- err = GetOrgQuotaByTarget(&query)
- So(err, ShouldBeNil)
- So(query.Result.Used, ShouldEqual, 0)
- })
- Convey("Should be able to quota list for org", func() {
- query := m.GetOrgQuotasQuery{OrgId: orgId}
- err = GetOrgQuotas(&query)
- So(err, ShouldBeNil)
- So(len(query.Result), ShouldEqual, 4)
- for _, res := range query.Result {
- limit := 5 //default quota limit
- used := 0
- if res.Target == "org_user" {
- limit = 10 //customized quota limit.
- used = 1
- }
- So(res.Limit, ShouldEqual, limit)
- So(res.Used, ShouldEqual, used)
- }
- })
- })
- Convey("Given saved user quota for org", func() {
- userQuotaCmd := m.UpdateUserQuotaCmd{
- UserId: userId,
- Target: "org_user",
- Limit: 10,
- }
- err := UpdateUserQuota(&userQuotaCmd)
- So(err, ShouldBeNil)
- Convey("Should be able to get saved quota by user id and target", func() {
- query := m.GetUserQuotaByTargetQuery{UserId: userId, Target: "org_user", Default: 1}
- err = GetUserQuotaByTarget(&query)
- So(err, ShouldBeNil)
- So(query.Result.Limit, ShouldEqual, 10)
- })
- Convey("Should be able to get default quota by user id and target", func() {
- query := m.GetUserQuotaByTargetQuery{UserId: 9, Target: "org_user", Default: 11}
- err = GetUserQuotaByTarget(&query)
- So(err, ShouldBeNil)
- So(query.Result.Limit, ShouldEqual, 11)
- })
- Convey("Should be able to get used user quota when rows exist", func() {
- query := m.GetUserQuotaByTargetQuery{UserId: userId, Target: "org_user", Default: 11}
- err = GetUserQuotaByTarget(&query)
- So(err, ShouldBeNil)
- So(query.Result.Used, ShouldEqual, 1)
- })
- Convey("Should be able to get used user quota when no rows exist", func() {
- query := m.GetUserQuotaByTargetQuery{UserId: 2, Target: "org_user", Default: 11}
- err = GetUserQuotaByTarget(&query)
- So(err, ShouldBeNil)
- So(query.Result.Used, ShouldEqual, 0)
- })
- Convey("Should be able to quota list for user", func() {
- query := m.GetUserQuotasQuery{UserId: userId}
- err = GetUserQuotas(&query)
- So(err, ShouldBeNil)
- So(len(query.Result), ShouldEqual, 1)
- So(query.Result[0].Limit, ShouldEqual, 10)
- So(query.Result[0].Used, ShouldEqual, 1)
- })
- })
- Convey("Should be able to global user quota", func() {
- query := m.GetGlobalQuotaByTargetQuery{Target: "user", Default: 5}
- err = GetGlobalQuotaByTarget(&query)
- So(err, ShouldBeNil)
- So(query.Result.Limit, ShouldEqual, 5)
- So(query.Result.Used, ShouldEqual, 0)
- })
- Convey("Should be able to global org quota", func() {
- query := m.GetGlobalQuotaByTargetQuery{Target: "org", Default: 5}
- err = GetGlobalQuotaByTarget(&query)
- So(err, ShouldBeNil)
- So(query.Result.Limit, ShouldEqual, 5)
- So(query.Result.Used, ShouldEqual, 1)
- })
- })
- }
|