github.com/attic-labs/noms@v0.0.0-20210827224422-e5fa29d95e8b/samples/go/decent/lib/model_test.go (about) 1 // See: https://github.com/attic-labs/noms/issues/3808 2 // +build ignore 3 4 // Copyright 2017 Attic Labs, Inc. All rights reserved. 5 // Licensed under the Apache License, version 2.0: 6 // http://www.apache.org/licenses/LICENSE-2.0 7 8 package lib 9 10 import ( 11 "testing" 12 "time" 13 14 "github.com/attic-labs/noms/go/chunks" 15 "github.com/attic-labs/noms/go/datas" 16 "github.com/attic-labs/noms/go/marshal" 17 "github.com/attic-labs/noms/go/util/datetime" 18 "github.com/stretchr/testify/assert" 19 ) 20 21 func TestBasics(t *testing.T) { 22 a := assert.New(t) 23 db := datas.NewDatabase(chunks.NewMemoryStoreFactory().CreateStore("")) 24 ds := db.GetDataset("foo") 25 ml, err := getAllMessages(ds) 26 a.NoError(err) 27 a.Equal(0, len(ml)) 28 29 ds, err = AddMessage("body1", "aa", time.Unix(0, 0), ds) 30 a.NoError(err) 31 ml, err = getAllMessages(ds) 32 a.NoError(err) 33 expected := []Message{ 34 Message{ 35 Author: "aa", 36 Body: "body1", 37 ClientTime: datetime.DateTime{time.Unix(0, 0)}, 38 Ordinal: 0, 39 }, 40 } 41 a.Equal(expected, ml) 42 43 ds, err = AddMessage("body2", "bob", time.Unix(1, 0), ds) 44 a.NoError(err) 45 ml, err = getAllMessages(ds) 46 expected = append( 47 []Message{ 48 Message{ 49 Author: "bob", 50 Body: "body2", 51 ClientTime: datetime.DateTime{time.Unix(1, 0)}, 52 Ordinal: 1, 53 }, 54 }, 55 expected..., 56 ) 57 a.NoError(err) 58 a.Equal(expected, ml) 59 } 60 61 func getAllMessages(ds datas.Dataset) (r []Message, err error) { 62 doneChan := make(chan struct{}) 63 mm, keys, _ := ListMessages(ds, nil, doneChan) 64 for k := range keys { 65 mv := mm.Get(k) 66 var m Message 67 marshal.MustUnmarshal(mv, &m) 68 r = append(r, m) 69 } 70 doneChan <- struct{}{} 71 return r, nil 72 }