Skip to content

Commit c7e3ac6

Browse files
committed
DRY up the manager factory and descriptor mocks
Replaces a bunch of repetitive code that constructs AWSResourceDescriptor and AWSResourceManagerFactory mocks with a single `managerFactoryMocks` function in the reconciler unit test.
1 parent 5224cd1 commit c7e3ac6

File tree

1 file changed

+35
-55
lines changed

1 file changed

+35
-55
lines changed

pkg/runtime/reconciler_test.go

Lines changed: 35 additions & 55 deletions
Original file line numberDiff line numberDiff line change
@@ -92,6 +92,34 @@ func reconcilerMocks(
9292
), kc
9393
}
9494

95+
func managerFactoryMocks(
96+
desired acktypes.AWSResource,
97+
latest acktypes.AWSResource,
98+
delta *ackcompare.Delta,
99+
) (
100+
*ackmocks.AWSResourceManagerFactory,
101+
*ackmocks.AWSResourceDescriptor,
102+
) {
103+
rd := &ackmocks.AWSResourceDescriptor{}
104+
rd.On("GroupKind").Return(
105+
&metav1.GroupKind{
106+
Group: "bookstore.services.k8s.aws",
107+
Kind: "fakeBook",
108+
},
109+
)
110+
rd.On("EmptyRuntimeObject").Return(
111+
&fakeBook{},
112+
)
113+
rd.On("IsManaged", desired).Return(true)
114+
115+
rmf := &ackmocks.AWSResourceManagerFactory{}
116+
rmf.On("ResourceDescriptor").Return(rd)
117+
118+
reg := ackrt.NewRegistry()
119+
reg.RegisterResourceManagerFactory(rmf)
120+
return rmf, rd
121+
}
122+
95123
func TestReconcilerUpdate(t *testing.T) {
96124
require := require.New(t)
97125

@@ -110,22 +138,6 @@ func TestReconcilerUpdate(t *testing.T) {
110138
latest.On("Identifiers").Return(ids)
111139
latest.On("Conditions").Return([]*ackv1alpha1.Condition{})
112140

113-
rd := &ackmocks.AWSResourceDescriptor{}
114-
rd.On("GroupKind").Return(
115-
&metav1.GroupKind{
116-
Group: "bookstore.services.k8s.aws",
117-
Kind: "fakeBook",
118-
},
119-
)
120-
rd.On("EmptyRuntimeObject").Return(
121-
&fakeBook{},
122-
)
123-
rd.On("Delta", desired, latest).Return(
124-
delta,
125-
).Once()
126-
rd.On("Delta", desired, latest).Return(ackcompare.NewDelta())
127-
rd.On("IsManaged", desired).Return(true)
128-
129141
rm := &ackmocks.AWSResourceManager{}
130142
rm.On("ReadOne", ctx, desired).Return(
131143
latest, nil,
@@ -134,11 +146,11 @@ func TestReconcilerUpdate(t *testing.T) {
134146
latest, nil,
135147
)
136148

137-
rmf := &ackmocks.AWSResourceManagerFactory{}
138-
rmf.On("ResourceDescriptor").Return(rd)
139-
140-
reg := ackrt.NewRegistry()
141-
reg.RegisterResourceManagerFactory(rmf)
149+
rmf, rd := managerFactoryMocks(desired, latest, delta)
150+
rd.On("Delta", desired, latest).Return(
151+
delta,
152+
).Once()
153+
rd.On("Delta", desired, latest).Return(ackcompare.NewDelta())
142154

143155
r, kc := reconcilerMocks(rmf)
144156

@@ -182,21 +194,11 @@ func TestReconcilerUpdate_PatchMetadataAndSpec_DiffInMetadata(t *testing.T) {
182194
// Note the change in annotaions
183195
latestMetaObj.SetAnnotations(map[string]string{"a": "b"})
184196

185-
rd := &ackmocks.AWSResourceDescriptor{}
186-
rd.On("GroupKind").Return(
187-
&metav1.GroupKind{
188-
Group: "bookstore.services.k8s.aws",
189-
Kind: "fakeBook",
190-
},
191-
)
192-
rd.On("EmptyRuntimeObject").Return(
193-
&fakeBook{},
194-
)
197+
rmf, rd := managerFactoryMocks(desired, latest, delta)
195198
rd.On("Delta", desired, latest).Return(
196199
delta,
197200
).Once()
198201
rd.On("Delta", desired, latest).Return(ackcompare.NewDelta())
199-
rd.On("IsManaged", desired).Return(true)
200202

201203
rm := &ackmocks.AWSResourceManager{}
202204
rm.On("ReadOne", ctx, desired).Return(
@@ -206,12 +208,6 @@ func TestReconcilerUpdate_PatchMetadataAndSpec_DiffInMetadata(t *testing.T) {
206208
latest, nil,
207209
)
208210

209-
rmf := &ackmocks.AWSResourceManagerFactory{}
210-
rmf.On("ResourceDescriptor").Return(rd)
211-
212-
reg := ackrt.NewRegistry()
213-
reg.RegisterResourceManagerFactory(rmf)
214-
215211
r, kc := reconcilerMocks(rmf)
216212

217213
statusWriter := &ctrlrtclientmock.StatusWriter{}
@@ -247,20 +243,10 @@ func TestReconcilerUpdate_PatchMetadataAndSpec_DiffInSpec(t *testing.T) {
247243
latest.On("Conditions").Return([]*ackv1alpha1.Condition{})
248244
// Note no change to metadata...
249245

250-
rd := &ackmocks.AWSResourceDescriptor{}
251-
rd.On("GroupKind").Return(
252-
&metav1.GroupKind{
253-
Group: "bookstore.services.k8s.aws",
254-
Kind: "fakeBook",
255-
},
256-
)
257-
rd.On("EmptyRuntimeObject").Return(
258-
&fakeBook{},
259-
)
246+
rmf, rd := managerFactoryMocks(desired, latest, delta)
260247
rd.On("Delta", desired, latest).Return(
261248
delta,
262249
)
263-
rd.On("IsManaged", desired).Return(true)
264250

265251
rm := &ackmocks.AWSResourceManager{}
266252
rm.On("ReadOne", ctx, desired).Return(
@@ -270,12 +256,6 @@ func TestReconcilerUpdate_PatchMetadataAndSpec_DiffInSpec(t *testing.T) {
270256
latest, nil,
271257
)
272258

273-
rmf := &ackmocks.AWSResourceManagerFactory{}
274-
rmf.On("ResourceDescriptor").Return(rd)
275-
276-
reg := ackrt.NewRegistry()
277-
reg.RegisterResourceManagerFactory(rmf)
278-
279259
r, kc := reconcilerMocks(rmf)
280260

281261
statusWriter := &ctrlrtclientmock.StatusWriter{}

0 commit comments

Comments
 (0)