|
|
@@ -3,6 +3,8 @@ package topic_stat
|
|
|
import (
|
|
|
"testing"
|
|
|
|
|
|
+ "github.com/google/uuid"
|
|
|
+
|
|
|
"p78git.ddns.net/svi/gobus/api/netapi"
|
|
|
)
|
|
|
|
|
|
@@ -20,6 +22,84 @@ func TestTopicStat(t *testing.T) {
|
|
|
t: t,
|
|
|
}
|
|
|
sf.create()
|
|
|
+ sf.update()
|
|
|
+}
|
|
|
+
|
|
|
+// Обновляет статистику топика
|
|
|
+func (sf *tester) update() {
|
|
|
+ sf.t.Log("update")
|
|
|
+ sf.updateBad1()
|
|
|
+ sf.updateBad2()
|
|
|
+ sf.updateBad3()
|
|
|
+ sf.updateGood1()
|
|
|
+}
|
|
|
+
|
|
|
+func (sf *tester) updateGood1() {
|
|
|
+ sf.t.Log("updateGood1")
|
|
|
+ msg := &netapi.TopicMsg{
|
|
|
+ Source: 0,
|
|
|
+ Topic: "test_topic",
|
|
|
+ BinMsg: []byte{},
|
|
|
+ StrUuid: uuid.New().String(),
|
|
|
+ }
|
|
|
+ err := sf.stat.Update(msg)
|
|
|
+ if err != nil {
|
|
|
+ sf.t.Fatalf("updateGood1(): err=%v", err)
|
|
|
+ }
|
|
|
+ if name := sf.stat.Name(); name != "test_topic" {
|
|
|
+ sf.t.Fatalf("updateGood1(): name(%q)!='test_topic'", name)
|
|
|
+ }
|
|
|
+ if cErr := sf.stat.CountErr(); cErr != 3 {
|
|
|
+ sf.t.Fatalf("createGood1(): cErr(%v)!=3", cErr)
|
|
|
+ }
|
|
|
+ if cMsg := sf.stat.CountMsg(); cMsg != 4 {
|
|
|
+ sf.t.Fatalf("createGood1(): cMsg(%v)!=4", cMsg)
|
|
|
+ }
|
|
|
+ if cTraff := sf.stat.CountTraff(); cTraff != 34 {
|
|
|
+ sf.t.Fatalf("createGood1(): cTraff(%v)!=34", cTraff)
|
|
|
+ }
|
|
|
+ if cSize := sf.stat.Size(); cSize != 34 {
|
|
|
+ sf.t.Fatalf("createGood1(): cSize(%v)!=34", cSize)
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
+// Кривой UUID
|
|
|
+func (sf *tester) updateBad3() {
|
|
|
+ sf.t.Log("updateBad3")
|
|
|
+ msg := &netapi.TopicMsg{
|
|
|
+ Source: 0,
|
|
|
+ Topic: "test_topic",
|
|
|
+ BinMsg: []byte{},
|
|
|
+ StrUuid: "",
|
|
|
+ }
|
|
|
+ err := sf.stat.Update(msg)
|
|
|
+ if err == nil {
|
|
|
+ sf.t.Fatalf("updateBad3(): err==nil")
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
+// Кривой топик
|
|
|
+func (sf *tester) updateBad2() {
|
|
|
+ sf.t.Log("updateBad2")
|
|
|
+ msg := &netapi.TopicMsg{
|
|
|
+ Source: 0,
|
|
|
+ Topic: "",
|
|
|
+ BinMsg: []byte{},
|
|
|
+ StrUuid: "",
|
|
|
+ }
|
|
|
+ err := sf.stat.Update(msg)
|
|
|
+ if err == nil {
|
|
|
+ sf.t.Fatalf("updateBad2(): err==nil")
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
+// Нет сообщения
|
|
|
+func (sf *tester) updateBad1() {
|
|
|
+ sf.t.Log("createBad1")
|
|
|
+ err := sf.stat.Update(nil)
|
|
|
+ if err == nil {
|
|
|
+ sf.t.Fatalf("updateBad1(): err==nil")
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
// Создание статистики
|