diff options
-rw-r--r-- | model/post.go | 23 | ||||
-rw-r--r-- | model/post_test.go | 44 |
2 files changed, 61 insertions, 6 deletions
diff --git a/model/post.go b/model/post.go index bec31aea7..635493c9d 100644 --- a/model/post.go +++ b/model/post.go @@ -352,6 +352,29 @@ func (r *PostActionIntegrationRequest) ToJson() string { return string(b) } +func PostActionIntegrationRequesteFromJson(data io.Reader) *PostActionIntegrationRequest { + var o *PostActionIntegrationRequest + err := json.NewDecoder(data).Decode(&o) + if err != nil { + return nil + } + return o +} + +func (r *PostActionIntegrationResponse) ToJson() string { + b, _ := json.Marshal(r) + return string(b) +} + +func PostActionIntegrationResponseFromJson(data io.Reader) *PostActionIntegrationResponse { + var o *PostActionIntegrationResponse + err := json.NewDecoder(data).Decode(&o) + if err != nil { + return nil + } + return o +} + func (o *Post) Attachments() []*SlackAttachment { if attachments, ok := o.Props["attachments"].([]*SlackAttachment); ok { return attachments diff --git a/model/post_test.go b/model/post_test.go index af350d76e..b15134c89 100644 --- a/model/post_test.go +++ b/model/post_test.go @@ -11,14 +11,46 @@ import ( "github.com/stretchr/testify/assert" ) -func TestPostJson(t *testing.T) { +func TestPostToJson(t *testing.T) { o := Post{Id: NewId(), Message: NewId()} - json := o.ToJson() - ro := PostFromJson(strings.NewReader(json)) + j := o.ToJson() + ro := PostFromJson(strings.NewReader(j)) - if o.Id != ro.Id { - t.Fatal("Ids do not match") - } + assert.NotNil(t, ro) + assert.Equal(t, o, *ro) +} + +func TestPostFromJsonError(t *testing.T) { + ro := PostFromJson(strings.NewReader("")) + assert.Nil(t, ro) +} + +func TestPostActionIntegrationRequestToJson(t *testing.T) { + o := PostActionIntegrationRequest{UserId: NewId(), Context: StringInterface{"a": "abc"}} + j := o.ToJson() + ro := PostActionIntegrationRequesteFromJson(strings.NewReader(j)) + + assert.NotNil(t, ro) + assert.Equal(t, o, *ro) +} + +func TestPostActionIntegrationRequestFromJsonError(t *testing.T) { + ro := PostActionIntegrationRequesteFromJson(strings.NewReader("")) + assert.Nil(t, ro) +} + +func TestPostActionIntegrationResponseToJson(t *testing.T) { + o := PostActionIntegrationResponse{Update: &Post{Id: NewId(), Message: NewId()}, EphemeralText: NewId()} + j := o.ToJson() + ro := PostActionIntegrationResponseFromJson(strings.NewReader(j)) + + assert.NotNil(t, ro) + assert.Equal(t, o, *ro) +} + +func TestPostActionIntegrationResponseFromJsonError(t *testing.T) { + ro := PostActionIntegrationResponseFromJson(strings.NewReader("")) + assert.Nil(t, ro) } func TestPostIsValid(t *testing.T) { |