Я написал код, который будет взаимодействовать со службой EMR и на основе clusterId вернет состояние кластера. Я пытаюсь протестировать его, но не могу понять.
код:
func (hc *HandlerConfig) Handler(c entities.Cluster) (string, error) {
clusterID := aws.String(c.ClusterID)
clusterDetails, err := hc.EMRClient.DescribeCluster(&emr.DescribeClusterInput{ClusterId: clusterID})
if err != nil {
return "error", err
}
clusterStatus := *clusterDetails.Cluster.Status.State
return fmt.Sprintf(clusterStatus), nil
}
код модульного тестирования:
func TestHandler(t *testing.T) {
emrClient := new(emrtestutils.MockEMR)
hc := HandlerConfig{
EMRClient: emrClient,
}
input := &emr.DescribeClusterInput{ClusterId: aws.String("j-dfdslkj3kl213kj")}
// I'M STUCK HERE
output := &emr.DescribeClusterOutput{
Cluster
}
emrClient.On("DescribeCluster", input).Return(*output.Status.State)
res, err := hc.Handler(entities.Cluster{ClusterID: "j-dfdslkj3kl213kj"})
assert.NoError(t, err)
emrClient.AssertExpectations(t)
assert.Equal(t, res, output)
}
Я хочу указать фиктивное значение DescribeClusterOutput.
ссылка: https://docs.aws.amazon.com/sdk-for-go/api/service/emr/#EMR.DescribeCluster