github.com/linapex/ethereum-go-chinese@v0.0.0-20190316121929-f8b7a73c3fa1/swarm/shed/field_string_test.go (about) 1 2 //<developer> 3 // <name>linapex 曹一峰</name> 4 // <email>linapex@163.com</email> 5 // <wx>superexc</wx> 6 // <qqgroup>128148617</qqgroup> 7 // <url>https://jsq.ink</url> 8 // <role>pku engineer</role> 9 // <date>2019-03-16 19:16:44</date> 10 //</624450117658742784> 11 12 13 package shed 14 15 import ( 16 "testing" 17 18 "github.com/syndtr/goleveldb/leveldb" 19 ) 20 21 //TestStringField验证Put和Get操作 22 //在StringField中。 23 func TestStringField(t *testing.T) { 24 db, cleanupFunc := newTestDB(t) 25 defer cleanupFunc() 26 27 simpleString, err := db.NewStringField("simple-string") 28 if err != nil { 29 t.Fatal(err) 30 } 31 32 t.Run("get empty", func(t *testing.T) { 33 got, err := simpleString.Get() 34 if err != nil { 35 t.Fatal(err) 36 } 37 want := "" 38 if got != want { 39 t.Errorf("got string %q, want %q", got, want) 40 } 41 }) 42 43 t.Run("put", func(t *testing.T) { 44 want := "simple string value" 45 err = simpleString.Put(want) 46 if err != nil { 47 t.Fatal(err) 48 } 49 got, err := simpleString.Get() 50 if err != nil { 51 t.Fatal(err) 52 } 53 if got != want { 54 t.Errorf("got string %q, want %q", got, want) 55 } 56 57 t.Run("overwrite", func(t *testing.T) { 58 want := "overwritten string value" 59 err = simpleString.Put(want) 60 if err != nil { 61 t.Fatal(err) 62 } 63 got, err := simpleString.Get() 64 if err != nil { 65 t.Fatal(err) 66 } 67 if got != want { 68 t.Errorf("got string %q, want %q", got, want) 69 } 70 }) 71 }) 72 73 t.Run("put in batch", func(t *testing.T) { 74 batch := new(leveldb.Batch) 75 want := "simple string batch value" 76 simpleString.PutInBatch(batch, want) 77 err = db.WriteBatch(batch) 78 if err != nil { 79 t.Fatal(err) 80 } 81 got, err := simpleString.Get() 82 if err != nil { 83 t.Fatal(err) 84 } 85 if got != want { 86 t.Errorf("got string %q, want %q", got, want) 87 } 88 89 t.Run("overwrite", func(t *testing.T) { 90 batch := new(leveldb.Batch) 91 want := "overwritten string batch value" 92 simpleString.PutInBatch(batch, want) 93 err = db.WriteBatch(batch) 94 if err != nil { 95 t.Fatal(err) 96 } 97 got, err := simpleString.Get() 98 if err != nil { 99 t.Fatal(err) 100 } 101 if got != want { 102 t.Errorf("got string %q, want %q", got, want) 103 } 104 }) 105 }) 106 } 107