113 lines
2.1 KiB
Go
113 lines
2.1 KiB
Go
|
package nats
|
||
|
|
||
|
import (
|
||
|
// stdlib
|
||
|
"flag"
|
||
|
"testing"
|
||
|
|
||
|
// local
|
||
|
"github.com/pztrn/ffmpeger/config"
|
||
|
|
||
|
// other
|
||
|
"github.com/nats-io/nats.go"
|
||
|
"github.com/stretchr/testify/require"
|
||
|
)
|
||
|
|
||
|
func TestNATSInitialization(t *testing.T) {
|
||
|
Initialize()
|
||
|
require.NotNil(t, handlers)
|
||
|
require.Empty(t, handlers)
|
||
|
}
|
||
|
|
||
|
func TestNATSStartListeningAndShutdown(t *testing.T) {
|
||
|
flag.CommandLine = flag.NewFlagSet("ffmpeger-test-nats", flag.ExitOnError)
|
||
|
|
||
|
Initialize()
|
||
|
require.NotNil(t, handlers)
|
||
|
require.Empty(t, handlers)
|
||
|
|
||
|
config.Initialize()
|
||
|
config.Cfg.NATS.ConnectionString = "nats://127.0.0.1:14222"
|
||
|
|
||
|
err := StartListening()
|
||
|
require.Nil(t, err)
|
||
|
|
||
|
err1 := Shutdown()
|
||
|
require.Nil(t, err1)
|
||
|
}
|
||
|
|
||
|
func TestNATSShutdownWithoutConnection(t *testing.T) {
|
||
|
Initialize()
|
||
|
require.NotNil(t, handlers)
|
||
|
require.Empty(t, handlers)
|
||
|
|
||
|
err := Shutdown()
|
||
|
require.NotNil(t, err)
|
||
|
}
|
||
|
|
||
|
func TestNATSConnectToWrongAddress(t *testing.T) {
|
||
|
flag.CommandLine = flag.NewFlagSet("ffmpeger-test-nats", flag.ExitOnError)
|
||
|
Initialize()
|
||
|
require.NotNil(t, handlers)
|
||
|
require.Empty(t, handlers)
|
||
|
|
||
|
config.Initialize()
|
||
|
config.Cfg.NATS.ConnectionString = "nats://127.0.0.1:14223"
|
||
|
|
||
|
err := StartListening()
|
||
|
require.NotNil(t, err)
|
||
|
}
|
||
|
|
||
|
func TestNATSAddHandler(t *testing.T) {
|
||
|
d := func(data []byte) {}
|
||
|
|
||
|
Initialize()
|
||
|
require.NotNil(t, handlers)
|
||
|
require.Empty(t, handlers)
|
||
|
|
||
|
hndl := &Handler{
|
||
|
Name: "testhandler",
|
||
|
Func: d,
|
||
|
}
|
||
|
AddHandler(hndl)
|
||
|
}
|
||
|
|
||
|
func TestNATSReceiveMessage(t *testing.T) {
|
||
|
flag.CommandLine = flag.NewFlagSet("ffmpeger-test-nats", flag.ExitOnError)
|
||
|
|
||
|
Initialize()
|
||
|
require.NotNil(t, handlers)
|
||
|
require.Empty(t, handlers)
|
||
|
|
||
|
config.Initialize()
|
||
|
config.Cfg.NATS.ConnectionString = "nats://127.0.0.1:14222"
|
||
|
|
||
|
err := StartListening()
|
||
|
require.Nil(t, err)
|
||
|
|
||
|
received := make(chan bool, 1)
|
||
|
d := func(data []byte) {
|
||
|
t.Log("Received data:", data)
|
||
|
received <- true
|
||
|
}
|
||
|
|
||
|
hndl := &Handler{
|
||
|
Name: "testhandler",
|
||
|
Func: d,
|
||
|
}
|
||
|
AddHandler(hndl)
|
||
|
|
||
|
// Send message.
|
||
|
nc, err1 := nats.Connect(config.Cfg.NATS.ConnectionString)
|
||
|
require.Nil(t, err1)
|
||
|
|
||
|
err2 := nc.Publish(Topic, []byte("Hello, world!"))
|
||
|
require.Nil(t, err2)
|
||
|
|
||
|
<-received
|
||
|
nc.Close()
|
||
|
|
||
|
err3 := Shutdown()
|
||
|
require.Nil(t, err3)
|
||
|
}
|