@@ -57,14 +57,15 @@ func TestPublish(t *testing.T) {
5757 destination := "test-channel"
5858
5959 tests := []struct {
60- name string
61- authorizer * mock_authorizer
62- sender * mock_sender
63- expect_err error
64- expect_send bool
65- expect_payload app.Payload
66- expect_channel string
67- expect_signature app.Signature
60+ name string
61+ authorizer * mock_authorizer
62+ override_authorizer * mock_authorizer
63+ sender * mock_sender
64+ expect_err error
65+ expect_send bool
66+ expect_payload app.Payload
67+ expect_channel string
68+ expect_signature app.Signature
6869 }{
6970 {
7071 name : "success" ,
@@ -83,6 +84,17 @@ func TestPublish(t *testing.T) {
8384 expect_err : auth_err ,
8485 expect_send : false ,
8586 },
87+ {
88+ name : "override authorizer is used instead of default" ,
89+ authorizer : & mock_authorizer {err : auth_err },
90+ override_authorizer : & mock_authorizer {signature : app.Signature {"Authorization" : "override-sig" }},
91+ sender : & mock_sender {},
92+ expect_err : nil ,
93+ expect_send : true ,
94+ expect_payload : payload ,
95+ expect_channel : destination ,
96+ expect_signature : app.Signature {"Authorization" : "override-sig" },
97+ },
8698 {
8799 name : "writer error is returned" ,
88100 authorizer : & mock_authorizer {signature : signature },
@@ -100,10 +112,15 @@ func TestPublish(t *testing.T) {
100112 frame := & mockFrameBuilder {built_frame : mock_frame {}}
101113 usecase := publish .NewPublishMessageUsecase (tt .authorizer , tt .sender )
102114
115+ var override_authorizer app.RequestAuthorizer
116+ if tt .override_authorizer != nil {
117+ override_authorizer = tt .override_authorizer
118+ }
103119 err := usecase .Publish (context .Background (), publish.PublishCommandInput {
104120 Destination : destination ,
105121 Payload : payload ,
106122 Frame : frame ,
123+ Authorizer : override_authorizer ,
107124 })
108125
109126 if ! errors .Is (err , tt .expect_err ) {
0 commit comments