Initial cloud-services repo - gateway service + pkg modules

This commit is contained in:
Chris Rai
2026-01-30 23:14:52 -05:00
commit fbb820d7b3
1037 changed files with 171318 additions and 0 deletions

View 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)
}
})
}
}