Skip to content

Commit

Permalink
ratelimitpolicy v1beta3: unittests
Browse files Browse the repository at this point in the history
Signed-off-by: Eguzki Astiz Lezaun <eastizle@redhat.com>
  • Loading branch information
eguzki committed Sep 25, 2024
1 parent 936cb2a commit ea3757b
Show file tree
Hide file tree
Showing 5 changed files with 111 additions and 110 deletions.
12 changes: 6 additions & 6 deletions controllers/ratelimitpolicy_status_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -10,25 +10,25 @@ import (
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
gatewayapiv1alpha2 "sigs.k8s.io/gateway-api/apis/v1alpha2"

kuadrantv1beta2 "github.com/kuadrant/kuadrant-operator/api/v1beta2"
kuadrantv1beta3 "github.com/kuadrant/kuadrant-operator/api/v1beta3"
"github.com/kuadrant/kuadrant-operator/pkg/library/kuadrant"
)

func TestRateLimitPolicyReconciler_calculateStatus(t *testing.T) {
type args struct {
rlp *kuadrantv1beta2.RateLimitPolicy
rlp *kuadrantv1beta3.RateLimitPolicy
specErr error
}
tests := []struct {
name string
args args
want *kuadrantv1beta2.RateLimitPolicyStatus
want *kuadrantv1beta3.RateLimitPolicyStatus
}{
{
name: "Enforced status block removed if policy not Accepted. (Regression test)", // https://github.com/Kuadrant/kuadrant-operator/issues/588
args: args{
rlp: &kuadrantv1beta2.RateLimitPolicy{
Status: kuadrantv1beta2.RateLimitPolicyStatus{
rlp: &kuadrantv1beta3.RateLimitPolicy{
Status: kuadrantv1beta3.RateLimitPolicyStatus{
Conditions: []metav1.Condition{
{
Message: "not accepted",
Expand All @@ -47,7 +47,7 @@ func TestRateLimitPolicyReconciler_calculateStatus(t *testing.T) {
},
specErr: kuadrant.NewErrInvalid("RateLimitPolicy", errors.New("policy Error")),
},
want: &kuadrantv1beta2.RateLimitPolicyStatus{
want: &kuadrantv1beta3.RateLimitPolicyStatus{
Conditions: []metav1.Condition{
{
Message: "RateLimitPolicy target is invalid: policy Error",
Expand Down
10 changes: 5 additions & 5 deletions pkg/library/mappers/gateway_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ import (
gatewayapiv1 "sigs.k8s.io/gateway-api/apis/v1"
gatewayapiv1alpha2 "sigs.k8s.io/gateway-api/apis/v1alpha2"

kuadrantv1beta2 "github.com/kuadrant/kuadrant-operator/api/v1beta2"
kuadrantv1beta3 "github.com/kuadrant/kuadrant-operator/api/v1beta3"
"github.com/kuadrant/kuadrant-operator/pkg/library/fieldindexers"
kuadrantgatewayapi "github.com/kuadrant/kuadrant-operator/pkg/library/gatewayapi"
"github.com/kuadrant/kuadrant-operator/pkg/library/utils"
Expand All @@ -36,7 +36,7 @@ func TestNewGatewayEventMapper(t *testing.T) {
t.Fatal(err)
}

err = kuadrantv1beta2.AddToScheme(testScheme)
err = kuadrantv1beta3.AddToScheme(testScheme)
if err != nil {
t.Fatal(err)
}
Expand All @@ -63,15 +63,15 @@ func TestNewGatewayEventMapper(t *testing.T) {
t.Run("not gateway related event", func(subT *testing.T) {
objs := []runtime.Object{}
cl := clientBuilder(objs)
em := NewGatewayEventMapper(kuadrantv1beta2.NewRateLimitPolicyType(), WithClient(cl), WithLogger(log.NewLogger()))
em := NewGatewayEventMapper(kuadrantv1beta3.NewRateLimitPolicyType(), WithClient(cl), WithLogger(log.NewLogger()))
requests := em.Map(ctx, &gatewayapiv1.HTTPRoute{})
assert.DeepEqual(subT, []reconcile.Request{}, requests)
})

t.Run("gateway related event - no policies - no requests", func(subT *testing.T) {
objs := []runtime.Object{}
cl := clientBuilder(objs)
em := NewGatewayEventMapper(kuadrantv1beta2.NewRateLimitPolicyType(), WithClient(cl), WithLogger(log.NewLogger()))
em := NewGatewayEventMapper(kuadrantv1beta3.NewRateLimitPolicyType(), WithClient(cl), WithLogger(log.NewLogger()))
requests := em.Map(ctx, &gatewayapiv1.Gateway{})
assert.DeepEqual(subT, []reconcile.Request{}, requests)
})
Expand All @@ -91,7 +91,7 @@ func TestNewGatewayEventMapper(t *testing.T) {
})
objs := []runtime.Object{gw, route, pGw, pRoute}
cl := clientBuilder(objs)
em := NewGatewayEventMapper(kuadrantv1beta2.NewRateLimitPolicyType(), WithClient(cl), WithLogger(log.NewLogger()))
em := NewGatewayEventMapper(kuadrantv1beta3.NewRateLimitPolicyType(), WithClient(cl), WithLogger(log.NewLogger()))
requests := em.Map(ctx, gw)
assert.Equal(subT, len(requests), 2)
assert.Assert(subT, utils.Index(requests, func(r reconcile.Request) bool {
Expand Down
10 changes: 5 additions & 5 deletions pkg/library/mappers/utils_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ import (
gatewayapiv1 "sigs.k8s.io/gateway-api/apis/v1"
gatewayapiv1alpha2 "sigs.k8s.io/gateway-api/apis/v1alpha2"

kuadrantv1beta2 "github.com/kuadrant/kuadrant-operator/api/v1beta2"
kuadrantv1beta3 "github.com/kuadrant/kuadrant-operator/api/v1beta3"
)

func gatewayFactory(ns, name string) *gatewayapiv1.Gateway {
Expand All @@ -30,10 +30,10 @@ func routeFactory(ns, name string, parentRef gatewayapiv1.ParentReference) *gate
}
}

func policyFactory(ns, name string, targetRef gatewayapiv1alpha2.LocalPolicyTargetReference) *kuadrantv1beta2.RateLimitPolicy {
return &kuadrantv1beta2.RateLimitPolicy{
TypeMeta: metav1.TypeMeta{Kind: "RateLimitPolicy", APIVersion: kuadrantv1beta2.GroupVersion.String()},
func policyFactory(ns, name string, targetRef gatewayapiv1alpha2.LocalPolicyTargetReference) *kuadrantv1beta3.RateLimitPolicy {
return &kuadrantv1beta3.RateLimitPolicy{
TypeMeta: metav1.TypeMeta{Kind: "RateLimitPolicy", APIVersion: kuadrantv1beta3.GroupVersion.String()},
ObjectMeta: metav1.ObjectMeta{Name: name, Namespace: ns},
Spec: kuadrantv1beta2.RateLimitPolicySpec{TargetRef: targetRef},
Spec: kuadrantv1beta3.RateLimitPolicySpec{TargetRef: targetRef},
}
}
105 changes: 53 additions & 52 deletions pkg/rlptools/utils_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -6,28 +6,29 @@ import (
"reflect"
"testing"

limitadorv1alpha1 "github.com/kuadrant/limitador-operator/api/v1alpha1"
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"

kuadrantv1beta2 "github.com/kuadrant/kuadrant-operator/api/v1beta2"
limitadorv1alpha1 "github.com/kuadrant/limitador-operator/api/v1alpha1"

kuadrantv1beta3 "github.com/kuadrant/kuadrant-operator/api/v1beta3"
"github.com/kuadrant/kuadrant-operator/pkg/library/utils"
)

func testRLP_1Limit_1Rate(ns, name string) *kuadrantv1beta2.RateLimitPolicy {
return &kuadrantv1beta2.RateLimitPolicy{
func testRLP_1Limit_1Rate(ns, name string) *kuadrantv1beta3.RateLimitPolicy {
return &kuadrantv1beta3.RateLimitPolicy{
TypeMeta: metav1.TypeMeta{
Kind: "RateLimitPolicy",
APIVersion: kuadrantv1beta2.GroupVersion.String(),
APIVersion: kuadrantv1beta3.GroupVersion.String(),
},
ObjectMeta: metav1.ObjectMeta{
Name: name,
Namespace: ns,
},
Spec: kuadrantv1beta2.RateLimitPolicySpec{
RateLimitPolicyCommonSpec: kuadrantv1beta2.RateLimitPolicyCommonSpec{
Limits: map[string]kuadrantv1beta2.Limit{
Spec: kuadrantv1beta3.RateLimitPolicySpec{
RateLimitPolicyCommonSpec: kuadrantv1beta3.RateLimitPolicyCommonSpec{
Limits: map[string]kuadrantv1beta3.Limit{
"l1": {
Rates: []kuadrantv1beta2.Rate{
Rates: []kuadrantv1beta3.Rate{
{
Limit: 5,
Duration: 10,
Expand All @@ -41,21 +42,21 @@ func testRLP_1Limit_1Rate(ns, name string) *kuadrantv1beta2.RateLimitPolicy {
}
}

func testRLP_2Limits_1Rate(ns, name string) *kuadrantv1beta2.RateLimitPolicy {
return &kuadrantv1beta2.RateLimitPolicy{
func testRLP_2Limits_1Rate(ns, name string) *kuadrantv1beta3.RateLimitPolicy {
return &kuadrantv1beta3.RateLimitPolicy{
TypeMeta: metav1.TypeMeta{
Kind: "RateLimitPolicy",
APIVersion: kuadrantv1beta2.GroupVersion.String(),
APIVersion: kuadrantv1beta3.GroupVersion.String(),
},
ObjectMeta: metav1.ObjectMeta{
Name: name,
Namespace: ns,
},
Spec: kuadrantv1beta2.RateLimitPolicySpec{
RateLimitPolicyCommonSpec: kuadrantv1beta2.RateLimitPolicyCommonSpec{
Limits: map[string]kuadrantv1beta2.Limit{
Spec: kuadrantv1beta3.RateLimitPolicySpec{
RateLimitPolicyCommonSpec: kuadrantv1beta3.RateLimitPolicyCommonSpec{
Limits: map[string]kuadrantv1beta3.Limit{
"l1": {
Rates: []kuadrantv1beta2.Rate{
Rates: []kuadrantv1beta3.Rate{
{
Limit: 5,
Duration: 10,
Expand All @@ -64,7 +65,7 @@ func testRLP_2Limits_1Rate(ns, name string) *kuadrantv1beta2.RateLimitPolicy {
},
},
"l2": {
Rates: []kuadrantv1beta2.Rate{
Rates: []kuadrantv1beta3.Rate{
{
Limit: 3,
Duration: 1,
Expand All @@ -78,21 +79,21 @@ func testRLP_2Limits_1Rate(ns, name string) *kuadrantv1beta2.RateLimitPolicy {
}
}

func testRLP_1Limit_2Rates(ns, name string) *kuadrantv1beta2.RateLimitPolicy {
return &kuadrantv1beta2.RateLimitPolicy{
func testRLP_1Limit_2Rates(ns, name string) *kuadrantv1beta3.RateLimitPolicy {
return &kuadrantv1beta3.RateLimitPolicy{
TypeMeta: metav1.TypeMeta{
Kind: "RateLimitPolicy",
APIVersion: kuadrantv1beta2.GroupVersion.String(),
APIVersion: kuadrantv1beta3.GroupVersion.String(),
},
ObjectMeta: metav1.ObjectMeta{
Name: name,
Namespace: ns,
},
Spec: kuadrantv1beta2.RateLimitPolicySpec{
RateLimitPolicyCommonSpec: kuadrantv1beta2.RateLimitPolicyCommonSpec{
Limits: map[string]kuadrantv1beta2.Limit{
Spec: kuadrantv1beta3.RateLimitPolicySpec{
RateLimitPolicyCommonSpec: kuadrantv1beta3.RateLimitPolicyCommonSpec{
Limits: map[string]kuadrantv1beta3.Limit{
"l1": {
Rates: []kuadrantv1beta2.Rate{
Rates: []kuadrantv1beta3.Rate{
{
Limit: 5,
Duration: 10,
Expand All @@ -111,24 +112,24 @@ func testRLP_1Limit_2Rates(ns, name string) *kuadrantv1beta2.RateLimitPolicy {
}
}

func testRLP_1Limit_1Rate_1Counter(ns, name string) *kuadrantv1beta2.RateLimitPolicy {
return &kuadrantv1beta2.RateLimitPolicy{
func testRLP_1Limit_1Rate_1Counter(ns, name string) *kuadrantv1beta3.RateLimitPolicy {
return &kuadrantv1beta3.RateLimitPolicy{
TypeMeta: metav1.TypeMeta{
Kind: "RateLimitPolicy",
APIVersion: kuadrantv1beta2.GroupVersion.String(),
APIVersion: kuadrantv1beta3.GroupVersion.String(),
},
ObjectMeta: metav1.ObjectMeta{
Name: name,
Namespace: ns,
},
Spec: kuadrantv1beta2.RateLimitPolicySpec{
RateLimitPolicyCommonSpec: kuadrantv1beta2.RateLimitPolicyCommonSpec{
Limits: map[string]kuadrantv1beta2.Limit{
Spec: kuadrantv1beta3.RateLimitPolicySpec{
RateLimitPolicyCommonSpec: kuadrantv1beta3.RateLimitPolicyCommonSpec{
Limits: map[string]kuadrantv1beta3.Limit{
"l1": {
Counters: []kuadrantv1beta2.ContextSelector{
Counters: []kuadrantv1beta3.ContextSelector{
"request.path",
},
Rates: []kuadrantv1beta2.Rate{
Rates: []kuadrantv1beta3.Rate{
{
Limit: 5,
Duration: 10,
Expand All @@ -145,7 +146,7 @@ func testRLP_1Limit_1Rate_1Counter(ns, name string) *kuadrantv1beta2.RateLimitPo
func TestLimitadorRateLimitsFromRLP(t *testing.T) {
testCases := []struct {
name string
rlp *kuadrantv1beta2.RateLimitPolicy
rlp *kuadrantv1beta3.RateLimitPolicy
expected []limitadorv1alpha1.RateLimit
}{
{
Expand Down Expand Up @@ -244,78 +245,78 @@ func TestLimitadorRateLimitsFromRLP(t *testing.T) {
func TestConvertRateIntoSeconds(t *testing.T) {
testCases := []struct {
name string
rate kuadrantv1beta2.Rate
rate kuadrantv1beta3.Rate
expectedMaxValue int
expectedSeconds int
}{
{
name: "seconds",
rate: kuadrantv1beta2.Rate{
Limit: 5, Duration: 2, Unit: kuadrantv1beta2.TimeUnit("second"),
rate: kuadrantv1beta3.Rate{
Limit: 5, Duration: 2, Unit: kuadrantv1beta3.TimeUnit("second"),
},
expectedMaxValue: 5,
expectedSeconds: 2,
},
{
name: "minutes",
rate: kuadrantv1beta2.Rate{
Limit: 5, Duration: 2, Unit: kuadrantv1beta2.TimeUnit("minute"),
rate: kuadrantv1beta3.Rate{
Limit: 5, Duration: 2, Unit: kuadrantv1beta3.TimeUnit("minute"),
},
expectedMaxValue: 5,
expectedSeconds: 2 * 60,
},
{
name: "hours",
rate: kuadrantv1beta2.Rate{
Limit: 5, Duration: 2, Unit: kuadrantv1beta2.TimeUnit("hour"),
rate: kuadrantv1beta3.Rate{
Limit: 5, Duration: 2, Unit: kuadrantv1beta3.TimeUnit("hour"),
},
expectedMaxValue: 5,
expectedSeconds: 2 * 60 * 60,
},
{
name: "day",
rate: kuadrantv1beta2.Rate{
Limit: 5, Duration: 2, Unit: kuadrantv1beta2.TimeUnit("day"),
rate: kuadrantv1beta3.Rate{
Limit: 5, Duration: 2, Unit: kuadrantv1beta3.TimeUnit("day"),
},
expectedMaxValue: 5,
expectedSeconds: 2 * 60 * 60 * 24,
},
{
name: "negative limit",
rate: kuadrantv1beta2.Rate{
Limit: -5, Duration: 2, Unit: kuadrantv1beta2.TimeUnit("second"),
rate: kuadrantv1beta3.Rate{
Limit: -5, Duration: 2, Unit: kuadrantv1beta3.TimeUnit("second"),
},
expectedMaxValue: 0,
expectedSeconds: 2,
},
{
name: "negative duration",
rate: kuadrantv1beta2.Rate{
Limit: 5, Duration: -2, Unit: kuadrantv1beta2.TimeUnit("second"),
rate: kuadrantv1beta3.Rate{
Limit: 5, Duration: -2, Unit: kuadrantv1beta3.TimeUnit("second"),
},
expectedMaxValue: 5,
expectedSeconds: 0,
},
{
name: "limit is 0",
rate: kuadrantv1beta2.Rate{
Limit: 0, Duration: 2, Unit: kuadrantv1beta2.TimeUnit("second"),
rate: kuadrantv1beta3.Rate{
Limit: 0, Duration: 2, Unit: kuadrantv1beta3.TimeUnit("second"),
},
expectedMaxValue: 0,
expectedSeconds: 2,
},
{
name: "rate is 0",
rate: kuadrantv1beta2.Rate{
Limit: 5, Duration: 0, Unit: kuadrantv1beta2.TimeUnit("second"),
rate: kuadrantv1beta3.Rate{
Limit: 5, Duration: 0, Unit: kuadrantv1beta3.TimeUnit("second"),
},
expectedMaxValue: 5,
expectedSeconds: 0,
},
{
name: "unexpected time unit",
rate: kuadrantv1beta2.Rate{
Limit: 5, Duration: 2, Unit: kuadrantv1beta2.TimeUnit("unknown"),
rate: kuadrantv1beta3.Rate{
Limit: 5, Duration: 2, Unit: kuadrantv1beta3.TimeUnit("unknown"),
},
expectedMaxValue: 5,
expectedSeconds: 0,
Expand Down
Loading

0 comments on commit ea3757b

Please sign in to comment.