spark/client/testutils/utils.go (59 lines of code) (raw):
// Licensed to the Apache Software Foundation (ASF) under one or more
// contributor license agreements. See the NOTICE file distributed with
// this work for additional information regarding copyright ownership.
// The ASF licenses this file to You under the Apache License, Version 2.0
// (the "License"); you may not use this file except in compliance with
// the License. You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
package testutils
import (
"context"
"testing"
proto "github.com/apache/spark-connect-go/v35/internal/generated"
"google.golang.org/grpc"
)
// connectServiceClient is a mock implementation of the SparkConnectServiceClient interface.
type connectServiceClient struct {
t *testing.T
analysePlanResponse *proto.AnalyzePlanResponse
executePlanClient proto.SparkConnectService_ExecutePlanClient
err error
}
func (c *connectServiceClient) ExecutePlan(ctx context.Context, in *proto.ExecutePlanRequest,
opts ...grpc.CallOption,
) (proto.SparkConnectService_ExecutePlanClient, error) {
return c.executePlanClient, c.err
}
func (c *connectServiceClient) AnalyzePlan(ctx context.Context, in *proto.AnalyzePlanRequest,
opts ...grpc.CallOption,
) (*proto.AnalyzePlanResponse, error) {
return c.analysePlanResponse, c.err
}
func (c *connectServiceClient) Config(ctx context.Context, in *proto.ConfigRequest, opts ...grpc.CallOption) (*proto.ConfigResponse, error) {
return nil, c.err
}
func (c *connectServiceClient) AddArtifacts(ctx context.Context, opts ...grpc.CallOption) (proto.SparkConnectService_AddArtifactsClient, error) {
return nil, c.err
}
func (c *connectServiceClient) ArtifactStatus(ctx context.Context,
in *proto.ArtifactStatusesRequest, opts ...grpc.CallOption,
) (*proto.ArtifactStatusesResponse, error) {
return nil, c.err
}
func (c *connectServiceClient) Interrupt(ctx context.Context, in *proto.InterruptRequest,
opts ...grpc.CallOption,
) (*proto.InterruptResponse, error) {
return nil, c.err
}
func (c *connectServiceClient) ReattachExecute(ctx context.Context,
in *proto.ReattachExecuteRequest, opts ...grpc.CallOption,
) (proto.SparkConnectService_ReattachExecuteClient, error) {
return c.executePlanClient, c.err
}
func (c *connectServiceClient) ReleaseExecute(ctx context.Context, in *proto.ReleaseExecuteRequest,
opts ...grpc.CallOption,
) (*proto.ReleaseExecuteResponse, error) {
return nil, c.err
}
func NewConnectServiceClientMock(epc proto.SparkConnectService_ExecutePlanClient,
apr *proto.AnalyzePlanResponse, err error, t *testing.T,
) proto.SparkConnectServiceClient {
return &connectServiceClient{
t: t,
analysePlanResponse: apr,
executePlanClient: epc,
err: err,
}
}