forked from umweltdk/teamcity
-
Notifications
You must be signed in to change notification settings - Fork 8
/
Copy pathparameters_test.go
78 lines (70 loc) · 2.24 KB
/
parameters_test.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
package types
import (
"encoding/json"
"github.com/stretchr/testify/assert"
//"github.com/stretchr/testify/require"
"testing"
)
func MarshalAndUnmarhalMatch(t *testing.T, jsonValue string, props *Parameters) {
bytes, err := json.Marshal(&props)
assert.NoError(t, err)
assert.Equal(t, jsonValue, string(bytes))
var val *Parameters
err = json.Unmarshal([]byte(jsonValue), &val)
assert.NoError(t, err)
assert.Equal(t, props, val)
}
func TestProperties(t *testing.T) {
MarshalAndUnmarhalMatch(t, `{"property":[{"name":"test","value":"muh"}]}`,
&Parameters{
"test": Parameter{
Value: "muh",
},
})
MarshalAndUnmarhalMatch(t, `{"property":[{"name":"env.TEST_RUNNER","value":"l","type":{"rawValue":"password description='What test runner are we going to use' display='normal' label='Test runner'"}}]}`,
&Parameters{
"env.TEST_RUNNER": Parameter{
Value: "l",
Spec: &ParameterSpec{
Type: PasswordType{},
Label: "Test runner",
Description: "What test runner are we going to use",
},
},
})
MarshalAndUnmarhalMatch(t, `{"property":[{"name":"env.TEST_RUNNER","value":"l","type":{"rawValue":"text description='What test runner are we going to use' display='prompt' validationMode='not_empty'"}}]}`,
&Parameters{
"env.TEST_RUNNER": Parameter{
Value: "l",
Spec: &ParameterSpec{
Type: TextType{"not_empty"},
Description: "What test runner are we going to use",
Display: Prompt,
},
},
})
MarshalAndUnmarhalMatch(t, `{"property":[{"name":"env.TEST_RUNNER","value":"l","type":{"rawValue":"checkbox checkedValue='Wow' display='hidden' label='Test runner'"}}]}`,
&Parameters{
"env.TEST_RUNNER": Parameter{
Value: "l",
Spec: &ParameterSpec{
Type: CheckboxType{Checked: "Wow"},
Label: "Test runner",
Display: Hidden,
},
},
})
MarshalAndUnmarhalMatch(t, `{"property":[{"name":"env.PLING","value":"donk","type":{"rawValue":"select data_1='te' display='hidden' label='Test |||| ||M |||'runner||'"}}]}`,
&Parameters{
"env.PLING": Parameter{
Value: "donk",
Spec: &ParameterSpec{
Type: SelectType{Items: []SelectItem{
{"", "te"},
}},
Label: "Test || |M |'runner|",
Display: Hidden,
},
},
})
}