github.com/juju/juju@v0.0.0-20240430160146-1752b71fcf00/apiserver/auditconfig_test.go (about)

     1  // Copyright 2018 Canonical Ltd.
     2  // Licensed under the AGPLv3, see LICENCE file for details.
     3  
     4  package apiserver_test
     5  
     6  import (
     7  	"github.com/juju/collections/set"
     8  	gc "gopkg.in/check.v1"
     9  
    10  	"github.com/juju/juju/apiserver"
    11  	"github.com/juju/juju/core/auditlog"
    12  )
    13  
    14  type auditConfigSuite struct {
    15  	apiserverBaseSuite
    16  }
    17  
    18  var _ = gc.Suite(&auditConfigSuite{})
    19  
    20  func (s *auditConfigSuite) TestUsesGetAuditConfig(c *gc.C) {
    21  	var calls int
    22  	s.config.GetAuditConfig = func() auditlog.Config {
    23  		calls++
    24  		return auditlog.Config{
    25  			Enabled:        true,
    26  			ExcludeMethods: set.NewStrings("Midlake.Bandits"),
    27  		}
    28  	}
    29  
    30  	srv := s.newServer(c, s.config)
    31  
    32  	auditConfig := srv.GetAuditConfig()
    33  	c.Assert(auditConfig, gc.DeepEquals, auditlog.Config{
    34  		Enabled:        true,
    35  		ExcludeMethods: set.NewStrings("Midlake.Bandits"),
    36  	})
    37  	c.Assert(calls, gc.Equals, 1)
    38  }
    39  
    40  func (s *auditConfigSuite) TestNewServerValidatesConfig(c *gc.C) {
    41  	s.config.GetAuditConfig = nil
    42  
    43  	srv, err := apiserver.NewServer(s.config)
    44  	c.Assert(err, gc.ErrorMatches, "missing GetAuditConfig not valid")
    45  	c.Assert(srv, gc.IsNil)
    46  }