adding WebhookURLTimeoutArg for retrieving and validating webhookURLTimeout form field

This commit is contained in:
Julien Neuhart
2019-08-19 16:44:13 +02:00
parent cf5e530ed9
commit e839430270
2 changed files with 66 additions and 1 deletions

View File

@@ -121,6 +121,27 @@ func WaitDelayArg(r Resource, config conf.Config) (float64, error) {
return result, nil
}
/*
WebhookURLTimeoutArg is a helper for retrieving
the "webhookURLTimeout" argument as float64.
It also validates it against the application
configuration.
*/
func WebhookURLTimeoutArg(r Resource, config conf.Config) (float64, error) {
const op string = "resource.WebhookURLTimeoutArg"
result, err := r.Float64Arg(
WebhookURLTimeoutArgKey,
config.DefaultWebhookURLTimeout(),
xassert.Float64NotInferiorTo(0),
xassert.Float64NotSuperiorTo(config.MaximumWebhookURLTimeout()),
)
if err != nil {
return result, xerror.New(op, err)
}
return result, nil
}
/*
PaperSizeArgs is a helper for retrieving
the "paperWidth" and "paperHeight" arguments

View File

@@ -101,7 +101,7 @@ func TestWaitDelayArg(t *testing.T) {
test.AssertError(t, err)
assert.Equal(t, expected, v)
// shoul not be OK as argument
// value is > config.MaximumWaitTimeout().
// value is > config.MaximumWaitDelay().
expected = defaultValue
r.WithArg(WaitDelayArgKey, "31.0")
v, err = WaitDelayArg(r, config)
@@ -119,6 +119,50 @@ func TestWaitDelayArg(t *testing.T) {
assert.Nil(t, err)
}
func TestWebhookURLTimeoutArg(t *testing.T) {
const resourceDirectoryName string = "foo"
var expected float64
logger := test.DebugLogger()
config := conf.DefaultConfig()
r, err := New(logger, resourceDirectoryName)
assert.Nil(t, err)
// argument does not exist.
expected = config.DefaultWebhookURLTimeout()
v, err := WebhookURLTimeoutArg(r, config)
assert.Nil(t, err)
assert.Equal(t, expected, v)
// argument exist.
expected = 5.0
r.WithArg(WebhookURLTimeoutArgKey, "5.0")
v, err = WebhookURLTimeoutArg(r, config)
assert.Nil(t, err)
assert.Equal(t, expected, v)
// shoul not be OK as argument
// value is < 0.
expected = config.DefaultWebhookURLTimeout()
r.WithArg(WebhookURLTimeoutArgKey, "-1.0")
v, err = WebhookURLTimeoutArg(r, config)
test.AssertError(t, err)
assert.Equal(t, expected, v)
// shoul not be OK as argument
// value is > config.MaximumWebhookURLTimeout().
expected = config.DefaultWebhookURLTimeout()
r.WithArg(WebhookURLTimeoutArgKey, "31.0")
v, err = WebhookURLTimeoutArg(r, config)
test.AssertError(t, err)
assert.Equal(t, expected, v)
// should not be OK as
// argument value is invalid.
expected = config.DefaultWebhookURLTimeout()
r.WithArg(WebhookURLTimeoutArgKey, "foo")
v, err = WebhookURLTimeoutArg(r, config)
test.AssertError(t, err)
assert.Equal(t, expected, v)
// finally...
err = r.Close()
assert.Nil(t, err)
}
func TestPaperSizeArgs(t *testing.T) {
const resourceDirectoryName string = "foo"
var expected float64