diff options
author | Joram Wilander <jwawilander@gmail.com> | 2018-04-20 12:25:14 -0400 |
---|---|---|
committer | GitHub <noreply@github.com> | 2018-04-20 12:25:14 -0400 |
commit | 853445dc2ea68f765faa04ad14618b04f1081c43 (patch) | |
tree | 9e9c64985a6bfb78548737d42c4d216149f1697b /model/session_test.go | |
parent | 283f34b9c6d207f0a103e7b4c7f6da2c7481c3ef (diff) | |
download | chat-853445dc2ea68f765faa04ad14618b04f1081c43.tar.gz chat-853445dc2ea68f765faa04ad14618b04f1081c43.tar.bz2 chat-853445dc2ea68f765faa04ad14618b04f1081c43.zip |
Properly implement session deep copy (#8602)
Diffstat (limited to 'model/session_test.go')
-rw-r--r-- | model/session_test.go | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/model/session_test.go b/model/session_test.go index 295f00076..5f4a4730d 100644 --- a/model/session_test.go +++ b/model/session_test.go @@ -7,8 +7,38 @@ import ( "strings" "testing" "time" + + "github.com/stretchr/testify/assert" ) +func TestSessionDeepCopy(t *testing.T) { + sessionId := NewId() + userId := NewId() + mapKey := "key" + mapValue := "val" + + session := &Session{Id: sessionId, Props: map[string]string{mapKey: mapValue}, TeamMembers: []*TeamMember{&TeamMember{UserId: userId, TeamId: "someteamId"}}} + + copySession := session.DeepCopy() + copySession.Id = "changed" + copySession.Props[mapKey] = "changed" + copySession.TeamMembers[0].UserId = "changed" + + assert.Equal(t, sessionId, session.Id) + assert.Equal(t, mapValue, session.Props[mapKey]) + assert.Equal(t, userId, session.TeamMembers[0].UserId) + + session = &Session{Id: sessionId} + copySession = session.DeepCopy() + + assert.Equal(t, sessionId, session.Id) + + session = &Session{TeamMembers: []*TeamMember{}} + copySession = session.DeepCopy() + + assert.Equal(t, 0, len(copySession.TeamMembers)) +} + func TestSessionJson(t *testing.T) { session := Session{} session.PreSave() |