Skip to content

Commit 7bdd5dc

Browse files
committed
chore(rabbitmq): refactor assertEntity in tests
Signed-off-by: Matthieu MOREL <[email protected]>
1 parent 09a5482 commit 7bdd5dc

File tree

1 file changed

+26
-46
lines changed

1 file changed

+26
-46
lines changed

modules/rabbitmq/rabbitmq_test.go

Lines changed: 26 additions & 46 deletions
Original file line numberDiff line numberDiff line change
@@ -212,79 +212,59 @@ func TestRunContainer_withAllSettings(t *testing.T) {
212212
testcontainers.CleanupContainer(t, rabbitmqContainer)
213213
require.NoError(t, err)
214214

215-
require.True(t, assertEntity(t, rabbitmqContainer, "queues", "queue1", "queue2", "queue3", "queue4"))
216-
require.True(t, assertEntity(t, rabbitmqContainer, "exchanges", "direct-exchange", "topic-exchange", "topic-exchange-2", "topic-exchange-3", "topic-exchange-4"))
217-
require.True(t, assertEntity(t, rabbitmqContainer, "users", "user1", "user2"))
218-
require.True(t, assertEntity(t, rabbitmqContainer, "policies", "max length policy", "alternate exchange policy"))
219-
require.True(t, assertEntityWithVHost(t, rabbitmqContainer, "policies", 2, "max length policy", "alternate exchange policy"))
220-
require.True(t, assertEntity(t, rabbitmqContainer, "operator_policies", "operator policy 1"))
221-
require.True(t, assertPluginIsEnabled(t, rabbitmqContainer, "rabbitmq_shovel", "rabbitmq_random_exchange"))
215+
requireEntity(t, rabbitmqContainer, "queues", "queue1", "queue2", "queue3", "queue4")
216+
requireEntity(t, rabbitmqContainer, "exchanges", "direct-exchange", "topic-exchange", "topic-exchange-2", "topic-exchange-3", "topic-exchange-4")
217+
requireEntity(t, rabbitmqContainer, "users", "user1", "user2")
218+
requireEntity(t, rabbitmqContainer, "policies", "max length policy", "alternate exchange policy")
219+
requireEntityWithVHost(t, rabbitmqContainer, "policies", 2, "max length policy", "alternate exchange policy")
220+
requireEntity(t, rabbitmqContainer, "operator_policies", "operator policy 1")
221+
requirePluginIsEnabled(t, rabbitmqContainer, "rabbitmq_shovel", "rabbitmq_random_exchange")
222222
}
223223

224-
func assertEntity(t *testing.T, container testcontainers.Container, listCommand string, entities ...string) bool {
224+
func requireContainerExec(t *testing.T, container testcontainers.Container, cmd []string) string {
225225
t.Helper()
226226

227-
ctx := context.Background()
228-
229-
cmd := []string{"rabbitmqadmin", "list", listCommand}
230-
231-
_, out, err := container.Exec(ctx, cmd)
227+
_, out, err := container.Exec(context.Background(), cmd)
232228
require.NoError(t, err)
233229

234-
check, err := io.ReadAll(out)
230+
checkBytes, err := io.ReadAll(out)
235231
require.NoError(t, err)
232+
return string(checkBytes)
233+
}
236234

235+
func requireEntity(t *testing.T, container testcontainers.Container, listCommand string, entities ...string) {
236+
t.Helper()
237+
238+
cmd := []string{"rabbitmqadmin", "list", listCommand}
239+
240+
check := requireContainerExec(t, container, cmd)
237241
for _, e := range entities {
238-
if !strings.Contains(string(check), e) {
239-
return false
240-
}
242+
require.Contains(t, check, e)
241243
}
242-
243-
return true
244244
}
245245

246-
func assertEntityWithVHost(t *testing.T, container testcontainers.Container, listCommand string, vhostID int, entities ...string) bool {
246+
func requireEntityWithVHost(t *testing.T, container testcontainers.Container, listCommand string, vhostID int, entities ...string) {
247247
t.Helper()
248248

249-
ctx := context.Background()
250-
251249
cmd := []string{"rabbitmqadmin", "list", listCommand}
252250
if vhostID > 0 {
253251
cmd = append(cmd, fmt.Sprintf("--vhost=vhost%d", vhostID))
254252
}
255253

256-
_, out, err := container.Exec(ctx, cmd)
257-
require.NoError(t, err)
258-
259-
check, err := io.ReadAll(out)
260-
require.NoError(t, err)
261-
254+
check := requireContainerExec(t, container, cmd)
262255
for _, e := range entities {
263-
if !strings.Contains(string(check), e) {
264-
return false
265-
}
256+
require.Contains(t, check, e)
266257
}
267-
268-
return true
269258
}
270259

271-
func assertPluginIsEnabled(t *testing.T, container testcontainers.Container, plugins ...string) bool {
260+
func requirePluginIsEnabled(t *testing.T, container testcontainers.Container, plugins ...string) {
272261
t.Helper()
273262

274-
ctx := context.Background()
275-
276263
for _, plugin := range plugins {
277264

278-
_, out, err := container.Exec(ctx, []string{"rabbitmq-plugins", "is_enabled", plugin})
279-
require.NoError(t, err)
265+
cmd := []string{"rabbitmq-plugins", "is_enabled", plugin}
280266

281-
check, err := io.ReadAll(out)
282-
require.NoError(t, err)
283-
284-
if !strings.Contains(string(check), plugin+" is enabled") {
285-
return false
286-
}
267+
check := requireContainerExec(t, container, cmd)
268+
require.Contains(t, check, plugin+" is enabled")
287269
}
288-
289-
return true
290270
}

0 commit comments

Comments
 (0)