OSDN Git Service

Hulk did something
[bytom/vapor.git] / vendor / github.com / syndtr / goleveldb / leveldb / testutil_test.go
1 // Copyright (c) 2014, Suryandaru Triandana <syndtr@gmail.com>
2 // All rights reserved.
3 //
4 // Use of this source code is governed by a BSD-style license that can be
5 // found in the LICENSE file.
6
7 package leveldb
8
9 import (
10         . "github.com/onsi/gomega"
11
12         "github.com/syndtr/goleveldb/leveldb/iterator"
13         "github.com/syndtr/goleveldb/leveldb/opt"
14         "github.com/syndtr/goleveldb/leveldb/testutil"
15         "github.com/syndtr/goleveldb/leveldb/util"
16 )
17
18 type testingDB struct {
19         *DB
20         ro   *opt.ReadOptions
21         wo   *opt.WriteOptions
22         stor *testutil.Storage
23 }
24
25 func (t *testingDB) TestPut(key []byte, value []byte) error {
26         return t.Put(key, value, t.wo)
27 }
28
29 func (t *testingDB) TestDelete(key []byte) error {
30         return t.Delete(key, t.wo)
31 }
32
33 func (t *testingDB) TestGet(key []byte) (value []byte, err error) {
34         return t.Get(key, t.ro)
35 }
36
37 func (t *testingDB) TestHas(key []byte) (ret bool, err error) {
38         return t.Has(key, t.ro)
39 }
40
41 func (t *testingDB) TestNewIterator(slice *util.Range) iterator.Iterator {
42         return t.NewIterator(slice, t.ro)
43 }
44
45 func (t *testingDB) TestClose() {
46         err := t.Close()
47         ExpectWithOffset(1, err).NotTo(HaveOccurred())
48         err = t.stor.Close()
49         ExpectWithOffset(1, err).NotTo(HaveOccurred())
50 }
51
52 func newTestingDB(o *opt.Options, ro *opt.ReadOptions, wo *opt.WriteOptions) *testingDB {
53         stor := testutil.NewStorage()
54         db, err := Open(stor, o)
55         // FIXME: This may be called from outside It, which may cause panic.
56         Expect(err).NotTo(HaveOccurred())
57         return &testingDB{
58                 DB:   db,
59                 ro:   ro,
60                 wo:   wo,
61                 stor: stor,
62         }
63 }
64
65 type testingTransaction struct {
66         *Transaction
67         ro *opt.ReadOptions
68         wo *opt.WriteOptions
69 }
70
71 func (t *testingTransaction) TestPut(key []byte, value []byte) error {
72         return t.Put(key, value, t.wo)
73 }
74
75 func (t *testingTransaction) TestDelete(key []byte) error {
76         return t.Delete(key, t.wo)
77 }
78
79 func (t *testingTransaction) TestGet(key []byte) (value []byte, err error) {
80         return t.Get(key, t.ro)
81 }
82
83 func (t *testingTransaction) TestHas(key []byte) (ret bool, err error) {
84         return t.Has(key, t.ro)
85 }
86
87 func (t *testingTransaction) TestNewIterator(slice *util.Range) iterator.Iterator {
88         return t.NewIterator(slice, t.ro)
89 }
90
91 func (t *testingTransaction) TestClose() {}