MCPcopy
hub / github.com/IBM/sarama / TestClusterAdminCreateAcls

Function TestClusterAdminCreateAcls

admin_test.go:1404–1453  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

1402}
1403
1404func TestClusterAdminCreateAcls(t *testing.T) {
1405 resource := Resource{ResourceType: AclResourceTopic, ResourceName: "my_topic"}
1406 acl := Acl{Host: "localhost", Operation: AclOperationAlter, PermissionType: AclPermissionAny}
1407 createOK := func(req *request) encoderWithHeader { return NewMockCreateAclsResponse(t).For(req.body) }
1408 notController := func(req *request) encoderWithHeader {
1409 r := req.body.(*CreateAclsRequest)
1410 rsp := &CreateAclsResponse{Version: r.version()}
1411 for range r.AclCreations {
1412 rsp.AclCreationResponses = append(rsp.AclCreationResponses, &AclCreationResponse{Err: ErrNotController})
1413 }
1414 return rsp
1415 }
1416
1417 t.Run("creates acls", func(t *testing.T) {
1418 admin := singleBrokerAdmin(t, V1_0_0_0, map[string]requestHandlerFunc{
1419 "CreateAclsRequest": createOK,
1420 })
1421
1422 rACLs := []*ResourceAcls{
1423 {
1424 Resource: resource,
1425 Acls: []*Acl{&acl},
1426 },
1427 {
1428 Resource: Resource{ResourceType: AclResourceTopic, ResourceName: "your_topic"},
1429 Acls: []*Acl{&acl},
1430 },
1431 }
1432
1433 err := admin.CreateACLs(rACLs)
1434 require.NoError(t, err)
1435 })
1436
1437 t.Run("retries on stale controller", func(t *testing.T) {
1438 admin, retriedOnNewController := staleControllerAdmin(t, V1_0_0_0, "CreateAclsRequest", notController, createOK)
1439
1440 err := admin.CreateACL(resource, acl)
1441 require.NoError(t, err)
1442 assert.True(t, retriedOnNewController(), "expected broker 2 to receive the retried request")
1443 })
1444
1445 t.Run("returns error when retries exhausted", func(t *testing.T) {
1446 admin, retriedOnNewController := staleControllerAdmin(t, V1_0_0_0, "CreateAclsRequest", notController, notController)
1447
1448 err := admin.CreateACL(resource, acl)
1449 require.Error(t, err)
1450 require.ErrorIs(t, err, ErrNotController)
1451 assert.True(t, retriedOnNewController(), "expected broker 2 to receive the retried request")
1452 })
1453}
1454
1455// singleBrokerAdmin wires a single mock broker that names itself controller,
1456// installs the given per-request handlers, and returns a ready admin client.

Callers

nothing calls this directly

Calls 9

singleBrokerAdminFunction · 0.85
staleControllerAdminFunction · 0.85
RunMethod · 0.80
ForMethod · 0.65
versionMethod · 0.65
CreateACLsMethod · 0.65
CreateACLMethod · 0.65
ErrorMethod · 0.65

Tested by

no test coverage detected