Files
grafana-zabbix/pkg/datasource/zabbix_test.go
Alexander Zobnin 65e32c3b10 Refactor tests
2021-05-19 15:52:09 +03:00

47 lines
1.4 KiB
Go

package datasource
import (
"time"
"github.com/alexanderzobnin/grafana-zabbix/pkg/cache"
"github.com/alexanderzobnin/grafana-zabbix/pkg/zabbix"
"github.com/grafana/grafana-plugin-sdk-go/backend"
"github.com/grafana/grafana-plugin-sdk-go/backend/log"
)
var emptyParams = map[string]interface{}{}
var basicDatasourceInfo = &backend.DataSourceInstanceSettings{
ID: 1,
Name: "TestDatasource",
URL: "http://zabbix.org/zabbix",
JSONData: []byte(`{"username":"username", "password":"password", "cacheTTL":"10m"}`),
}
func mockZabbixQuery(method string, params ZabbixAPIParams) *zabbix.ZabbixAPIRequest {
return &zabbix.ZabbixAPIRequest{
Method: method,
Params: params,
}
}
func MockZabbixDataSource(body string, statusCode int) *ZabbixDatasourceInstance {
zabbixSettings, _ := readZabbixSettings(basicDatasourceInfo)
zabbixClient, _ := zabbix.MockZabbixClient(basicDatasourceInfo, body, statusCode)
return &ZabbixDatasourceInstance{
dsInfo: basicDatasourceInfo,
zabbix: zabbixClient,
Settings: zabbixSettings,
queryCache: NewDatasourceCache(cache.NoExpiration, 10*time.Minute),
logger: log.New(),
}
}
func MockZabbixDataSourceResponse(dsInstance *ZabbixDatasourceInstance, body string, statusCode int) *ZabbixDatasourceInstance {
zabbixClient, _ := zabbix.MockZabbixClientResponse(dsInstance.zabbix, body, statusCode)
dsInstance.zabbix = zabbixClient
return dsInstance
}