mirror of https://github.com/grafana/grafana.git
				
				
				
			
		
			
				
	
	
		
			104 lines
		
	
	
		
			2.3 KiB
		
	
	
	
		
			Go
		
	
	
	
			
		
		
	
	
			104 lines
		
	
	
		
			2.3 KiB
		
	
	
	
		
			Go
		
	
	
	
| package ldap
 | |
| 
 | |
| import (
 | |
| 	"crypto/tls"
 | |
| 
 | |
| 	"github.com/go-ldap/ldap/v3"
 | |
| 
 | |
| 	//TODO(sh0rez): remove once import cycle resolved
 | |
| 	_ "github.com/grafana/grafana/pkg/api/response"
 | |
| )
 | |
| 
 | |
| type searchFunc = func(request *ldap.SearchRequest) (*ldap.SearchResult, error)
 | |
| 
 | |
| // MockConnection struct for testing
 | |
| type MockConnection struct {
 | |
| 	SearchFunc       searchFunc
 | |
| 	SearchCalled     bool
 | |
| 	SearchAttributes []string
 | |
| 
 | |
| 	AddParams *ldap.AddRequest
 | |
| 	AddCalled bool
 | |
| 
 | |
| 	DelParams *ldap.DelRequest
 | |
| 	DelCalled bool
 | |
| 
 | |
| 	CloseCalled bool
 | |
| 
 | |
| 	UnauthenticatedBindCalled bool
 | |
| 	BindCalled                bool
 | |
| 
 | |
| 	BindProvider                func(username, password string) error
 | |
| 	UnauthenticatedBindProvider func() error
 | |
| }
 | |
| 
 | |
| // Bind mocks Bind connection function
 | |
| func (c *MockConnection) Bind(username, password string) error {
 | |
| 	c.BindCalled = true
 | |
| 
 | |
| 	if c.BindProvider != nil {
 | |
| 		return c.BindProvider(username, password)
 | |
| 	}
 | |
| 
 | |
| 	return nil
 | |
| }
 | |
| 
 | |
| // UnauthenticatedBind mocks UnauthenticatedBind connection function
 | |
| func (c *MockConnection) UnauthenticatedBind(username string) error {
 | |
| 	c.UnauthenticatedBindCalled = true
 | |
| 
 | |
| 	if c.UnauthenticatedBindProvider != nil {
 | |
| 		return c.UnauthenticatedBindProvider()
 | |
| 	}
 | |
| 
 | |
| 	return nil
 | |
| }
 | |
| 
 | |
| // Close mocks Close connection function
 | |
| func (c *MockConnection) Close() {
 | |
| 	c.CloseCalled = true
 | |
| }
 | |
| 
 | |
| func (c *MockConnection) setSearchResult(result *ldap.SearchResult) {
 | |
| 	c.SearchFunc = func(request *ldap.SearchRequest) (*ldap.SearchResult, error) {
 | |
| 		return result, nil
 | |
| 	}
 | |
| }
 | |
| 
 | |
| func (c *MockConnection) setSearchError(err error) {
 | |
| 	c.SearchFunc = func(request *ldap.SearchRequest) (*ldap.SearchResult, error) {
 | |
| 		return nil, err
 | |
| 	}
 | |
| }
 | |
| 
 | |
| func (c *MockConnection) setSearchFunc(fn searchFunc) {
 | |
| 	c.SearchFunc = fn
 | |
| }
 | |
| 
 | |
| // Search mocks Search connection function
 | |
| func (c *MockConnection) Search(sr *ldap.SearchRequest) (*ldap.SearchResult, error) {
 | |
| 	c.SearchCalled = true
 | |
| 	c.SearchAttributes = sr.Attributes
 | |
| 
 | |
| 	return c.SearchFunc(sr)
 | |
| }
 | |
| 
 | |
| // Add mocks Add connection function
 | |
| func (c *MockConnection) Add(request *ldap.AddRequest) error {
 | |
| 	c.AddCalled = true
 | |
| 	c.AddParams = request
 | |
| 	return nil
 | |
| }
 | |
| 
 | |
| // Del mocks Del connection function
 | |
| func (c *MockConnection) Del(request *ldap.DelRequest) error {
 | |
| 	c.DelCalled = true
 | |
| 	c.DelParams = request
 | |
| 	return nil
 | |
| }
 | |
| 
 | |
| // StartTLS mocks StartTLS connection function
 | |
| func (c *MockConnection) StartTLS(*tls.Config) error {
 | |
| 	return nil
 | |
| }
 |