Skip to content
Snippets Groups Projects
Select Git revision
  • d38a89299acad4e23a0c09e2190dbcde7a0114c5
  • 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

queue_test.go

Blame
  • queue_test.go 9.40 KiB
    package jobqueue
    
    import (
    	"errors"
    	"fmt"
    	"math/rand"
    	"testing"
    	"time"
    )
    
    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)