Skip to content

Commit bbd6403

Browse files
committed
sub,client: WIP on mocking liftbridge client functions
Signed-off-by: Simarpreet Singh <simar@linux.com>
1 parent 82e7970 commit bbd6403

File tree

4 files changed

+46
-5
lines changed

4 files changed

+46
-5
lines changed

client_test.go

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
package main
2+
3+
import (
4+
"context"
5+
"fmt"
6+
"testing"
7+
8+
"github.com/liftbridge-io/go-liftbridge"
9+
"github.com/stretchr/testify/assert"
10+
)
11+
12+
func (mlbc MockLiftBridgeClient) CreateStream(ctx context.Context, stream liftbridge.StreamInfo) error {
13+
fmt.Println("fake CreateStream() called")
14+
return nil
15+
}
16+
17+
func Test_Client_CreateStream(t *testing.T) {
18+
mlbc := MockLiftBridgeClient{
19+
streamInfo: liftbridge.StreamInfo{
20+
Subject: "foo",
21+
Name: "foo-stream",
22+
ReplicationFactor: 3,
23+
},
24+
}
25+
assert.NoError(t, createStream(mlbc, context.Background(), mlbc.streamInfo))
26+
}

main.go

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package main
22

33
import (
4+
"context"
45
"sync"
56

67
liftbridge "github.com/liftbridge-io/go-liftbridge"
@@ -9,12 +10,14 @@ import (
910
type EventStreamClient interface {
1011
Pub()
1112
Sub()
13+
CreateStream(context.Context, liftbridge.StreamInfo) error
1214
}
1315

1416
type LiftBridgeClient struct {
1517
wg *sync.WaitGroup
1618
servers []string
1719
streamInfo liftbridge.StreamInfo
20+
client liftbridge.Client
1821
}
1922

2023
func main() {

main_test.go

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,11 +5,13 @@ import (
55
"sync"
66
"testing"
77

8+
liftbridge "github.com/liftbridge-io/go-liftbridge"
89
"github.com/stretchr/testify/assert"
910
)
1011

1112
type MockLiftBridgeClient struct {
12-
wg *sync.WaitGroup
13+
wg *sync.WaitGroup
14+
streamInfo liftbridge.StreamInfo
1315
}
1416

1517
func (mlbc MockLiftBridgeClient) Pub() {

sub.go

Lines changed: 14 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,10 @@ import (
88
lift "github.com/liftbridge-io/go-liftbridge/liftbridge-grpc"
99
)
1010

11+
func sub(lbcIface EventStreamClient) {
12+
lbcIface.Sub()
13+
}
14+
1115
func (lbc LiftBridgeClient) Sub() {
1216
defer lbc.wg.Done()
1317
fmt.Println("real Sub() called")
@@ -17,9 +21,10 @@ func (lbc LiftBridgeClient) Sub() {
1721
if err != nil {
1822
panic(err)
1923
}
20-
defer client.Close()
24+
lbc.client = client
25+
defer lbc.client.Close()
2126

22-
if err := client.CreateStream(context.Background(), lbc.streamInfo); err != nil {
27+
if err := lbc.client.CreateStream(context.Background(), lbc.streamInfo); err != nil {
2328
if err != liftbridge.ErrStreamExists {
2429
panic(err)
2530
}
@@ -38,6 +43,11 @@ func (lbc LiftBridgeClient) Sub() {
3843
<-ctx.Done()
3944
}
4045

41-
func sub(lbcIface EventStreamClient) {
42-
lbcIface.Sub()
46+
func createStream(lbcIface EventStreamClient, ctx context.Context, stream liftbridge.StreamInfo) error {
47+
return lbcIface.CreateStream(ctx, stream)
48+
}
49+
50+
func (lbc LiftBridgeClient) CreateStream(ctx context.Context, stream liftbridge.StreamInfo) error {
51+
fmt.Println("real createStream() called")
52+
return nil
4353
}

0 commit comments

Comments
 (0)