ldap_test_mocks.go 1.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384
  1. package ldap
  2. import (
  3. "crypto/tls"
  4. "gopkg.in/ldap.v3"
  5. )
  6. // MockConnection struct for testing
  7. type MockConnection struct {
  8. SearchResult *ldap.SearchResult
  9. SearchError error
  10. SearchCalled bool
  11. SearchAttributes []string
  12. AddParams *ldap.AddRequest
  13. AddCalled bool
  14. DelParams *ldap.DelRequest
  15. DelCalled bool
  16. bindProvider func(username, password string) error
  17. unauthenticatedBindProvider func(username string) error
  18. }
  19. // Bind mocks Bind connection function
  20. func (c *MockConnection) Bind(username, password string) error {
  21. if c.bindProvider != nil {
  22. return c.bindProvider(username, password)
  23. }
  24. return nil
  25. }
  26. // UnauthenticatedBind mocks UnauthenticatedBind connection function
  27. func (c *MockConnection) UnauthenticatedBind(username string) error {
  28. if c.unauthenticatedBindProvider != nil {
  29. return c.unauthenticatedBindProvider(username)
  30. }
  31. return nil
  32. }
  33. // Close mocks Close connection function
  34. func (c *MockConnection) Close() {}
  35. func (c *MockConnection) setSearchResult(result *ldap.SearchResult) {
  36. c.SearchResult = result
  37. }
  38. func (c *MockConnection) setSearchError(err error) {
  39. c.SearchError = err
  40. }
  41. // Search mocks Search connection function
  42. func (c *MockConnection) Search(sr *ldap.SearchRequest) (*ldap.SearchResult, error) {
  43. c.SearchCalled = true
  44. c.SearchAttributes = sr.Attributes
  45. if c.SearchError != nil {
  46. return nil, c.SearchError
  47. }
  48. return c.SearchResult, nil
  49. }
  50. // Add mocks Add connection function
  51. func (c *MockConnection) Add(request *ldap.AddRequest) error {
  52. c.AddCalled = true
  53. c.AddParams = request
  54. return nil
  55. }
  56. // Del mocks Del connection function
  57. func (c *MockConnection) Del(request *ldap.DelRequest) error {
  58. c.DelCalled = true
  59. c.DelParams = request
  60. return nil
  61. }
  62. // StartTLS mocks StartTLS connection function
  63. func (c *MockConnection) StartTLS(*tls.Config) error {
  64. return nil
  65. }