Skip to content

Commit

Permalink
update test case
Browse files Browse the repository at this point in the history
  • Loading branch information
dobyte committed Feb 24, 2023
1 parent 162ab33 commit c72aa90
Show file tree
Hide file tree
Showing 2 changed files with 115 additions and 30 deletions.
72 changes: 58 additions & 14 deletions eventbus/nats/eventbus_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -4,52 +4,96 @@ import (
"context"
"github.com/dobyte/due/eventbus"
"github.com/dobyte/due/eventbus/nats"
"github.com/dobyte/due/eventbus/redis"
"log"
"testing"
"time"
)

var eb = nats.NewEventbus()

const (
loginTopic = "login"
paidTopic = "paid"
)

func TestEventbus_Publish(t *testing.T) {
func loginEventHandler(event *eventbus.Event) {
log.Printf("%+v\n", event)
}

func paidEventHandler(event *eventbus.Event) {
log.Printf("%+v\n", event)
}

func TestEventbus_Client1_Subscribe(t *testing.T) {
var (
err error
eb = nats.NewEventbus()
ctx = context.Background()
)

defer eb.Close()

fn := func(event *eventbus.Event) {
t.Log(event.Payload.String())
err = eb.Subscribe(ctx, loginTopic, loginEventHandler)
if err != nil {
t.Fatal(err)
}

err := eb.Subscribe(context.Background(), loginTopic, fn)
err = eb.Subscribe(ctx, paidTopic, paidEventHandler)
if err != nil {
t.Fatal(err)
}

err = eb.Subscribe(context.Background(), loginTopic, fn)
t.Log("subscribe success")

time.Sleep(30 * time.Second)
}

func TestEventbus_Client2_Subscribe(t *testing.T) {
var (
err error
eb = nats.NewEventbus()
ctx = context.Background()
)

defer eb.Close()

err = eb.Subscribe(ctx, loginTopic, loginEventHandler)
if err != nil {
t.Fatal(err)
}

err = eb.Unsubscribe(context.Background(), loginTopic, fn)
err = eb.Subscribe(ctx, paidTopic, paidEventHandler)
if err != nil {
t.Fatal(err)
}

err = eb.Subscribe(context.Background(), loginTopic, func(event *eventbus.Event) {
t.Logf("%+v", event.Payload.String())
})
err = eb.Unsubscribe(context.Background(), loginTopic, loginEventHandler)
if err != nil {
t.Fatal(err)
}

err = eb.Publish(context.Background(), loginTopic, "login")
t.Log("subscribe success")

time.Sleep(30 * time.Second)
}

func TestEventbus_Publish(t *testing.T) {
var (
err error
eb = redis.NewEventbus()
ctx = context.Background()
)

defer eb.Close()

err = eb.Publish(ctx, loginTopic, "login")
if err != nil {
t.Fatal(err)
}

t.Log("publish success")
err = eb.Publish(ctx, paidTopic, "paid")
if err != nil {
t.Fatal(err)
}

time.Sleep(5 * time.Second)
t.Log("publish success")
}
73 changes: 57 additions & 16 deletions eventbus/redis/eventbus_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -4,54 +4,95 @@ import (
"context"
"github.com/dobyte/due/eventbus"
"github.com/dobyte/due/eventbus/redis"
"log"
"testing"
"time"
)

var eb = redis.NewEventbus(
redis.WithAddrs("127.0.0.1:6379"),
)

const (
loginTopic = "login"
paidTopic = "paid"
)

func TestEventbus_Publish(t *testing.T) {
func loginEventHandler(event *eventbus.Event) {
log.Printf("%+v\n", event)
}

func paidEventHandler(event *eventbus.Event) {
log.Printf("%+v\n", event)
}

func TestEventbus_Client1_Subscribe(t *testing.T) {
var (
err error
eb = redis.NewEventbus()
ctx = context.Background()
)

defer eb.Close()

fn := func(event *eventbus.Event) {
t.Log(event.Payload.String())
err = eb.Subscribe(ctx, loginTopic, loginEventHandler)
if err != nil {
t.Fatal(err)
}

err = eb.Subscribe(ctx, paidTopic, paidEventHandler)
if err != nil {
t.Fatal(err)
}

err := eb.Subscribe(context.Background(), loginTopic, fn)
t.Log("subscribe success")

time.Sleep(30 * time.Second)
}

func TestEventbus_Client2_Subscribe(t *testing.T) {
var (
err error
eb = redis.NewEventbus()
ctx = context.Background()
)

defer eb.Close()

err = eb.Subscribe(ctx, loginTopic, loginEventHandler)
if err != nil {
t.Fatal(err)
}

err = eb.Subscribe(context.Background(), loginTopic, fn)
err = eb.Subscribe(ctx, paidTopic, paidEventHandler)
if err != nil {
t.Fatal(err)
}

err = eb.Unsubscribe(context.Background(), loginTopic, fn)
err = eb.Unsubscribe(ctx, loginTopic, loginEventHandler)
if err != nil {
t.Fatal(err)
}

err = eb.Subscribe(context.Background(), loginTopic, func(event *eventbus.Event) {
t.Logf("%+v", event.Payload.String())
})
t.Log("subscribe success")

time.Sleep(30 * time.Second)
}

func TestEventbus_Publish(t *testing.T) {
var (
err error
eb = redis.NewEventbus()
ctx = context.Background()
)

defer eb.Close()

err = eb.Publish(ctx, loginTopic, "login")
if err != nil {
t.Fatal(err)
}

err = eb.Publish(context.Background(), loginTopic, "login")
err = eb.Publish(ctx, paidTopic, "paid")
if err != nil {
t.Fatal(err)
}

t.Log("publish success")

time.Sleep(5 * time.Second)
}

0 comments on commit c72aa90

Please sign in to comment.