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  }