mirror of
https://gitee.com/rulego/streamsql.git
synced 2026-04-07 21:13:04 +00:00
46 lines
1.1 KiB
Go
46 lines
1.1 KiB
Go
package streamsql
|
|
|
|
import (
|
|
"testing"
|
|
"time"
|
|
|
|
"github.com/stretchr/testify/assert"
|
|
)
|
|
|
|
// TestPrintTable 测试PrintTable方法的基本功能
|
|
func TestPrintTable(t *testing.T) {
|
|
// 创建StreamSQL实例并测试PrintTable
|
|
ssql := New()
|
|
err := ssql.Execute("SELECT device, AVG(temperature) as avg_temp FROM stream GROUP BY device, TumblingWindow('2s')")
|
|
assert.NoError(t, err)
|
|
|
|
// 使用PrintTable方法(不验证输出内容,只确保不会panic)
|
|
assert.NotPanics(t, func() {
|
|
ssql.PrintTable()
|
|
}, "PrintTable方法不应该panic")
|
|
|
|
// 发送测试数据
|
|
testData := []map[string]interface{}{
|
|
{"device": "sensor1", "temperature": 25.0},
|
|
{"device": "sensor2", "temperature": 30.0},
|
|
}
|
|
|
|
for _, data := range testData {
|
|
ssql.Emit(data)
|
|
}
|
|
|
|
// 等待窗口触发
|
|
time.Sleep(3 * time.Second)
|
|
}
|
|
|
|
// TestPrintTableFormat 测试printTableFormat方法处理不同数据类型
|
|
func TestPrintTableFormat(t *testing.T) {
|
|
ssql := New()
|
|
|
|
// 测试不同类型的数据,确保不会panic
|
|
assert.NotPanics(t, func() {
|
|
// 测试空切片
|
|
ssql.printTableFormat([]map[string]interface{}{})
|
|
}, "空切片不应该panic")
|
|
}
|