From d2b600c49bff9792fd8ed3553f36c50573c04fe6 Mon Sep 17 00:00:00 2001 From: Piers Shepperson Date: Mon, 19 Apr 2021 20:32:30 +0100 Subject: [PATCH 1/4] use sqlmock with gorm --- .../blobbercore/datastore/mock_store.go | 32 +++++++++++++++++++ 1 file changed, 32 insertions(+) create mode 100644 code/go/0chain.net/blobbercore/datastore/mock_store.go diff --git a/code/go/0chain.net/blobbercore/datastore/mock_store.go b/code/go/0chain.net/blobbercore/datastore/mock_store.go new file mode 100644 index 000000000..0e3416ad2 --- /dev/null +++ b/code/go/0chain.net/blobbercore/datastore/mock_store.go @@ -0,0 +1,32 @@ +package datastore + +import ( + "database/sql" + "github.com/DATA-DOG/go-sqlmock" + "github.com/stretchr/testify/require" + "gorm.io/driver/postgres" + "gorm.io/gorm" + "testing" +) + +func MockTheStore(t *testing.T) sqlmock.Sqlmock { + var db *sql.DB + var mock sqlmock.Sqlmock + var err error + db, mock, err = sqlmock.New() + require.NoError(t, err) + + var dialector = postgres.New(postgres.Config{ + DSN: "sqlmock_db_0", + DriverName: "postgres", + Conn: db, + PreferSimpleProtocol: true, + }) + var gdb *gorm.DB + gdb, err = gorm.Open(dialector, &gorm.Config{}) + require.NoError(t, err) + + SetDB(gdb) + + return mock +} From 22de79a69a6370a6b9f4c54673c2d3ded4fd554d Mon Sep 17 00:00:00 2001 From: Piers Shepperson Date: Tue, 20 Apr 2021 10:03:22 +0100 Subject: [PATCH 2/4] rename add _test --- .../blobbercore/datastore/{mock_store.go => mock_store_test.go} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename code/go/0chain.net/blobbercore/datastore/{mock_store.go => mock_store_test.go} (100%) diff --git a/code/go/0chain.net/blobbercore/datastore/mock_store.go b/code/go/0chain.net/blobbercore/datastore/mock_store_test.go similarity index 100% rename from code/go/0chain.net/blobbercore/datastore/mock_store.go rename to code/go/0chain.net/blobbercore/datastore/mock_store_test.go From 4a453b235ee119b04b3a3eb52aa06faef94f46de Mon Sep 17 00:00:00 2001 From: Piers Shepperson Date: Tue, 20 Apr 2021 13:18:47 +0100 Subject: [PATCH 3/4] remospf13/viperve _test --- .../blobbercore/datastore/{mock_store_test.go => mock_store.go} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename code/go/0chain.net/blobbercore/datastore/{mock_store_test.go => mock_store.go} (100%) diff --git a/code/go/0chain.net/blobbercore/datastore/mock_store_test.go b/code/go/0chain.net/blobbercore/datastore/mock_store.go similarity index 100% rename from code/go/0chain.net/blobbercore/datastore/mock_store_test.go rename to code/go/0chain.net/blobbercore/datastore/mock_store.go From 7dd59c4bdc1146d150af2c1a1f03eef4cea51389 Mon Sep 17 00:00:00 2001 From: Piers Shepperson Date: Tue, 20 Apr 2021 13:31:52 +0100 Subject: [PATCH 4/4] Change SetDB to unexported --- .../blobbercore/datastore/mock_store.go | 2 +- .../0chain.net/blobbercore/datastore/store.go | 2 +- .../blobbercore/handler/grpc_handler_test.go | 20 +------------------ 3 files changed, 3 insertions(+), 21 deletions(-) diff --git a/code/go/0chain.net/blobbercore/datastore/mock_store.go b/code/go/0chain.net/blobbercore/datastore/mock_store.go index 0e3416ad2..1fa3c4ef3 100644 --- a/code/go/0chain.net/blobbercore/datastore/mock_store.go +++ b/code/go/0chain.net/blobbercore/datastore/mock_store.go @@ -26,7 +26,7 @@ func MockTheStore(t *testing.T) sqlmock.Sqlmock { gdb, err = gorm.Open(dialector, &gorm.Config{}) require.NoError(t, err) - SetDB(gdb) + setDB(gdb) return mock } diff --git a/code/go/0chain.net/blobbercore/datastore/store.go b/code/go/0chain.net/blobbercore/datastore/store.go index 358ee50fc..6f4de4f3f 100644 --- a/code/go/0chain.net/blobbercore/datastore/store.go +++ b/code/go/0chain.net/blobbercore/datastore/store.go @@ -24,7 +24,7 @@ type Store struct { var store Store -func SetDB(db *gorm.DB) { +func setDB(db *gorm.DB) { store.db = db } diff --git a/code/go/0chain.net/blobbercore/handler/grpc_handler_test.go b/code/go/0chain.net/blobbercore/handler/grpc_handler_test.go index cf5aeeef1..f75fa93ee 100644 --- a/code/go/0chain.net/blobbercore/handler/grpc_handler_test.go +++ b/code/go/0chain.net/blobbercore/handler/grpc_handler_test.go @@ -27,7 +27,6 @@ import ( "google.golang.org/grpc/codes" "google.golang.org/grpc/status" "google.golang.org/grpc/test/bufconn" - "gorm.io/driver/postgres" "gorm.io/gorm" ) @@ -103,23 +102,6 @@ func setupServers(t *testing.T) (serverUr string) { return server.URL } -func setupDB() sqlmock.Sqlmock { - mDB, mock, _ := sqlmock.New() - dialector := postgres.New(postgres.Config{ - DSN: "sqlmock_db_0", - DriverName: "postgres", - Conn: mDB, - PreferSimpleProtocol: true, - }) - db, err := gorm.Open(dialector, &gorm.Config{}) - if err != nil { - panic(err) - } - datastore.SetDB(db) - - return mock -} - func makeTestClient() (blobbergrpc.BlobberClient, *grpc.ClientConn, error) { var ( ctx = context.Background() @@ -316,7 +298,7 @@ func Test_GetAllocation(t *testing.T) { for _, test := range tests { t.Run(test.name, func(t *testing.T) { - mock := setupDB() + var mock = datastore.MockTheStore(t) test.mockSetup(mock) if test.expectCommit { mock.ExpectCommit()