github.com/Axway/agent-sdk@v1.1.101/pkg/apic/provisioning/quota_test.go (about) 1 package provisioning 2 3 import ( 4 "testing" 5 6 management "github.com/Axway/agent-sdk/pkg/apic/apiserver/models/management/v1alpha1" 7 "github.com/stretchr/testify/assert" 8 ) 9 10 func TestNewQuotaFromAccessRequest(t *testing.T) { 11 tests := []struct { 12 name string 13 limit int32 14 intervalString string 15 interval QuotaInterval 16 wantNil bool 17 }{ 18 { 19 name: "no quota on access request", 20 wantNil: true, 21 }, 22 { 23 name: "bad interval string", 24 intervalString: "bad", 25 wantNil: true, 26 }, 27 { 28 name: "good quota", 29 intervalString: "weekly", 30 interval: Weekly, 31 limit: 100, 32 wantNil: false, 33 }, 34 } 35 for _, tt := range tests { 36 t.Run(tt.name, func(t *testing.T) { 37 ar := management.NewAccessRequest("name", "environment") 38 if tt.intervalString != "" { 39 ar.Spec.Quota = &management.AccessRequestSpecQuota{ 40 Limit: tt.limit, 41 Interval: tt.intervalString, 42 } 43 } 44 45 quota := NewQuotaFromAccessRequest(ar) 46 if tt.wantNil { 47 assert.Nil(t, quota) 48 return 49 } 50 51 assert.Equal(t, quota.GetIntervalString(), tt.intervalString) 52 assert.Equal(t, quota.GetInterval(), tt.interval) 53 assert.Equal(t, quota.GetLimit(), int64(tt.limit)) 54 }) 55 } 56 }