github.com/gigforks/mattermost-server@v4.9.1-0.20180619094218-800d97fa55d0+incompatible/model/status_test.go (about) 1 // Copyright (c) 2016-present Mattermost, Inc. All Rights Reserved. 2 // See License.txt for license information. 3 4 package model 5 6 import ( 7 "encoding/json" 8 "strings" 9 "testing" 10 ) 11 12 func TestStatus(t *testing.T) { 13 status := Status{NewId(), STATUS_ONLINE, true, 0, ""} 14 json := status.ToJson() 15 status2 := StatusFromJson(strings.NewReader(json)) 16 17 if status.UserId != status2.UserId { 18 t.Fatal("UserId should have matched") 19 } 20 21 if status.Status != status2.Status { 22 t.Fatal("Status should have matched") 23 } 24 25 if status.LastActivityAt != status2.LastActivityAt { 26 t.Fatal("LastActivityAt should have matched") 27 } 28 29 if status.Manual != status2.Manual { 30 t.Fatal("Manual should have matched") 31 } 32 } 33 34 func TestStatusListToJson(t *testing.T) { 35 statuses := []*Status{{NewId(), STATUS_ONLINE, true, 0, ""}, {NewId(), STATUS_OFFLINE, true, 0, ""}} 36 jsonStatuses := StatusListToJson(statuses) 37 38 var dat []map[string]interface{} 39 if err := json.Unmarshal([]byte(jsonStatuses), &dat); err != nil { 40 panic(err) 41 } 42 43 if len(dat) != 2 { 44 t.Fatal("Status array should contain 2 elements") 45 } 46 if statuses[0].UserId != dat[0]["user_id"] { 47 t.Fatal("UserId should be equal") 48 } 49 if statuses[1].UserId != dat[1]["user_id"] { 50 t.Fatal("UserId should be equal") 51 } 52 } 53 54 func TestStatusListFromJson(t *testing.T) { 55 const jsonStream = ` 56 [{"user_id":"k39fowpzhfffjxeaw8ecyrygme","status":"online","manual":true,"last_activity_at":0},{"user_id":"e9f1bbg8wfno7b3k7yk79bbwfy","status":"offline","manual":true,"last_activity_at":0}] 57 ` 58 var dat []map[string]interface{} 59 if err := json.Unmarshal([]byte(jsonStream), &dat); err != nil { 60 panic(err) 61 } 62 63 toDec := strings.NewReader(jsonStream) 64 statusesFromJson := StatusListFromJson(toDec) 65 66 if statusesFromJson[0].UserId != dat[0]["user_id"] { 67 t.Fatal("UserId should be equal") 68 } 69 if statusesFromJson[1].UserId != dat[1]["user_id"] { 70 t.Fatal("UserId should be equal") 71 } 72 }