package topic_stat import ( "testing" "github.com/google/uuid" "p78git.ddns.net/svi/gobus/api/netapi" ) /* Тест для статистики топика */ type tester struct { t *testing.T stat *TopicStat } func TestTopicStat(t *testing.T) { sf := &tester{ 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") } } // Создание статистики func (sf *tester) create() { sf.t.Log("create") sf.createBad1() sf.createBad2() sf.createGood1() } func (sf *tester) createGood1() { sf.t.Log("createGood1") var err error msg := &netapi.TopicMsg{ Source: 0, Topic: "test_topic", BinMsg: []byte{}, StrUuid: "", } sf.stat, err = NewTopicStat(msg) if err != nil { sf.t.Fatalf("createGood1(): err=%v", err) } if sf.stat == nil { sf.t.Fatalf("createGood1(): stat==nil") } } func (sf *tester) createBad2() { sf.t.Log("createBad2") msg := &netapi.TopicMsg{ Source: 0, Topic: "", BinMsg: []byte{}, StrUuid: "", } stat, err := NewTopicStat(msg) if err == nil { sf.t.Fatalf("createBad2(): err==nil") } if stat != nil { sf.t.Fatalf("createBad2(): stat!=nil") } } // Нет сообщения func (sf *tester) createBad1() { sf.t.Log("createBad1") stat, err := NewTopicStat(nil) if err == nil { sf.t.Fatalf("createBad1(): err==nil") } if stat != nil { sf.t.Fatalf("createBad1(): stat!=nil") } }