azkustoingest/mock.go (89 lines of code) (raw):
package azkustoingest
import (
"context"
"github.com/Azure/azure-kusto-go/azkustodata"
"github.com/Azure/azure-kusto-go/azkustodata/errors"
"github.com/Azure/azure-kusto-go/azkustodata/query"
"github.com/Azure/azure-kusto-go/azkustodata/query/v1"
"github.com/Azure/azure-kusto-go/azkustodata/types"
"net/http"
)
type mockClient struct {
endpoint string
auth azkustodata.Authorization
onMgmt func(ctx context.Context, db string, query azkustodata.Statement, options ...azkustodata.QueryOption) (v1.Dataset, error)
}
func (m mockClient) Query(_ context.Context, _ string, _ azkustodata.Statement, _ ...azkustodata.QueryOption) (query.Dataset, error) {
panic("not implemented")
}
func (m mockClient) IterativeQuery(_ context.Context, _ string, _ azkustodata.Statement, _ ...azkustodata.QueryOption) (query.IterativeDataset, error) {
panic("not implemented")
}
func (m mockClient) ClientDetails() *azkustodata.ClientDetails {
return azkustodata.NewClientDetails("test", "test")
}
func (m mockClient) HttpClient() *http.Client {
return &http.Client{}
}
func (m mockClient) Close() error {
return nil
}
func (m mockClient) Auth() azkustodata.Authorization {
return m.auth
}
func (m mockClient) Endpoint() string {
return m.endpoint
}
func (m mockClient) Mgmt(ctx context.Context, db string, query azkustodata.Statement, options ...azkustodata.QueryOption) (v1.Dataset, error) {
if m.onMgmt != nil {
rows, err := m.onMgmt(ctx, db, query, options...)
if err != nil || rows != nil {
return rows, err
}
}
if query.String() == ".get kusto identity token" {
return v1.NewDataset(ctx, errors.OpMgmt, v1.V1{
Tables: []v1.RawTable{
{
TableName: "Table",
Columns: []v1.RawColumn{
{
ColumnName: "AuthorizationContext",
ColumnType: string(types.String),
},
},
Rows: []v1.RawRow{
{
Row: []interface{}{"mock"},
Errors: nil,
},
},
},
}})
}
return v1.NewDataset(ctx, errors.OpMgmt, v1.V1{
Tables: []v1.RawTable{
{
TableName: "Table",
Columns: []v1.RawColumn{
{
ColumnName: "ResourceTypeName",
ColumnType: string(types.String),
},
{
ColumnName: "StorageRoot",
ColumnType: string(types.String),
},
},
Rows: []v1.RawRow{},
},
}})
}
func newMockClient() mockClient {
return mockClient{
endpoint: "localhost",
auth: azkustodata.Authorization{
TokenProvider: &azkustodata.TokenProvider{},
},
}
}