You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

95 lines
2.2 KiB

package monitor_test
import (
"testing"
"time"
"github.com/stretchr/testify/assert"
tmtypes "github.com/tendermint/tendermint/types"
monitor "github.com/tendermint/tools/tm-monitor/monitor"
)
func TestNetworkNewBlock(t *testing.T) {
assert := assert.New(t)
n := monitor.NewNetwork()
n.NewBlock(tmtypes.Header{Height: 5, NumTxs: 100})
assert.Equal(uint64(5), n.Height)
assert.Equal(0.0, n.AvgBlockTime)
assert.Equal(0.0, n.AvgTxThroughput)
}
func TestNetworkNewBlockLatency(t *testing.T) {
assert := assert.New(t)
n := monitor.NewNetwork()
n.NewBlockLatency(9000000.0) // nanoseconds
assert.Equal(0.0, n.AvgBlockLatency)
}
func TestNetworkNodeIsDownThenOnline(t *testing.T) {
assert := assert.New(t)
n := monitor.NewNetwork()
n.NewNode("test")
n.NodeIsDown("test")
assert.Equal(0, n.NumNodesMonitoredOnline)
assert.Equal(monitor.Dead, n.Health)
n.NodeIsDown("test")
assert.Equal(0, n.NumNodesMonitoredOnline)
n.NodeIsOnline("test")
assert.Equal(1, n.NumNodesMonitoredOnline)
assert.Equal(monitor.ModerateHealth, n.Health)
n.NodeIsOnline("test")
assert.Equal(1, n.NumNodesMonitoredOnline)
}
func TestNetworkNewNode(t *testing.T) {
assert := assert.New(t)
n := monitor.NewNetwork()
assert.Equal(0, n.NumNodesMonitored)
assert.Equal(0, n.NumNodesMonitoredOnline)
n.NewNode("test")
assert.Equal(1, n.NumNodesMonitored)
assert.Equal(1, n.NumNodesMonitoredOnline)
}
func TestNetworkNodeDeleted(t *testing.T) {
assert := assert.New(t)
n := monitor.NewNetwork()
n.NewNode("test")
n.NodeDeleted("test")
assert.Equal(0, n.NumNodesMonitored)
assert.Equal(0, n.NumNodesMonitoredOnline)
}
func TestNetworkGetHealthString(t *testing.T) {
assert := assert.New(t)
n := monitor.NewNetwork()
assert.Equal("full", n.GetHealthString())
n.Health = monitor.ModerateHealth
assert.Equal("moderate", n.GetHealthString())
n.Health = monitor.Dead
assert.Equal("dead", n.GetHealthString())
}
func TestNetworkUptime(t *testing.T) {
assert := assert.New(t)
n := monitor.NewNetwork()
assert.Equal(100.0, n.Uptime())
}
func TestNetworkStartTime(t *testing.T) {
assert := assert.New(t)
n := monitor.NewNetwork()
assert.True(n.StartTime().Before(time.Now()))
}