github.com/Axway/agent-sdk@v1.1.101/pkg/apic/apiserver/models/api/v1/owner_test.go (about) 1 package v1 2 3 import ( 4 "encoding/json" 5 "testing" 6 7 "github.com/stretchr/testify/assert" 8 ) 9 10 func TestOwner_MarshalJSON(t *testing.T) { 11 o := &Owner{} 12 o.SetID("123") 13 14 b, err := o.MarshalJSON() 15 assert.Nil(t, err) 16 17 o2 := &Owner{} 18 err = json.Unmarshal(b, o2) 19 assert.Nil(t, err) 20 assert.Equal(t, o.Type, o2.Type) 21 assert.Equal(t, o.ID, o2.ID) 22 23 o = &Owner{} 24 o.SetType(TeamOwner) 25 o.SetID("123") 26 27 b, err = o.MarshalJSON() 28 assert.Nil(t, err) 29 assert.NotContains(t, string(b), "organization") 30 31 o2 = &Owner{} 32 err = json.Unmarshal(b, o2) 33 assert.Nil(t, err) 34 assert.Equal(t, o.Type, o2.Type) 35 assert.Equal(t, o.ID, o2.ID) 36 assert.Equal(t, o.Organization, o2.Organization) 37 38 invalid := []byte(`{"type":"fake","id":"123"}`) 39 err = json.Unmarshal(invalid, o2) 40 assert.NotNilf(t, err, "should fail when given an invalid type") 41 42 validNoOwnerType := []byte(`{"id":"123"}`) 43 err = json.Unmarshal(validNoOwnerType, o2) 44 assert.Nil(t, err) 45 assert.Equal(t, o.Type, TeamOwner) 46 assert.Equal(t, o.ID, o2.ID) 47 48 o3 := &Owner{} 49 o3.SetType(TeamOwner) 50 o3.SetID("123") 51 o3.Organization = Organization{ID: "321"} 52 53 b, err = o3.MarshalJSON() 54 assert.Nil(t, err) 55 assert.Contains(t, string(b), "organization") 56 57 o4 := &Owner{} 58 err = json.Unmarshal(b, o4) 59 assert.Nil(t, err) 60 assert.Equal(t, o3.Type, o4.Type) 61 assert.Equal(t, o3.ID, o4.ID) 62 assert.Equal(t, o3.Organization, o4.Organization) 63 }