From 56d92de3f20fa1d89c2d2c09b03e933a1325af8b Mon Sep 17 00:00:00 2001 From: Hanzei Date: Mon, 20 Aug 2018 18:21:16 +0200 Subject: Add ToJson() to PostActionIntegrationResponse (#9247) * Add ToJson() to PostActionIntegrationResponse This commits adds a ToJson() methode to PostActionIntegrationResponse. It also adds tests for other ToJson() methods * Add PostActionIntegrationResponseFromJson function * Add PostActionIntegrationRequesteFromJson() function * Fix test names * Add testcase --- model/post.go | 23 +++++++++++++++++++++++ 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) { -- cgit v1.2.3-1-g7c22