Something went wrong on our end
Select Git revision
runnable-gorm_test.go
-
Volker Schukai authoredVolker Schukai authored
runnable-gorm_test.go 1.29 KiB
// Copyright 2023 schukai GmbH
// SPDX-License-Identifier: AGPL-3.0
package jobqueue
import (
"context"
"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",
Query: "SELECT * FROM table_name",
}
ctx := context.Background()
ctx = DBRunnableWithDB(ctx, gormDB)
// Rufen Sie die Run()-Methode auf und überprüfen Sie die Ergebnisse
result, err := runnable.Run(ctx)
// Ü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)
}
}