50 lines
1005 B
Go
50 lines
1005 B
Go
package output
|
|
|
|
import (
|
|
"testing"
|
|
"time"
|
|
|
|
"github.com/FreifunkBremen/yanic/runtime"
|
|
"github.com/stretchr/testify/assert"
|
|
)
|
|
|
|
type testConn struct {
|
|
Output
|
|
CountSave int
|
|
}
|
|
|
|
func (c *testConn) Save(nodes *runtime.Nodes) {
|
|
c.CountSave++
|
|
}
|
|
|
|
func TestStart(t *testing.T) {
|
|
assert := assert.New(t)
|
|
|
|
conn := &testConn{}
|
|
config := &runtime.Config{
|
|
Nodes: struct {
|
|
Enable bool `toml:"enable"`
|
|
StatePath string `toml:"state_path"`
|
|
SaveInterval runtime.Duration `toml:"save_interval"`
|
|
OfflineAfter runtime.Duration `toml:"offline_after"`
|
|
PruneAfter runtime.Duration `toml:"prune_after"`
|
|
Output map[string]interface{}
|
|
}{
|
|
SaveInterval: runtime.Duration{Duration: time.Millisecond * 10},
|
|
},
|
|
}
|
|
assert.Nil(quit)
|
|
|
|
Start(conn, nil, config)
|
|
assert.NotNil(quit)
|
|
|
|
assert.Equal(0, conn.CountSave)
|
|
time.Sleep(time.Millisecond * 12)
|
|
assert.Equal(1, conn.CountSave)
|
|
|
|
time.Sleep(time.Millisecond * 12)
|
|
Close()
|
|
assert.Equal(2, conn.CountSave)
|
|
|
|
}
|