Skip to content

Instantly share code, notes, and snippets.

@mufti1
Last active March 5, 2019 09:51
Show Gist options
  • Save mufti1/49ad2e2fecd7b81e540c051a6c44110f to your computer and use it in GitHub Desktop.
Save mufti1/49ad2e2fecd7b81e540c051a6c44110f to your computer and use it in GitHub Desktop.
package producer_test
import (
"fmt"
"testing"
"github.com/Shopify/sarama/mocks"
"github.com/mufti1/kafka-example/producer"
)
func TestSendMessage(t *testing.T) {
t.Run("Send message OK", func(t *testing.T) {
// membuat producer mock
mockedProducer := mocks.NewSyncProducer(t, nil)
// membuat expect producer success atau berhasil mengirim pesan
mockedProducer.ExpectSendMessageAndSucceed()
kafka := &producer.KafkaProducer{
Producer: mockedProducer,
}
msg := "Message 1"
err := kafka.SendMessage("test_topic", msg)
if err != nil {
t.Errorf("Send message should not be error but have: %v", err)
}
})
t.Run("Send message NOK", func(t *testing.T) {
mockedProducer := mocks.NewSyncProducer(t, nil)
// membuat producer gagal mengirim pesan
mockedProducer.ExpectSendMessageAndFail(fmt.Errorf("Error"))
kafka := &producer.KafkaProducer{
Producer: mockedProducer,
}
msg := "Message 1"
err := kafka.SendMessage("test_topic", msg)
if err == nil {
t.Error("this should be error")
}
})
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment