Skip to content
Snippets Groups Projects
Select Git revision
  • 3125bf9eaeaf7cb032fadcb6422341d4da54feb9
  • master default protected
  • 1.31
  • 4.27.0
  • 4.26.0
  • 4.25.5
  • 4.25.4
  • 4.25.3
  • 4.25.2
  • 4.25.1
  • 4.25.0
  • 4.24.3
  • 4.24.2
  • 4.24.1
  • 4.24.0
  • 4.23.6
  • 4.23.5
  • 4.23.4
  • 4.23.3
  • 4.23.2
  • 4.23.1
  • 4.23.0
  • 4.22.3
23 results

217.html

Blame
  • queue_test.go 4.89 KiB
    package jobqueue
    
    import (
    	"testing"
    )
    
    func TestEnqueueJobAlreadyExists(t *testing.T) {
    	runner := &DummyRunnable{}
    	job := NewJob[DummyResult](JobID("1"), runner)
    	q := NewQueue(nil)
    
    	_ = q.Enqueue(job)
    	err := q.Enqueue(job)
    	if err != ErrJobAlreadyExists {
    		t.Fatalf("Expected ErrJobAlreadyExists, got %v", err)
    	}
    }
    
    func TestEnqueueAndDequeue(t *testing.T) {
    
    	runner := &DummyRunnable{}
    
    	q := NewQueue(nil)
    	job1 := NewJob[DummyResult](JobID("1"), runner)
    	job1.SetPriority(PriorityHigh)
    	job2 := NewJob[DummyResult](JobID("2"), runner)
    	_ = q.Enqueue(job1)
    	_ = q.Enqueue(job2)
    	dequeuedJob, err := q.Dequeue()
    	if err != nil || dequeuedJob.GetID() != JobID("1") {
    		t.Fatalf("Unexpected dequeue result: jobID %s, err %v", dequeuedJob.GetID(), err)
    	}
    }
    
    func TestEnqueueAndDequeue2(t *testing.T) {
    
    	runner := &DummyRunnable{}
    
    	q := NewQueue(nil)
    	job1 := NewJob[DummyResult](JobID("1"), runner)
    	job2 := NewJob[DummyResult](JobID("2"), runner)
    
    	job2.AddDependency(JobID("1"))
    
    	_ = q.Enqueue(job1)
    	_ = q.Enqueue(job2)
    	dequeuedJob, err := q.Dequeue()
    	if err != nil {
    		t.Fatalf("Unexpected error: %v", err)
    	}
    
    	if dequeuedJob.GetID() != JobID("1") {
    		t.Fatalf("Unexpected dequeue result: jobID %s", dequeuedJob.GetID())
    	}
    }
    
    func TestDependencyResolution(t *testing.T) {
    	runner := &DummyRunnable{}
    	q := NewQueue(nil)
    	job1 := NewJob[DummyResult](JobID("1"), runner)
    	job2 := NewJob[DummyResult](JobID("2"), runner)
    	job3 := NewJob[DummyResult](JobID("3"), runner)
    
    	_ = q.Enqueue(job3)
    	_ = q.Enqueue(job2)
    	_ = q.Enqueue(job1)
    
    	contains := func(arr []JobID, id JobID) bool {
    		for _, v := range arr {
    			if v == id {