@@ -18,35 +18,52 @@ import (
1818 is "gotest.tools/v3/assert/cmp"
1919)
2020
21- func TestConvertRestartPolicyFromNone (t * testing.T ) {
22- policy , err := convertRestartPolicy ("no" , nil )
23- assert .NilError (t , err )
24- assert .Check (t , is .DeepEqual ((* swarm .RestartPolicy )(nil ), policy ))
25- }
26-
27- func TestConvertRestartPolicyFromUnknown (t * testing.T ) {
28- _ , err := convertRestartPolicy ("unknown" , nil )
29- assert .Error (t , err , "unknown restart policy: unknown" )
30- }
31-
32- func TestConvertRestartPolicyFromAlways (t * testing.T ) {
33- policy , err := convertRestartPolicy ("always" , nil )
34- expected := & swarm.RestartPolicy {
35- Condition : swarm .RestartPolicyConditionAny ,
21+ func TestConvertRestartPolicy (t * testing.T ) {
22+ attempts := uint64 (4 )
23+ tests := []struct {
24+ input string
25+ expected * swarm.RestartPolicy
26+ expError string
27+ }{
28+ {},
29+ {
30+ input : "no" ,
31+ },
32+ {
33+ input : "unknown" ,
34+ expError : "unknown restart policy: unknown" ,
35+ },
36+ {
37+ input : "always" ,
38+ expected : & swarm.RestartPolicy {
39+ Condition : swarm .RestartPolicyConditionAny ,
40+ },
41+ },
42+ {
43+ input : "on-failure:4" ,
44+ expected : & swarm.RestartPolicy {
45+ Condition : swarm .RestartPolicyConditionOnFailure ,
46+ MaxAttempts : & attempts ,
47+ },
48+ },
3649 }
37- assert .NilError (t , err )
38- assert .Check (t , is .DeepEqual (expected , policy ))
39- }
4050
41- func TestConvertRestartPolicyFromFailure (t * testing.T ) {
42- policy , err := convertRestartPolicy ("on-failure:4" , nil )
43- attempts := uint64 (4 )
44- expected := & swarm.RestartPolicy {
45- Condition : swarm .RestartPolicyConditionOnFailure ,
46- MaxAttempts : & attempts ,
51+ for _ , tc := range tests {
52+ name := tc .input
53+ if name == "" {
54+ name = "empty"
55+ }
56+ t .Run (name , func (t * testing.T ) {
57+ policy , err := convertRestartPolicy (tc .input , nil )
58+ if tc .expError != "" {
59+ assert .Check (t , is .ErrorContains (err , tc .expError ))
60+ assert .Check (t , is .Nil (policy ))
61+ return
62+ }
63+ assert .NilError (t , err )
64+ assert .Check (t , is .DeepEqual (policy , tc .expected ))
65+ })
4766 }
48- assert .NilError (t , err )
49- assert .Check (t , is .DeepEqual (expected , policy ))
5067}
5168
5269func strPtr (val string ) * string {
0 commit comments