@@ -21,17 +21,52 @@ import (
2121 "slices"
2222 "testing"
2323
24+ "github.com/stretchr/testify/assert"
2425 "k8s.io/apimachinery/pkg/api/apitesting/fuzzer"
2526 runtimeserializer "k8s.io/apimachinery/pkg/runtime/serializer"
27+ "k8s.io/utils/ptr"
2628 "sigs.k8s.io/randfill"
2729
28- trustv1alpha2 "github.com/cert-manager/trust-manager/pkg/apis/trustmanager/v1alpha2"
30+ trustmanagerapi "github.com/cert-manager/trust-manager/pkg/apis/trustmanager/v1alpha2"
2931 utilconversion "github.com/cert-manager/trust-manager/pkg/util/conversion"
32+ "github.com/cert-manager/trust-manager/test/dummy"
3033)
3134
35+ func TestBundle_ConvertTo (t * testing.T ) {
36+ tests := map [string ]struct {
37+ src Bundle
38+ exp trustmanagerapi.ClusterBundle
39+ }{
40+ "multiple inline Bundle sources should be concatenated in ClusterBundle inLineCAs" : {
41+ src : Bundle {
42+ Spec : BundleSpec {
43+ Sources : []BundleSource {
44+ {InLine : ptr .To (dummy .TestCertificate1 )},
45+ {InLine : ptr .To (dummy .TestCertificate2 )},
46+ },
47+ },
48+ },
49+ exp : trustmanagerapi.ClusterBundle {
50+ Spec : trustmanagerapi.BundleSpec {
51+ InLineCAs : ptr .To (dummy .JoinCerts (dummy .TestCertificate1 , dummy .TestCertificate2 )),
52+ },
53+ },
54+ },
55+ }
56+
57+ for name , tt := range tests {
58+ t .Run (name , func (t * testing.T ) {
59+ dst := trustmanagerapi.ClusterBundle {}
60+ err := tt .src .ConvertTo (& dst )
61+ assert .NoError (t , err )
62+ assert .Equal (t , tt .exp , dst )
63+ })
64+ }
65+ }
66+
3267func TestFuzzyConversion (t * testing.T ) {
3368 t .Run ("for Bundle" , utilconversion .FuzzTestFunc (utilconversion.FuzzTestFuncInput {
34- Hub : & trustv1alpha2 .ClusterBundle {},
69+ Hub : & trustmanagerapi .ClusterBundle {},
3570 Spoke : & Bundle {},
3671 FuzzerFuncs : []fuzzer.FuzzerFuncs {fuzzFuncs },
3772 }))
@@ -107,23 +142,23 @@ func spokeBundleTargetFuzzer(obj *BundleTarget, c randfill.Continue) {
107142 }
108143}
109144
110- func hubBundleSourceFuzzer (obj * trustv1alpha2 .BundleSource , c randfill.Continue ) {
145+ func hubBundleSourceFuzzer (obj * trustmanagerapi .BundleSource , c randfill.Continue ) {
111146 c .FillNoCustom (obj )
112147
113148 // We only allow known kinds, so must normalize the source kind
114- kindSet := []string {trustv1alpha2 .ConfigMapKind , trustv1alpha2 .SecretKind }
149+ kindSet := []string {trustmanagerapi .ConfigMapKind , trustmanagerapi .SecretKind }
115150 obj .Kind = kindSet [rand .Intn (len (kindSet ))] //nolint:gosec
116151}
117152
118- func hubBundleTargetFuzzer (obj * trustv1alpha2 .BundleTarget , c randfill.Continue ) {
153+ func hubBundleTargetFuzzer (obj * trustmanagerapi .BundleTarget , c randfill.Continue ) {
119154 c .FillNoCustom (obj )
120155
121- normalizeTarget := func (target * trustv1alpha2 .KeyValueTarget ) * trustv1alpha2 .KeyValueTarget {
156+ normalizeTarget := func (target * trustmanagerapi .KeyValueTarget ) * trustmanagerapi .KeyValueTarget {
122157 if target == nil {
123158 return nil
124159 }
125160
126- target .Data = slices .DeleteFunc (target .Data , func (tkv trustv1alpha2 .TargetKeyValue ) bool {
161+ target .Data = slices .DeleteFunc (target .Data , func (tkv trustmanagerapi .TargetKeyValue ) bool {
127162 if tkv .Key == "" {
128163 // Key is a mandatory field
129164 return true
@@ -136,7 +171,7 @@ func hubBundleTargetFuzzer(obj *trustv1alpha2.BundleTarget, c randfill.Continue)
136171
137172 switch {
138173 case tkv .Password != nil :
139- tkv .Format = trustv1alpha2 .BundleFormatPKCS12
174+ tkv .Format = trustmanagerapi .BundleFormatPKCS12
140175 default :
141176 tkv .Format = ""
142177 tkv .Profile = ""
0 commit comments