Initial cloud-services repo - gateway service + pkg modules
This commit is contained in:
125
pkg/clickhouse/clickhouse_test.go
Normal file
125
pkg/clickhouse/clickhouse_test.go
Normal file
@@ -0,0 +1,125 @@
|
||||
package clickhouse_test
|
||||
|
||||
import (
|
||||
"testing"
|
||||
|
||||
"fiskerinc.com/modules/clickhouse"
|
||||
"fiskerinc.com/modules/testhelper"
|
||||
)
|
||||
|
||||
func TestRetrieveDefaultFilters(t *testing.T) {
|
||||
filters := []clickhouse.CANFilterSchema{
|
||||
{
|
||||
ID: 1,
|
||||
Period: 2,
|
||||
},
|
||||
{
|
||||
ID: 3,
|
||||
Period: 4,
|
||||
},
|
||||
}
|
||||
|
||||
conn := &clickhouse.MockConn{ExpectedResult: filters}
|
||||
client := clickhouse.NewMockClient(conn)
|
||||
|
||||
defaults, err := client.RetrieveDefaultFilters()
|
||||
if err != nil {
|
||||
t.Errorf(testhelper.TestErrorTemplate, "TestRetrieveDefaultFilters", nil, err)
|
||||
}
|
||||
|
||||
for i := range filters {
|
||||
if filters[i].ID != defaults[i].ID {
|
||||
t.Errorf(testhelper.TestErrorTemplate, "TestRetrieveDefaultFilters", filters[i].ID, defaults[i].ID)
|
||||
}
|
||||
if filters[i].Period != defaults[i].Period {
|
||||
t.Errorf(testhelper.TestErrorTemplate, "TestRetrieveDefaultFilters", filters[i].Period, defaults[i].Period)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
func TestRetrieveFiltersForVehicle(t *testing.T) {
|
||||
filters := []clickhouse.CANFilterSchema{
|
||||
{
|
||||
ID: 1,
|
||||
Period: 2,
|
||||
},
|
||||
{
|
||||
ID: 3,
|
||||
Period: 4,
|
||||
},
|
||||
}
|
||||
|
||||
conn := &clickhouse.MockConn{ExpectedResult: filters}
|
||||
client := clickhouse.NewMockClient(conn)
|
||||
|
||||
defaults, err := client.RetrieveFiltersForVehicle("TESTVIN123")
|
||||
if err != nil {
|
||||
t.Errorf(testhelper.TestErrorTemplate, "TestRetrieveDefaultFilters", nil, err)
|
||||
}
|
||||
|
||||
for i := range filters {
|
||||
if filters[i].ID != defaults[i].ID {
|
||||
t.Errorf(testhelper.TestErrorTemplate, "TestRetrieveDefaultFilters", filters[i].ID, defaults[i].ID)
|
||||
}
|
||||
if filters[i].Period != defaults[i].Period {
|
||||
t.Errorf(testhelper.TestErrorTemplate, "TestRetrieveDefaultFilters", filters[i].Period, defaults[i].Period)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
func TestCreateDBCSignalQuery(t *testing.T) {
|
||||
|
||||
tests := []struct {
|
||||
name string
|
||||
input clickhouse.PageQueryOptions
|
||||
result string
|
||||
err error
|
||||
}{
|
||||
{
|
||||
name: "with no options",
|
||||
input: clickhouse.PageQueryOptions{
|
||||
Limit: 0,
|
||||
Offset: 0,
|
||||
},
|
||||
result: `select * from dbc_signals where dbc_hash = {dbc:String}`,
|
||||
err: nil,
|
||||
},
|
||||
{
|
||||
name: "with the offset option",
|
||||
input: clickhouse.PageQueryOptions{
|
||||
Limit: 0,
|
||||
Offset: 10,
|
||||
},
|
||||
result: `select * from dbc_signals where dbc_hash = {dbc:String} OFFSET {offs:UInt64}`,
|
||||
err: nil,
|
||||
},
|
||||
{
|
||||
name: "with the limit option",
|
||||
input: clickhouse.PageQueryOptions{
|
||||
Limit: 10,
|
||||
Offset: 0,
|
||||
},
|
||||
result: `select * from dbc_signals where dbc_hash = {dbc:String} LIMIT {lim:UInt64}`,
|
||||
err: nil,
|
||||
},
|
||||
{
|
||||
name: "with the offset and limit options",
|
||||
input: clickhouse.PageQueryOptions{
|
||||
Limit: 100,
|
||||
Offset: 10,
|
||||
},
|
||||
result: `select * from dbc_signals where dbc_hash = {dbc:String} LIMIT {lim:UInt64} OFFSET {offs:UInt64}`,
|
||||
err: nil,
|
||||
},
|
||||
}
|
||||
|
||||
for _, test := range tests {
|
||||
t.Run(test.name, func(t *testing.T) {
|
||||
ans := clickhouse.CreateDBCSignalQuery(test.input)
|
||||
if ans != test.result {
|
||||
t.Errorf("got %s, expected %s", ans, test.result)
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user