...
1
16
17 package resourceclaimparameters
18
19 import (
20 "testing"
21
22 metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
23 genericapirequest "k8s.io/apiserver/pkg/endpoints/request"
24 "k8s.io/kubernetes/pkg/apis/resource"
25 )
26
27 var resourceClaimParameters = &resource.ResourceClaimParameters{
28 ObjectMeta: metav1.ObjectMeta{
29 Name: "valid",
30 Namespace: "ns",
31 },
32 }
33
34 func TestClassStrategy(t *testing.T) {
35 if !Strategy.NamespaceScoped() {
36 t.Errorf("ResourceClaimParameters must be namespace scoped")
37 }
38 if Strategy.AllowCreateOnUpdate() {
39 t.Errorf("ResourceClaimParameters should not allow create on update")
40 }
41 }
42
43 func TestClassStrategyCreate(t *testing.T) {
44 ctx := genericapirequest.NewDefaultContext()
45 resourceClaimParameters := resourceClaimParameters.DeepCopy()
46
47 Strategy.PrepareForCreate(ctx, resourceClaimParameters)
48 errs := Strategy.Validate(ctx, resourceClaimParameters)
49 if len(errs) != 0 {
50 t.Errorf("unexpected error validating for create %v", errs)
51 }
52 }
53
54 func TestClassStrategyUpdate(t *testing.T) {
55 t.Run("no-changes-okay", func(t *testing.T) {
56 ctx := genericapirequest.NewDefaultContext()
57 resourceClaimParameters := resourceClaimParameters.DeepCopy()
58 newObj := resourceClaimParameters.DeepCopy()
59 newObj.ResourceVersion = "4"
60
61 Strategy.PrepareForUpdate(ctx, newObj, resourceClaimParameters)
62 errs := Strategy.ValidateUpdate(ctx, newObj, resourceClaimParameters)
63 if len(errs) != 0 {
64 t.Errorf("unexpected validation errors: %v", errs)
65 }
66 })
67
68 t.Run("name-change-not-allowed", func(t *testing.T) {
69 ctx := genericapirequest.NewDefaultContext()
70 resourceClaimParameters := resourceClaimParameters.DeepCopy()
71 newObj := resourceClaimParameters.DeepCopy()
72 newObj.Name += "-2"
73 newObj.ResourceVersion = "4"
74
75 Strategy.PrepareForUpdate(ctx, newObj, resourceClaimParameters)
76 errs := Strategy.ValidateUpdate(ctx, newObj, resourceClaimParameters)
77 if len(errs) == 0 {
78 t.Errorf("expected a validation error")
79 }
80 })
81 }
82
View as plain text