github.com/cayleygraph/cayley@v0.7.7/graph/nosql/nosqltest/nosqltest.go (about) 1 package nosqltest 2 3 import ( 4 "testing" 5 6 "github.com/stretchr/testify/require" 7 8 "github.com/cayleygraph/cayley/graph" 9 "github.com/cayleygraph/cayley/graph/graphtest" 10 gnosql "github.com/cayleygraph/cayley/graph/nosql" 11 "github.com/hidal-go/hidalgo/legacy/nosql" 12 "github.com/hidal-go/hidalgo/legacy/nosql/nosqltest" 13 ) 14 15 func toConfig(c nosql.Traits) graphtest.Config { 16 return graphtest.Config{ 17 NoPrimitives: true, 18 TimeInMs: c.TimeInMs, 19 OptimizesComparison: true, 20 SkipDeletedFromIterator: true, 21 SkipSizeCheckAfterDelete: true, 22 } 23 } 24 25 func NewQuadStore(t testing.TB, gen nosqltest.Database) (graph.QuadStore, graph.Options, func()) { 26 db, closer := gen.Run(t) 27 err := gnosql.Init(db, nil) 28 if err != nil { 29 db.Close() 30 closer() 31 require.Fail(t, "init failed", "%v", err) 32 } 33 tr := gen.Traits 34 kdb, err := gnosql.NewQuadStore(db, &tr, nil) 35 if err != nil { 36 db.Close() 37 closer() 38 require.Fail(t, "create failed", "%v", err) 39 } 40 return kdb, nil, func() { 41 kdb.Close() 42 closer() 43 } 44 } 45 46 func TestAll(t *testing.T, gen nosqltest.Database) { 47 c := toConfig(gen.Traits) 48 graphtest.TestAll(t, func(t testing.TB) (graph.QuadStore, graph.Options, func()) { 49 return NewQuadStore(t, gen) 50 }, &c) 51 } 52 53 func BenchmarkAll(t *testing.B, gen nosqltest.Database) { 54 c := toConfig(gen.Traits) 55 graphtest.BenchmarkAll(t, func(t testing.TB) (graph.QuadStore, graph.Options, func()) { 56 return NewQuadStore(t, gen) 57 }, &c) 58 }