Select Git revision
directories-go-lib.mk
-
Volker Schukai authoredVolker Schukai authored
runnable-gorm_test.go 1.18 KiB
package jobqueue
import (
"github.com/DATA-DOG/go-sqlmock"
"gorm.io/driver/mysql"
"gorm.io/gorm"
"testing"
)
func TestDBRunnable_Run(t *testing.T) {
// Mock-DB erstellen
db, mock, err := sqlmock.New()
if err != nil {
t.Fatalf("Could not create mock: %s", err)
}
gormDB, _ := gorm.Open(mysql.New(mysql.Config{
Conn: db,
SkipInitializeWithVersion: true,
}), &gorm.Config{})
//existsRows := sqlmock.NewRows([]string{"exists"}).
// AddRow(true)
//mock.ExpectQuery("SELECT EXISTS \\( SELECT 1 FROM information_schema\\.tables WHERE table_schema = 'public' AND table_name = 'myTable3' \\);").
// WillReturnRows(existsRows)
mock.ExpectExec("SELECT \\* FROM table_name").WillReturnResult(sqlmock.NewResult(1, 1))
// Erstellen Sie die zu testende Instanz
runnable := &DBRunnable{
Type: "mysql",
db: gormDB, // Injizierte Mock-DB
Query: "SELECT * FROM table_name",
}
// Rufen Sie die Run()-Methode auf und überprüfen Sie die Ergebnisse
result, err := runnable.Run()
// Überprüfungen hier
if err != nil {
t.Fatalf("Failed to run: %s", err)
}
if result.Status != ResultStatusSuccess {
t.Fatalf("Expected success, got: %d", result.Status)
}
}