// 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) } }