Skip to content

Commit

Permalink
simplify tests (#591)
Browse files Browse the repository at this point in the history
  • Loading branch information
zhenghaoz committed Nov 17, 2022
1 parent 9003ee2 commit aee5a3d
Show file tree
Hide file tree
Showing 8 changed files with 783 additions and 1,412 deletions.
310 changes: 168 additions & 142 deletions storage/cache/database_test.go

Large diffs are not rendered by default.

95 changes: 25 additions & 70 deletions storage/cache/mongodb_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -16,11 +16,10 @@ package cache

import (
"context"
"github.com/stretchr/testify/assert"
"os"
"runtime"
"strings"
"testing"

"github.com/stretchr/testify/suite"
)

var (
Expand All @@ -38,84 +37,40 @@ func init() {
mongoUri = env("MONGO_URI", "mongodb://root:password@127.0.0.1:27017/")
}

type testMongo struct {
Database
}

func (db *testMongo) GetMongoDB(t *testing.T) *MongoDB {
var mongoDatabase *MongoDB
var ok bool
mongoDatabase, ok = db.Database.(*MongoDB)
assert.True(t, ok)
return mongoDatabase
}

func (db *testMongo) Close(t *testing.T) {
err := db.Database.Close()
assert.NoError(t, err)
type MongoTestSuite struct {
baseTestSuite
}

func newTestMongo(t *testing.T) *testMongo {
// retrieve test name
var testName string
pc, _, _, ok := runtime.Caller(1)
details := runtime.FuncForPC(pc)
if ok && details != nil {
splits := strings.Split(details.Name(), ".")
testName = splits[len(splits)-1]
} else {
t.Fatalf("failed to retrieve test name")
}

func (suite *MongoTestSuite) SetupSuite() {
ctx := context.Background()
database := new(testMongo)
var err error
// create database
database.Database, err = Open(mongoUri, "gorse_")
assert.NoError(t, err)
dbName := "gorse_" + testName
databaseComm := database.GetMongoDB(t)
assert.NoError(t, err)
suite.Database, err = Open(mongoUri, "gorse_")
suite.NoError(err)
dbName := "gorse_cache_test"
databaseComm := suite.getMongoDB()
suite.NoError(err)
err = databaseComm.client.Database(dbName).Drop(ctx)
if err == nil {
t.Log("delete existed database:", dbName)
suite.T().Log("delete existed database:", dbName)
}
err = database.Database.Close()
assert.NoError(t, err)
err = suite.Database.Close()
suite.NoError(err)
// create schema
database.Database, err = Open(mongoUri+dbName+"?authSource=admin&connect=direct", "gorse_")
assert.NoError(t, err)
err = database.Init()
assert.NoError(t, err)
return database
suite.Database, err = Open(mongoUri+dbName+"?authSource=admin&connect=direct", "gorse_")
suite.NoError(err)
err = suite.Database.Init()
suite.NoError(err)
}

func TestMongo_Meta(t *testing.T) {
db := newTestMongo(t)
defer db.Close(t)
testMeta(t, db.Database)
}

func TestMongo_Sort(t *testing.T) {
db := newTestMongo(t)
//defer db.Close(t)
testSort(t, db.Database)
}

func TestMongo_Set(t *testing.T) {
db := newTestMongo(t)
defer db.Close(t)
testSet(t, db.Database)
}

func TestMongo_Scan(t *testing.T) {
db := newTestMongo(t)
defer db.Close(t)
testScan(t, db.Database)
func (suite *MongoTestSuite) getMongoDB() *MongoDB {
var mongoDatabase *MongoDB
var ok bool
mongoDatabase, ok = suite.Database.(*MongoDB)
suite.True(ok)
return mongoDatabase
}

func TestMongo_Purge(t *testing.T) {
db := newTestMongo(t)
defer db.Close(t)
testPurge(t, db.Database)
func TestMongo(t *testing.T) {
suite.Run(t, new(MongoTestSuite))
}
43 changes: 4 additions & 39 deletions storage/cache/redis_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -15,11 +15,12 @@
package cache

import (
"github.com/stretchr/testify/assert"
"github.com/stretchr/testify/suite"
"os"
"testing"
"time"

"github.com/stretchr/testify/assert"
"github.com/stretchr/testify/suite"
)

var (
Expand All @@ -38,8 +39,7 @@ func init() {
}

type RedisTestSuite struct {
suite.Suite
Database
baseTestSuite
}

func (suite *RedisTestSuite) SetupSuite() {
Expand All @@ -48,41 +48,6 @@ func (suite *RedisTestSuite) SetupSuite() {
suite.NoError(err)
}

func (suite *RedisTestSuite) TearDownSuite() {
err := suite.Database.Close()
suite.NoError(err)
}

func (suite *RedisTestSuite) SetupTest() {
err := suite.Database.Purge()
suite.NoError(err)
}

func (suite *RedisTestSuite) TearDownTest() {
err := suite.Database.Purge()
suite.NoError(err)
}

func (suite *RedisTestSuite) TestMeta() {
testMeta(suite.T(), suite.Database)
}

func (suite *RedisTestSuite) TestSort() {
testSort(suite.T(), suite.Database)
}

func (suite *RedisTestSuite) TestSet() {
testSet(suite.T(), suite.Database)
}

func (suite *RedisTestSuite) TestScan() {
testScan(suite.T(), suite.Database)
}

func (suite *RedisTestSuite) TestPurge() {
testPurge(suite.T(), suite.Database)
}

func TestRedis(t *testing.T) {
suite.Run(t, new(RedisTestSuite))
}
Expand Down
Loading

0 comments on commit aee5a3d

Please sign in to comment.