github.com/johnnyeven/libtools@v0.0.0-20191126065708-61829c1adf46/mq/redis/redis_broker_test.go (about)

     1  package redis
     2  
     3  import (
     4  	"fmt"
     5  	"testing"
     6  
     7  	"github.com/google/uuid"
     8  	"github.com/stretchr/testify/assert"
     9  
    10  	"github.com/johnnyeven/libtools/mq"
    11  	"github.com/johnnyeven/libtools/redis"
    12  )
    13  
    14  var r = &redis.Redis{
    15  	Name: "mq_test",
    16  	Host: "redis.staging.g7pay.net",
    17  	Port: 36379,
    18  }
    19  
    20  func init() {
    21  	r.MarshalDefaults(r)
    22  	r.Init()
    23  }
    24  
    25  func TestRedisBroker(t *testing.T) {
    26  	tt := assert.New(t)
    27  
    28  	channel := uuid.New().String()
    29  
    30  	broker := NewRedisBroker(r.GetCache().Pool, "mq-")
    31  
    32  	taskList := make([]*mq.Task, 0)
    33  
    34  	for i := 0; i < 10; i++ {
    35  		task := mq.NewTask(channel, "test", []byte(fmt.Sprintf("data %d", i)))
    36  		taskList = append(taskList, task)
    37  
    38  		err := broker.SendTask(task)
    39  		tt.NoError(err)
    40  	}
    41  
    42  	for i := 0; i < 10; i++ {
    43  		task, err := broker.GetTask(channel)
    44  		tt.NoError(err)
    45  		tt.Equal(taskList[i].ID, task.ID)
    46  	}
    47  }