Skip to content
Snippets Groups Projects
Select Git revision
  • 791225108def714ec5eaa5e8968fc5488fed9fd0
  • master default protected
  • v1.23.2
  • v1.23.1
  • v1.23.0
  • v1.22.0
  • v1.21.1
  • v1.21.0
  • v1.20.3
  • v1.20.2
  • v1.20.1
  • v1.20.0
  • v1.19.4
  • v1.19.3
  • v1.19.2
  • v1.19.1
  • v1.19.0
  • v1.18.2
  • v1.18.1
  • v1.18.0
  • v1.17.0
  • v1.16.1
22 results

database-5_test.go

Blame
  • database-5_test.go 1.22 KiB
    // Copyright 2023 schukai GmbH
    // SPDX-License-Identifier: AGPL-3.0
    package jobqueue
    
    import (
    	"github.com/stretchr/testify/assert"
    	"gorm.io/driver/sqlite"
    	"gorm.io/gorm"
    	"testing"
    )
    
    func TestWriteToDB5(t *testing.T) {
    
    	gormDB, err := gorm.Open(sqlite.Open("file:unique_id?mode=memory&cache=shared"), &gorm.Config{})
    	if err != nil {
    		t.Fatalf("an error occurred while opening the database: %v", err)
    	}
    	t.Cleanup(func() {
    		sqlDB, err := gormDB.DB()
    		if err != nil {
    			t.Fatalf("failed to get generic database object from GORM DB: %v", err)
    		}
    		_ = sqlDB.Close()
    	})
    
    	db := gormDB
    
    	manager := NewManager()
    	manager.SetDB(db)
    	err = manager.AddWorker(NewLocalWorker(1))
    	assert.Nil(t, err)
    
    	err = manager.Start()
    	assert.Nil(t, err)
    
    	mgr := manager
    
    	runner := &CounterRunnable{}
    	job := NewJob[CounterResult]("jobSameID", runner)
    
    	scheduler := &InstantScheduler{}
    	err = mgr.ScheduleJob(job, scheduler)
    	assert.Nil(t, err)
    
    	sameIDJob := NewJob[CounterResult]("jobSameID", runner)
    
    	manager.WaitSync()
    
    	// Trying to save a job with the same ID should do nothing
    	mgr.mu.Lock()
    	mgr.jobSyncer.Sync(sameIDJob)
    	mgr.mu.Unlock()
    
    	err = mgr.CancelJobSchedule("jobSameID")
    	assert.Nil(t, err)
    
    	manager.WaitSync()
    
    	assert.Nil(t, err)
    
    }