github.com/jacobsoderblom/buffalo@v0.11.0/worker/simple_test.go (about)

     1  package worker
     2  
     3  import (
     4  	"sync"
     5  	"testing"
     6  	"time"
     7  
     8  	"github.com/stretchr/testify/require"
     9  )
    10  
    11  func Test_Simple_Perform(t *testing.T) {
    12  	r := require.New(t)
    13  
    14  	var hit bool
    15  	wg := &sync.WaitGroup{}
    16  	wg.Add(1)
    17  	w := NewSimple()
    18  	w.Register("x", func(Args) error {
    19  		hit = true
    20  		wg.Done()
    21  		return nil
    22  	})
    23  	w.Perform(Job{
    24  		Handler: "x",
    25  	})
    26  	wg.Wait()
    27  	r.True(hit)
    28  }
    29  
    30  func Test_Simple_PerformAt(t *testing.T) {
    31  	r := require.New(t)
    32  
    33  	var hit bool
    34  	wg := &sync.WaitGroup{}
    35  	wg.Add(1)
    36  	w := NewSimple()
    37  	w.Register("x", func(Args) error {
    38  		hit = true
    39  		wg.Done()
    40  		return nil
    41  	})
    42  	w.PerformAt(Job{
    43  		Handler: "x",
    44  	}, time.Now().Add(5*time.Millisecond))
    45  	wg.Wait()
    46  	r.True(hit)
    47  }
    48  
    49  func Test_Simple_PerformIn(t *testing.T) {
    50  	r := require.New(t)
    51  
    52  	var hit bool
    53  	wg := &sync.WaitGroup{}
    54  	wg.Add(1)
    55  	w := NewSimple()
    56  	w.Register("x", func(Args) error {
    57  		hit = true
    58  		wg.Done()
    59  		return nil
    60  	})
    61  	w.PerformIn(Job{
    62  		Handler: "x",
    63  	}, 5*time.Millisecond)
    64  	wg.Wait()
    65  	r.True(hit)
    66  }
    67  
    68  func Test_Simple_NoHandler(t *testing.T) {
    69  	r := require.New(t)
    70  
    71  	w := NewSimple()
    72  	err := w.Perform(Job{})
    73  	r.Error(err)
    74  }