|
|
@@ -3,6 +3,7 @@ package topic
|
|
|
import (
|
|
|
"testing"
|
|
|
|
|
|
+ "github.com/google/uuid"
|
|
|
"p78git.ddns.net/svi/gobus/api/netapi"
|
|
|
"p78git.ddns.net/svi/gobus/pkg/net/client_proxy_buffer"
|
|
|
)
|
|
|
@@ -14,6 +15,7 @@ import (
|
|
|
type tester struct {
|
|
|
t *testing.T
|
|
|
topic *Topic
|
|
|
+ proxy *client_proxy_buffer.ClientProxyBuffer
|
|
|
}
|
|
|
|
|
|
func TestTopic(t *testing.T) {
|
|
|
@@ -22,6 +24,55 @@ func TestTopic(t *testing.T) {
|
|
|
}
|
|
|
sf.create()
|
|
|
sf.sub()
|
|
|
+ sf.set()
|
|
|
+}
|
|
|
+
|
|
|
+// Установка сообщения
|
|
|
+func (sf *tester) set() {
|
|
|
+ sf.t.Log("set")
|
|
|
+ sf.setBad1()
|
|
|
+ sf.setGood1()
|
|
|
+ sf.setGood2()
|
|
|
+}
|
|
|
+
|
|
|
+// Клиент больше не работает
|
|
|
+func (sf *tester) setGood2() {
|
|
|
+ sf.t.Log("setGood2")
|
|
|
+ sf.proxy.ResetWork()
|
|
|
+ msg := &netapi.TopicMsg{
|
|
|
+ Source: 0,
|
|
|
+ Topic: "test_topic",
|
|
|
+ BinMsg: []byte{},
|
|
|
+ StrUuid: uuid.New().String(),
|
|
|
+ }
|
|
|
+ err := sf.topic.Set(msg)
|
|
|
+ if err != nil {
|
|
|
+ sf.t.Fatalf("setGood2(): err=%v", err)
|
|
|
+ }
|
|
|
+ sf.topic.Unsubscribe(sf.proxy.ClientName())
|
|
|
+}
|
|
|
+
|
|
|
+func (sf *tester) setGood1() {
|
|
|
+ sf.t.Log("setGood1")
|
|
|
+ msg := &netapi.TopicMsg{
|
|
|
+ Source: 0,
|
|
|
+ Topic: "test_topic",
|
|
|
+ BinMsg: []byte{},
|
|
|
+ StrUuid: uuid.New().String(),
|
|
|
+ }
|
|
|
+ err := sf.topic.Set(msg)
|
|
|
+ if err != nil {
|
|
|
+ sf.t.Fatalf("setGood1(): err=%v", err)
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
+// Нет сообщения
|
|
|
+func (sf *tester) setBad1() {
|
|
|
+ sf.t.Log("setBad1")
|
|
|
+ err := sf.topic.Set(nil)
|
|
|
+ if err == nil {
|
|
|
+ sf.t.Fatalf("setBad1(): err==nil")
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
// Подписка клиента на топик
|
|
|
@@ -39,11 +90,12 @@ func (sf *tester) subGood1() {
|
|
|
MsgSumSizeLimit: 0,
|
|
|
MsgSaveSecondLimit: 0,
|
|
|
}
|
|
|
- proxy, err := client_proxy_buffer.NewClientProxyBuffer(req)
|
|
|
+ var err error
|
|
|
+ sf.proxy, err = client_proxy_buffer.NewClientProxyBuffer(req)
|
|
|
if err != nil {
|
|
|
sf.t.Fatalf("subGood1(): err=%v", err)
|
|
|
}
|
|
|
- err = sf.topic.Subscribe(proxy)
|
|
|
+ err = sf.topic.Subscribe(sf.proxy)
|
|
|
if err != nil {
|
|
|
sf.t.Fatalf("subGood1(): err=%v", err)
|
|
|
}
|