(t *testing.T)
| 1070 | } |
| 1071 | |
| 1072 | func TestBucket_ForEachBucket_NoBuckets(t *testing.T) { |
| 1073 | db := btesting.MustCreateDB(t) |
| 1074 | |
| 1075 | verifyReads := func(b *bolt.Bucket) { |
| 1076 | var items [][]byte |
| 1077 | err := b.ForEachBucket(func(k []byte) error { |
| 1078 | items = append(items, k) |
| 1079 | return nil |
| 1080 | }) |
| 1081 | assert.NoErrorf(t, err, "b.ForEach failed") |
| 1082 | assert.Emptyf(t, items, "what we iterated (ForEach) is not what we put") |
| 1083 | } |
| 1084 | |
| 1085 | err := db.Update(func(tx *bolt.Tx) error { |
| 1086 | b, err := tx.CreateBucket([]byte("widgets")) |
| 1087 | require.NoError(t, err, "bucket creation failed") |
| 1088 | |
| 1089 | require.NoErrorf(t, b.Put([]byte("foo"), []byte("0000")), "put 'foo' failed") |
| 1090 | require.NoErrorf(t, err, "creation of subbucket failed") |
| 1091 | require.NoErrorf(t, b.Put([]byte("baz"), []byte("0001")), "put 'baz' failed") |
| 1092 | require.NoErrorf(t, err, "creation of subbucket failed") |
| 1093 | |
| 1094 | verifyReads(b) |
| 1095 | |
| 1096 | return nil |
| 1097 | }) |
| 1098 | require.NoErrorf(t, err, "db.Update failed") |
| 1099 | |
| 1100 | err = db.View(func(tx *bolt.Tx) error { |
| 1101 | b := tx.Bucket([]byte("widgets")) |
| 1102 | require.NotNil(t, b, "bucket opening failed") |
| 1103 | verifyReads(b) |
| 1104 | return nil |
| 1105 | }) |
| 1106 | assert.NoErrorf(t, err, "db.View failed") |
| 1107 | } |
| 1108 | |
| 1109 | // Ensure a database can stop iteration early. |
| 1110 | func TestBucket_ForEach_ShortCircuit(t *testing.T) { |
nothing calls this directly
no test coverage detected