github.com/makyo/juju@v0.0.0-20160425123129-2608902037e9/state/testing/policy.go (about) 1 // Copyright 2014 Canonical Ltd. 2 // Licensed under the AGPLv3, see LICENCE file for details. 3 4 package testing 5 6 import ( 7 "github.com/juju/errors" 8 9 "github.com/juju/juju/constraints" 10 "github.com/juju/juju/environs/config" 11 "github.com/juju/juju/state" 12 ) 13 14 type MockPolicy struct { 15 GetPrechecker func(*config.Config) (state.Prechecker, error) 16 GetConfigValidator func(string) (state.ConfigValidator, error) 17 GetEnvironCapability func(*config.Config) (state.EnvironCapability, error) 18 GetConstraintsValidator func(*config.Config, state.SupportedArchitecturesQuerier) (constraints.Validator, error) 19 GetInstanceDistributor func(*config.Config) (state.InstanceDistributor, error) 20 } 21 22 func (p *MockPolicy) Prechecker(cfg *config.Config) (state.Prechecker, error) { 23 if p.GetPrechecker != nil { 24 return p.GetPrechecker(cfg) 25 } 26 return nil, errors.NotImplementedf("Prechecker") 27 } 28 29 func (p *MockPolicy) ConfigValidator(providerType string) (state.ConfigValidator, error) { 30 if p.GetConfigValidator != nil { 31 return p.GetConfigValidator(providerType) 32 } 33 return nil, errors.NotImplementedf("ConfigValidator") 34 } 35 36 func (p *MockPolicy) EnvironCapability(cfg *config.Config) (state.EnvironCapability, error) { 37 if p.GetEnvironCapability != nil { 38 return p.GetEnvironCapability(cfg) 39 } 40 return nil, errors.NotImplementedf("EnvironCapability") 41 } 42 43 func (p *MockPolicy) ConstraintsValidator(cfg *config.Config, querier state.SupportedArchitecturesQuerier) (constraints.Validator, error) { 44 if p.GetConstraintsValidator != nil { 45 return p.GetConstraintsValidator(cfg, querier) 46 } 47 return nil, errors.NewNotImplemented(nil, "ConstraintsValidator") 48 } 49 50 func (p *MockPolicy) InstanceDistributor(cfg *config.Config) (state.InstanceDistributor, error) { 51 if p.GetInstanceDistributor != nil { 52 return p.GetInstanceDistributor(cfg) 53 } 54 return nil, errors.NewNotImplemented(nil, "InstanceDistributor") 55 }