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 }