(t *testing.T)
| 531 | var _ SCRAMClient = &MockSCRAMClient{} |
| 532 | |
| 533 | func TestSASLSCRAMSHAXXX(t *testing.T) { |
| 534 | testTable := []struct { |
| 535 | name string |
| 536 | mockHandshakeErr KError |
| 537 | mockSASLAuthErr KError |
| 538 | expectClientErr bool |
| 539 | scramClient *MockSCRAMClient |
| 540 | scramChallengeResp string |
| 541 | }{ |
| 542 | { |
| 543 | name: "SASL/SCRAMSHAXXX successful authentication", |
| 544 | mockHandshakeErr: ErrNoError, |
| 545 | scramClient: &MockSCRAMClient{}, |
| 546 | scramChallengeResp: "pong", |
| 547 | }, |
| 548 | { |
| 549 | name: "SASL/SCRAMSHAXXX SCRAM client step error client", |
| 550 | mockHandshakeErr: ErrNoError, |
| 551 | mockSASLAuthErr: ErrNoError, |
| 552 | scramClient: &MockSCRAMClient{}, |
| 553 | scramChallengeResp: "gong", |
| 554 | expectClientErr: true, |
| 555 | }, |
| 556 | { |
| 557 | name: "SASL/SCRAMSHAXXX server authentication error", |
| 558 | mockHandshakeErr: ErrNoError, |
| 559 | mockSASLAuthErr: ErrSASLAuthenticationFailed, |
| 560 | scramClient: &MockSCRAMClient{}, |
| 561 | scramChallengeResp: "pong", |
| 562 | }, |
| 563 | { |
| 564 | name: "SASL/SCRAMSHAXXX unsupported SCRAM mechanism", |
| 565 | mockHandshakeErr: ErrUnsupportedSASLMechanism, |
| 566 | mockSASLAuthErr: ErrNoError, |
| 567 | scramClient: &MockSCRAMClient{}, |
| 568 | scramChallengeResp: "pong", |
| 569 | }, |
| 570 | } |
| 571 | |
| 572 | for i, test := range testTable { |
| 573 | t.Run(test.name, func(t *testing.T) { |
| 574 | // mockBroker mocks underlying network logic and broker responses |
| 575 | mockBroker := NewMockBroker(t, 0) |
| 576 | broker := NewBroker(mockBroker.Addr()) |
| 577 | // broker executes SASL requests against mockBroker |
| 578 | broker.requestRate = metrics.NilMeter{} |
| 579 | broker.outgoingByteRate = metrics.NilMeter{} |
| 580 | broker.incomingByteRate = metrics.NilMeter{} |
| 581 | broker.requestSize = metrics.NilHistogram{} |
| 582 | broker.responseSize = metrics.NilHistogram{} |
| 583 | broker.responseRate = metrics.NilMeter{} |
| 584 | broker.requestLatency = metrics.NilHistogram{} |
| 585 | broker.requestsInFlight = metrics.NilCounter{} |
| 586 | |
| 587 | mockSASLAuthResponse := NewMockSaslAuthenticateResponse(t).SetAuthBytes([]byte(test.scramChallengeResp)) |
| 588 | mockSASLHandshakeResponse := NewMockSaslHandshakeResponse(t).SetEnabledMechanisms([]string{SASLTypeSCRAMSHA256, SASLTypeSCRAMSHA512}) |
| 589 | |
| 590 | if !errors.Is(test.mockSASLAuthErr, ErrNoError) { |
nothing calls this directly
no test coverage detected