Skip to content

Commit

Permalink
Merge pull request #20 from fabriziosestito/test/add-publisher-itnegr…
Browse files Browse the repository at this point in the history
…ation-test

test: add messaging.Publisher integration test
  • Loading branch information
flavio authored Nov 4, 2024
2 parents f8510f3 + 887d1a5 commit d9cc879
Showing 1 changed file with 53 additions and 0 deletions.
53 changes: 53 additions & 0 deletions internal/messaging/publisher_test.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,53 @@
package messaging

import (
"encoding/json"
"testing"
"time"

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

type testMessage struct {
Data string `json:"data"`
}

func (m testMessage) MessageType() string {
return "test-type"
}

func TestPublisher_Publish(t *testing.T) {
ns, err := NewServer()
require.NoError(t, err)
defer ns.Shutdown()

js, err := NewJetStreamContext(ns)
require.NoError(t, err)

publisher := NewPublisher(js)

msg := testMessage{
Data: "test data",
}

err = publisher.Publish(msg)
require.NoError(t, err)

sub, err := js.SubscribeSync(SbombasticSubject)
require.NoError(t, err)
defer func() {
err := sub.Unsubscribe()
require.NoError(t, err)
}()

receivedMsg, err := sub.NextMsg(2 * time.Second)
require.NoError(t, err)

assert.Equal(t, msg.MessageType(), receivedMsg.Header.Get(MessageTypeHeader))

var receivedData testMessage
err = json.Unmarshal(receivedMsg.Data, &receivedData)
require.NoError(t, err)
assert.Equal(t, msg.Data, receivedData.Data)
}

0 comments on commit d9cc879

Please sign in to comment.