@@ -30,6 +30,25 @@ func TestAuthentication(t *testing.T) {
3030 saramaPlaintext .Net .SASL .User = "jdoe"
3131 saramaPlaintext .Net .SASL .Password = "pass"
3232
33+ saramaSASLSCRAM256Config := & sarama.Config {}
34+ saramaSASLSCRAM256Config .Net .SASL .Enable = true
35+ saramaSASLSCRAM256Config .Net .SASL .User = "jdoe"
36+ saramaSASLSCRAM256Config .Net .SASL .Password = "pass"
37+ saramaSASLSCRAM256Config .Net .SASL .Mechanism = sarama .SASLTypeSCRAMSHA256
38+
39+ saramaSASLSCRAM512Config := & sarama.Config {}
40+ saramaSASLSCRAM512Config .Net .SASL .Enable = true
41+ saramaSASLSCRAM512Config .Net .SASL .User = "jdoe"
42+ saramaSASLSCRAM512Config .Net .SASL .Password = "pass"
43+ saramaSASLSCRAM512Config .Net .SASL .Mechanism = sarama .SASLTypeSCRAMSHA512
44+
45+ saramaSASLPLAINConfig := & sarama.Config {}
46+ saramaSASLPLAINConfig .Net .SASL .Enable = true
47+ saramaSASLPLAINConfig .Net .SASL .User = "jdoe"
48+ saramaSASLPLAINConfig .Net .SASL .Password = "pass"
49+
50+ saramaSASLPLAINConfig .Net .SASL .Mechanism = sarama .SASLTypePlaintext
51+
3352 saramaTLSCfg := & sarama.Config {}
3453 saramaTLSCfg .Net .TLS .Enable = true
3554 tlsClient := configtls.TLSClientSetting {}
@@ -77,6 +96,34 @@ func TestAuthentication(t *testing.T) {
7796 auth : Authentication {Kerberos : & KerberosConfig {UseKeyTab : true , KeyTabPath : "/path" }},
7897 saramaConfig : saramaKerberosKeyTabCfg ,
7998 },
99+ {
100+ auth : Authentication {SASL : & SASLConfig {Username : "jdoe" , Password : "pass" , Mechanism : "SCRAM-SHA-256" }},
101+ saramaConfig : saramaSASLSCRAM256Config ,
102+ },
103+ {
104+ auth : Authentication {SASL : & SASLConfig {Username : "jdoe" , Password : "pass" , Mechanism : "SCRAM-SHA-512" }},
105+ saramaConfig : saramaSASLSCRAM512Config ,
106+ },
107+
108+ {
109+ auth : Authentication {SASL : & SASLConfig {Username : "jdoe" , Password : "pass" , Mechanism : "PLAIN" }},
110+ saramaConfig : saramaSASLPLAINConfig ,
111+ },
112+ {
113+ auth : Authentication {SASL : & SASLConfig {Username : "jdoe" , Password : "pass" , Mechanism : "SCRAM-SHA-222" }},
114+ saramaConfig : saramaSASLSCRAM512Config ,
115+ err : "invalid SASL Mechanism" ,
116+ },
117+ {
118+ auth : Authentication {SASL : & SASLConfig {Username : "" , Password : "pass" , Mechanism : "SCRAM-SHA-512" }},
119+ saramaConfig : saramaSASLSCRAM512Config ,
120+ err : "username have to be provided" ,
121+ },
122+ {
123+ auth : Authentication {SASL : & SASLConfig {Username : "jdoe" , Password : "" , Mechanism : "SCRAM-SHA-512" }},
124+ saramaConfig : saramaSASLSCRAM512Config ,
125+ err : "password have to be provided" ,
126+ },
80127 }
81128 for _ , test := range tests {
82129 t .Run ("" , func (t * testing.T ) {
@@ -86,6 +133,8 @@ func TestAuthentication(t *testing.T) {
86133 require .Error (t , err )
87134 assert .Contains (t , err .Error (), test .err )
88135 } else {
136+ // equalizes SCRAMClientGeneratorFunc to do assertion with the same reference.
137+ config .Net .SASL .SCRAMClientGeneratorFunc = test .saramaConfig .Net .SASL .SCRAMClientGeneratorFunc
89138 assert .Equal (t , test .saramaConfig , config )
90139 }
91140 })
0 commit comments