File tree Expand file tree Collapse file tree 2 files changed +28
-6
lines changed
pkg/apic/apiserver/models/api/v1 Expand file tree Collapse file tree 2 files changed +28
-6
lines changed Original file line number Diff line number Diff line change @@ -46,7 +46,7 @@ func (o *Owner) MarshalJSON() ([]byte, error) {
46
46
var t string
47
47
var ok bool
48
48
if t , ok = ownerTypeToString [o .Type ]; ! ok {
49
- return nil , fmt . Errorf ( "unknown owner type %d" , o . Type )
49
+ t = ownerTypeToString [ TeamOwner ]
50
50
}
51
51
52
52
aux := struct {
@@ -74,11 +74,15 @@ func (o *Owner) UnmarshalJSON(bytes []byte) error {
74
74
return err
75
75
}
76
76
77
- ownerString , ok := ownerTypeFromString [aux .Type ]
78
- if ! ok {
79
- return fmt .Errorf ("unknown owner type %s" , aux .Type )
77
+ ownerType := TeamOwner
78
+ if aux .Type != "" {
79
+ var ok bool
80
+ ownerType , ok = ownerTypeFromString [aux .Type ]
81
+ if ! ok {
82
+ return fmt .Errorf ("unknown owner type %s" , aux .Type )
83
+ }
80
84
}
81
- o .Type = ownerString
85
+ o .Type = ownerType
82
86
o .ID = aux .ID
83
87
o .Organization = aux .Organization
84
88
Original file line number Diff line number Diff line change 9
9
10
10
func TestOwner_MarshalJSON (t * testing.T ) {
11
11
o := & Owner {}
12
- o .SetType (TeamOwner )
13
12
o .SetID ("123" )
14
13
15
14
b , err := o .MarshalJSON ()
@@ -21,7 +20,26 @@ func TestOwner_MarshalJSON(t *testing.T) {
21
20
assert .Equal (t , o .Type , o2 .Type )
22
21
assert .Equal (t , o .ID , o2 .ID )
23
22
23
+ o = & Owner {}
24
+ o .SetType (TeamOwner )
25
+ o .SetID ("123" )
26
+
27
+ b , err = o .MarshalJSON ()
28
+ assert .Nil (t , err )
29
+
30
+ o2 = & Owner {}
31
+ err = json .Unmarshal (b , o2 )
32
+ assert .Nil (t , err )
33
+ assert .Equal (t , o .Type , o2 .Type )
34
+ assert .Equal (t , o .ID , o2 .ID )
35
+
24
36
invalid := []byte (`{"type":"fake","id":"123"}` )
25
37
err = json .Unmarshal (invalid , o2 )
26
38
assert .NotNilf (t , err , "should fail when given an invalid type" )
39
+
40
+ validNoOwnerType := []byte (`{"id":"123"}` )
41
+ err = json .Unmarshal (validNoOwnerType , o2 )
42
+ assert .Nil (t , err )
43
+ assert .Equal (t , o .Type , TeamOwner )
44
+ assert .Equal (t , o .ID , o2 .ID )
27
45
}
You can’t perform that action at this time.
0 commit comments