Skip to content

Commit

Permalink
refactor: create task worker testing
Browse files Browse the repository at this point in the history
  • Loading branch information
appleboy committed Mar 30, 2022
1 parent d465179 commit 7af73e0
Show file tree
Hide file tree
Showing 4 changed files with 45 additions and 37 deletions.
35 changes: 0 additions & 35 deletions queue_test.go
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
package queue

import (
"context"
"testing"
"time"

Expand Down Expand Up @@ -107,37 +106,3 @@ func TestCloseQueueAfterShutdown(t *testing.T) {
assert.Error(t, err)
assert.Equal(t, ErrQueueShutdown, err)
}

func TestQueueTaskJob(t *testing.T) {
w := &taskWorker{
messages: make(chan QueuedMessage, 10),
}
q, err := NewQueue(
WithWorker(w),
WithWorkerCount(5),
WithLogger(NewLogger()),
)
assert.NoError(t, err)
assert.NotNil(t, q)
q.Start()
assert.NoError(t, q.QueueTask(func(ctx context.Context) error {
time.Sleep(120 * time.Millisecond)
q.logger.Info("Add new task 1")
return nil
}))
assert.NoError(t, q.QueueTask(func(ctx context.Context) error {
time.Sleep(100 * time.Millisecond)
q.logger.Info("Add new task 2")
return nil
}))
assert.NoError(t, q.QueueTaskWithTimeout(50*time.Millisecond, func(ctx context.Context) error {
time.Sleep(80 * time.Millisecond)
return nil
}))
time.Sleep(50 * time.Millisecond)
q.Shutdown()
assert.Equal(t, ErrQueueShutdown, q.QueueTask(func(ctx context.Context) error {
return nil
}))
q.Wait()
}
2 changes: 1 addition & 1 deletion worker_message.go
Original file line number Diff line number Diff line change
Expand Up @@ -39,6 +39,6 @@ func (w *messageWorker) Request() (QueuedMessage, error) {
case task := <-w.messages:
return task, nil
default:
return nil, errors.New("no message in queue")
return nil, ErrNoTaskInQueue
}
}
2 changes: 1 addition & 1 deletion worker_task.go
Original file line number Diff line number Diff line change
Expand Up @@ -40,6 +40,6 @@ func (w *taskWorker) Request() (QueuedMessage, error) {
case task := <-w.messages:
return task, nil
default:
return nil, errors.New("no message in queue")
return nil, ErrNoTaskInQueue
}
}
43 changes: 43 additions & 0 deletions worker_task_test.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
package queue

import (
"context"
"testing"
"time"

"github.com/stretchr/testify/assert"
)

func TestQueueTaskJob(t *testing.T) {
w := &taskWorker{
messages: make(chan QueuedMessage, 10),
}
q, err := NewQueue(
WithWorker(w),
WithWorkerCount(5),
WithLogger(NewLogger()),
)
assert.NoError(t, err)
assert.NotNil(t, q)
q.Start()
assert.NoError(t, q.QueueTask(func(ctx context.Context) error {
time.Sleep(120 * time.Millisecond)
q.logger.Info("Add new task 1")
return nil
}))
assert.NoError(t, q.QueueTask(func(ctx context.Context) error {
time.Sleep(100 * time.Millisecond)
q.logger.Info("Add new task 2")
return nil
}))
assert.NoError(t, q.QueueTaskWithTimeout(50*time.Millisecond, func(ctx context.Context) error {
time.Sleep(80 * time.Millisecond)
return nil
}))
time.Sleep(50 * time.Millisecond)
q.Shutdown()
assert.Equal(t, ErrQueueShutdown, q.QueueTask(func(ctx context.Context) error {
return nil
}))
q.Wait()
}

0 comments on commit 7af73e0

Please sign in to comment.