Skip to content

Commit

Permalink
Break out Mocks
Browse files Browse the repository at this point in the history
  • Loading branch information
beautifulentropy committed Mar 17, 2021
1 parent 3084bea commit be487e2
Show file tree
Hide file tree
Showing 3 changed files with 69 additions and 53 deletions.
54 changes: 1 addition & 53 deletions observer/obs_conf_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -7,57 +7,9 @@ import (

"github.com/letsencrypt/boulder/cmd"
p "github.com/letsencrypt/boulder/observer/probers"
"gopkg.in/yaml.v2"
_ "github.com/letsencrypt/boulder/observer/probers/mock"
)

type MockConfigurer struct {
Valid bool `yaml:"valid"`
ErrMsg string `yaml:"errmsg"`
PName string `yaml:"pname"`
PKind string `yaml:"pkind"`
PTook cmd.ConfigDuration `yaml:"ptook"`
PSuccess bool `yaml:"psuccess"`
}

func (c MockConfigurer) UnmarshalSettings(settings []byte) (p.Configurer, error) {
var conf MockConfigurer
err := yaml.Unmarshal(settings, &conf)
if err != nil {
return nil, err
}
return conf, nil
}

func (c MockConfigurer) Validate() error {
if !c.Valid {
return errors.New(c.ErrMsg)
}
return nil
}

func (c MockConfigurer) AsProbe() p.Prober {
return MockProber{c.PName, c.PKind, c.PTook, c.PSuccess}
}

type MockProber struct {
name string
kind string
took cmd.ConfigDuration
success bool
}

func (p MockProber) Name() string {
return p.name
}

func (p MockProber) Kind() string {
return p.kind
}

func (p MockProber) Probe(timeout time.Duration) (bool, time.Duration) {
return p.success, p.took.Duration
}

var validMonSettings = p.Settings{"valid": true, "errmsg": "don't see this", "pname": "foo", "pkind": "bar", "ptook": "1s", "success": true}
var invalidMonSettings = p.Settings{"valid": false, "errmsg": "over 9000", "pname": "foo", "pkind": "bar", "ptook": "1s", "success": true}

Expand All @@ -69,10 +21,6 @@ var invalidMonConf = &MonConf{cfgDur, 10, "MockConf", invalidMonSettings, false}

var dbzErr = errors.New("over 9000")

func init() {
p.Register("MockConf", MockConfigurer{})
}

func TestObsConf_validateMonConfs(t *testing.T) {
type fields struct {
Syslog cmd.SyslogConfig
Expand Down
26 changes: 26 additions & 0 deletions observer/probers/mock/mock.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
package observer

import (
"time"

"github.com/letsencrypt/boulder/cmd"
)

type MockProber struct {
name string
kind string
took cmd.ConfigDuration
success bool
}

func (p MockProber) Name() string {
return p.name
}

func (p MockProber) Kind() string {
return p.kind
}

func (p MockProber) Probe(timeout time.Duration) (bool, time.Duration) {
return p.success, p.took.Duration
}
42 changes: 42 additions & 0 deletions observer/probers/mock/mock_conf.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
package observer

import (
"errors"

"github.com/letsencrypt/boulder/cmd"
p "github.com/letsencrypt/boulder/observer/probers"
"gopkg.in/yaml.v2"
)

type MockConfigurer struct {
Valid bool `yaml:"valid"`
ErrMsg string `yaml:"errmsg"`
PName string `yaml:"pname"`
PKind string `yaml:"pkind"`
PTook cmd.ConfigDuration `yaml:"ptook"`
PSuccess bool `yaml:"psuccess"`
}

func (c MockConfigurer) UnmarshalSettings(settings []byte) (p.Configurer, error) {
var conf MockConfigurer
err := yaml.Unmarshal(settings, &conf)
if err != nil {
return nil, err
}
return conf, nil
}

func (c MockConfigurer) Validate() error {
if !c.Valid {
return errors.New(c.ErrMsg)
}
return nil
}

func (c MockConfigurer) AsProbe() p.Prober {
return MockProber{c.PName, c.PKind, c.PTook, c.PSuccess}
}

func init() {
p.Register("MockConf", MockConfigurer{})
}

0 comments on commit be487e2

Please sign in to comment.