...
1
16
17 package testutil
18
19 import (
20 cmapi "github.com/cert-manager/cert-manager/pkg/apis/certmanager/v1"
21 cmmeta "github.com/cert-manager/cert-manager/pkg/apis/meta/v1"
22 metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
23 "k8s.io/utils/clock"
24
25 "github.com/cert-manager/issuer-lib/conditions"
26 "github.com/cert-manager/issuer-lib/internal/testapi/api"
27 )
28
29 type TestIssuerModifier func(*api.TestIssuer)
30
31 func TestIssuer(name string, mods ...TestIssuerModifier) *api.TestIssuer {
32 c := &api.TestIssuer{
33 TypeMeta: metav1.TypeMeta{
34 Kind: "TestIssuer",
35 APIVersion: api.SchemeGroupVersion.Identifier(),
36 },
37 ObjectMeta: metav1.ObjectMeta{
38 Name: name,
39 },
40 }
41 for _, mod := range mods {
42 mod(c)
43 }
44 return c
45 }
46
47 func TestIssuerFrom(cr *api.TestIssuer, mods ...TestIssuerModifier) *api.TestIssuer {
48 cr = cr.DeepCopy()
49 for _, mod := range mods {
50 mod(cr)
51 }
52 return cr
53 }
54
55 func SetTestIssuerNamespace(namespace string) TestIssuerModifier {
56 return func(si *api.TestIssuer) {
57 si.Namespace = namespace
58 }
59 }
60
61 func SetTestIssuerGeneration(generation int64) TestIssuerModifier {
62 return func(si *api.TestIssuer) {
63 si.Generation = generation
64 }
65 }
66
67 func SetTestIssuerStatusCondition(
68 clock clock.PassiveClock,
69 conditionType cmapi.IssuerConditionType,
70 status cmmeta.ConditionStatus,
71 reason, message string,
72 ) TestIssuerModifier {
73 return func(si *api.TestIssuer) {
74 conditions.SetIssuerStatusCondition(
75 clock,
76 si.Status.Conditions,
77 &si.Status.Conditions,
78 si.Generation,
79 conditionType,
80 status,
81 reason,
82 message,
83 )
84 }
85 }
86
87 type TestClusterIssuerModifier func(*api.TestClusterIssuer)
88
89 func TestClusterIssuer(name string, mods ...TestClusterIssuerModifier) *api.TestClusterIssuer {
90 c := &api.TestClusterIssuer{
91 TypeMeta: metav1.TypeMeta{
92 Kind: "TestClusterIssuer",
93 APIVersion: api.SchemeGroupVersion.Identifier(),
94 },
95 ObjectMeta: metav1.ObjectMeta{
96 Name: name,
97 },
98 }
99 for _, mod := range mods {
100 mod(c)
101 }
102 return c
103 }
104
105 func TestClusterIssuerFrom(cr *api.TestClusterIssuer, mods ...TestClusterIssuerModifier) *api.TestClusterIssuer {
106 cr = cr.DeepCopy()
107 for _, mod := range mods {
108 mod(cr)
109 }
110 return cr
111 }
112
113 func SetTestClusterIssuerGeneration(generation int64) TestClusterIssuerModifier {
114 return func(si *api.TestClusterIssuer) {
115 si.Generation = generation
116 }
117 }
118
119 func SetTestClusterIssuerStatusCondition(
120 clock clock.PassiveClock,
121 conditionType cmapi.IssuerConditionType,
122 status cmmeta.ConditionStatus,
123 reason, message string,
124 ) TestClusterIssuerModifier {
125 return func(si *api.TestClusterIssuer) {
126 conditions.SetIssuerStatusCondition(
127 clock,
128 si.Status.Conditions,
129 &si.Status.Conditions,
130 si.Generation,
131 conditionType,
132 status,
133 reason,
134 message,
135 )
136 }
137 }
138
View as plain text