github.com/cloud-green/juju@v0.0.0-20151002100041-a00291338d3d/state/lease/client_validation_test.go (about)

     1  // Copyright 2015 Canonical Ltd.
     2  // Licensed under the AGPLv3, see LICENCE file for details.
     3  
     4  package lease_test
     5  
     6  import (
     7  	"time"
     8  
     9  	gc "gopkg.in/check.v1"
    10  
    11  	"github.com/juju/juju/state/lease"
    12  )
    13  
    14  // ClientValidationSuite sends bad data into all of Client's methods.
    15  type ClientValidationSuite struct {
    16  	FixtureSuite
    17  }
    18  
    19  var _ = gc.Suite(&ClientValidationSuite{})
    20  
    21  func (s *ClientValidationSuite) TestNewClientId(c *gc.C) {
    22  	fix := s.EasyFixture(c)
    23  	fix.Config.Id = "$bad"
    24  	_, err := lease.NewClient(fix.Config)
    25  	c.Check(err, gc.ErrorMatches, "invalid id: string contains forbidden characters")
    26  }
    27  
    28  func (s *ClientValidationSuite) TestNewClientNamespace(c *gc.C) {
    29  	fix := s.EasyFixture(c)
    30  	fix.Config.Namespace = "$bad"
    31  	_, err := lease.NewClient(fix.Config)
    32  	c.Check(err, gc.ErrorMatches, "invalid namespace: string contains forbidden characters")
    33  }
    34  
    35  func (s *ClientValidationSuite) TestNewClientCollection(c *gc.C) {
    36  	fix := s.EasyFixture(c)
    37  	fix.Config.Collection = "$bad"
    38  	_, err := lease.NewClient(fix.Config)
    39  	c.Check(err, gc.ErrorMatches, "invalid collection: string contains forbidden characters")
    40  }
    41  
    42  func (s *ClientValidationSuite) TestNewClientMongo(c *gc.C) {
    43  	fix := s.EasyFixture(c)
    44  	fix.Config.Mongo = nil
    45  	_, err := lease.NewClient(fix.Config)
    46  	c.Check(err, gc.ErrorMatches, "missing mongo")
    47  }
    48  
    49  func (s *ClientValidationSuite) TestNewClientClock(c *gc.C) {
    50  	fix := s.EasyFixture(c)
    51  	fix.Config.Clock = nil
    52  	_, err := lease.NewClient(fix.Config)
    53  	c.Check(err, gc.ErrorMatches, "missing clock")
    54  }
    55  
    56  func (s *ClientValidationSuite) TestClaimLeaseName(c *gc.C) {
    57  	fix := s.EasyFixture(c)
    58  	err := fix.Client.ClaimLease("$name", lease.Request{"holder", time.Minute})
    59  	c.Check(err, gc.ErrorMatches, "invalid name: string contains forbidden characters")
    60  }
    61  
    62  func (s *ClientValidationSuite) TestClaimLeaseHolder(c *gc.C) {
    63  	fix := s.EasyFixture(c)
    64  	err := fix.Client.ClaimLease("name", lease.Request{"$holder", time.Minute})
    65  	c.Check(err, gc.ErrorMatches, "invalid request: invalid holder: string contains forbidden characters")
    66  }
    67  
    68  func (s *ClientValidationSuite) TestClaimLeaseDuration(c *gc.C) {
    69  	fix := s.EasyFixture(c)
    70  	err := fix.Client.ClaimLease("name", lease.Request{"holder", 0})
    71  	c.Check(err, gc.ErrorMatches, "invalid request: invalid duration")
    72  }
    73  
    74  func (s *ClientValidationSuite) TestExtendLeaseName(c *gc.C) {
    75  	fix := s.EasyFixture(c)
    76  	err := fix.Client.ExtendLease("$name", lease.Request{"holder", time.Minute})
    77  	c.Check(err, gc.ErrorMatches, "invalid name: string contains forbidden characters")
    78  }
    79  
    80  func (s *ClientValidationSuite) TestExtendLeaseHolder(c *gc.C) {
    81  	fix := s.EasyFixture(c)
    82  	err := fix.Client.ExtendLease("name", lease.Request{"$holder", time.Minute})
    83  	c.Check(err, gc.ErrorMatches, "invalid request: invalid holder: string contains forbidden characters")
    84  }
    85  
    86  func (s *ClientValidationSuite) TestExtendLeaseDuration(c *gc.C) {
    87  	fix := s.EasyFixture(c)
    88  	err := fix.Client.ExtendLease("name", lease.Request{"holder", 0})
    89  	c.Check(err, gc.ErrorMatches, "invalid request: invalid duration")
    90  }
    91  
    92  func (s *ClientValidationSuite) TestExpireLeaseName(c *gc.C) {
    93  	fix := s.EasyFixture(c)
    94  	err := fix.Client.ExpireLease("$name")
    95  	c.Check(err, gc.ErrorMatches, "invalid name: string contains forbidden characters")
    96  }