Explorar el Código

SVI Добавление тестов словарю топиков; 38.7%

SVI hace 2 años
padre
commit
3a22cf4564
Se han modificado 1 ficheros con 79 adiciones y 2 borrados
  1. 79 2
      internal/dict_topic/dict_topic_test.go

+ 79 - 2
internal/dict_topic/dict_topic_test.go

@@ -1,9 +1,14 @@
 package dict_topic
 
-import "testing"
+import (
+	"testing"
+
+	"github.com/google/uuid"
+	"p78git.ddns.net/svi/gobus/api/netapi"
+)
 
 /*
-	Тест для ...
+	Тест для потокобезопасного словаря топиков.
 */
 
 type tester struct {
@@ -16,6 +21,78 @@ func TestAny(t *testing.T) {
 		t: t,
 	}
 	sf.create()
+	sf.pub()
+	sf.sub()
+}
+
+// Подписка клиента на топики
+func (sf *tester) sub() {
+	sf.t.Log("sub")
+	sf.subBad1()
+}
+
+// Нет клиента на подписку
+func (sf *tester) subBad1() {
+	sf.t.Log("subBad1")
+	err := sf.dictTopic.Subscribe(nil)
+	if err == nil {
+		sf.t.Fatalf("subBad1(): err==nil")
+	}
+}
+
+// Публикация в топик
+func (sf *tester) pub() {
+	sf.t.Log("pub")
+	sf.pubBad1()
+	sf.pubBud2()
+	sf.pubGood1()
+}
+
+func (sf *tester) pubGood1() {
+	sf.t.Log("pubGood1")
+	msg := &netapi.TopicMsg{
+		Source:  0,
+		Topic:   "test_topic",
+		BinMsg:  []byte{},
+		StrUuid: uuid.New().String(),
+	}
+	err := sf.dictTopic.Public(msg)
+	if err != nil {
+		sf.t.Fatalf("pubGood1(): err=%v", err)
+	}
+	if topic := sf.dictTopic.Get("test_topic"); topic == nil {
+		sf.t.Fatalf("createGood1(): topic==nil")
+	}
+	if len_ := sf.dictTopic.Len(); len_ != 1 {
+		sf.t.Fatalf("createGood1(): len_(%v)!=1", len_)
+	}
+	if size := sf.dictTopic.Size(); size != 34 {
+		sf.t.Fatalf("createGood1(): size(%v)!=34", size)
+	}
+}
+
+// Нет топика
+func (sf *tester) pubBud2() {
+	sf.t.Log("pubBud2")
+	msg := &netapi.TopicMsg{
+		Source:  0,
+		Topic:   "",
+		BinMsg:  []byte{},
+		StrUuid: "",
+	}
+	err := sf.dictTopic.Public(msg)
+	if err == nil {
+		sf.t.Fatalf("pubBud2(): err==nil")
+	}
+}
+
+// Нет сообщения для публикации
+func (sf *tester) pubBad1() {
+	sf.t.Log("pubBad1]")
+	err := sf.dictTopic.Public(nil)
+	if err == nil {
+		sf.t.Fatalf("pubBad1(): err==nil")
+	}
 }
 
 func (sf *tester) create() {