Files
mattermost/model/post_list_test.go
2017-10-24 14:27:15 -04:00

93 lines
2.0 KiB
Go

// Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved.
// See License.txt for license information.
package model
import (
"strings"
"testing"
"github.com/stretchr/testify/assert"
)
func TestPostListJson(t *testing.T) {
pl := PostList{}
p1 := &Post{Id: NewId(), Message: NewId()}
pl.AddPost(p1)
p2 := &Post{Id: NewId(), Message: NewId()}
pl.AddPost(p2)
pl.AddOrder(p1.Id)
pl.AddOrder(p2.Id)
json := pl.ToJson()
rpl := PostListFromJson(strings.NewReader(json))
if rpl.Posts[p1.Id].Message != p1.Message {
t.Fatal("failed to serialize")
}
if rpl.Posts[p2.Id].Message != p2.Message {
t.Fatal("failed to serialize")
}
if rpl.Order[1] != p2.Id {
t.Fatal("failed to serialize")
}
}
func TestPostListExtend(t *testing.T) {
l1 := PostList{}
p1 := &Post{Id: NewId(), Message: NewId()}
l1.AddPost(p1)
l1.AddOrder(p1.Id)
p2 := &Post{Id: NewId(), Message: NewId()}
l1.AddPost(p2)
l1.AddOrder(p2.Id)
l2 := PostList{}
p3 := &Post{Id: NewId(), Message: NewId()}
l2.AddPost(p3)
l2.AddOrder(p3.Id)
l2.Extend(&l1)
if len(l1.Posts) != 2 || len(l1.Order) != 2 {
t.Fatal("extending l2 changed l1")
} else if len(l2.Posts) != 3 {
t.Fatal("failed to extend posts l2")
} else if l2.Order[0] != p3.Id || l2.Order[1] != p1.Id || l2.Order[2] != p2.Id {
t.Fatal("failed to extend order of l2")
}
if len(l1.Posts) != 2 || len(l1.Order) != 2 {
t.Fatal("extending l2 again changed l1")
} else if len(l2.Posts) != 3 || len(l2.Order) != 3 {
t.Fatal("extending l2 again changed l2")
}
}
func TestPostListSortByCreateAt(t *testing.T) {
pl := PostList{}
p1 := &Post{Id: NewId(), Message: NewId(), CreateAt: 2}
pl.AddPost(p1)
p2 := &Post{Id: NewId(), Message: NewId(), CreateAt: 1}
pl.AddPost(p2)
p3 := &Post{Id: NewId(), Message: NewId(), CreateAt: 3}
pl.AddPost(p3)
pl.AddOrder(p1.Id)
pl.AddOrder(p2.Id)
pl.AddOrder(p3.Id)
pl.SortByCreateAt()
assert.EqualValues(t, pl.Order[0], p3.Id)
assert.EqualValues(t, pl.Order[1], p1.Id)
assert.EqualValues(t, pl.Order[2], p2.Id)
}