pkg/api/mock.go (60 lines of code) (raw):

// Licensed to Elasticsearch B.V. under one or more contributor // license agreements. See the NOTICE file distributed with // this work for additional information regarding copyright // ownership. Elasticsearch B.V. 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 api import ( "fmt" "io" "github.com/elastic/cloud-sdk-go/pkg/api/mock" "github.com/elastic/cloud-sdk-go/pkg/auth" ) var ( // DefaultWriteMockHeaders can be used for test assertions. DefaultWriteMockHeaders = map[string][]string{ "Accept": {"application/json"}, "Authorization": {"ApiKey dummy"}, "Content-Type": {"application/json"}, "User-Agent": {fmt.Sprint("cloud-sdk-go/", Version)}, } // DefaultReadMockHeaders can be used for test assertions. DefaultReadMockHeaders = map[string][]string{ "Accept": {"application/json"}, "Authorization": {"ApiKey dummy"}, "User-Agent": {fmt.Sprint("cloud-sdk-go/", Version)}, } // DefaultMockHost can be used for test assertions DefaultMockHost = "mock.elastic.co" defaultMockSchema = "https" mockSchemaHost = fmt.Sprintf("%s://%s", defaultMockSchema, DefaultMockHost) ) // NewMock creates a new api.API from a list of Responses. Defaults to a dummy // APIKey for authentication, which is not checked func NewMock(res ...mock.Response) *API { api, err := NewAPI(Config{ Client: mock.NewClient(res...), Host: mockSchemaHost, AuthWriter: auth.APIKey("dummy"), }) if err != nil { panic(err) } return api } // NewDebugMock creates a new api.API from a list of Responses. Defaults to a // dummy APIKey for authentication, which is not checked. Additionally adds the // DebugTransport so that the responses go to the configured io.Writer. func NewDebugMock(o io.Writer, res ...mock.Response) *API { api, err := NewAPI(Config{ Client: mock.NewClient(res...), Host: mockSchemaHost, AuthWriter: auth.APIKey("dummy"), VerboseSettings: VerboseSettings{ Verbose: true, Device: o, }, }) if err != nil { panic(err) } return api } // NewMockMatchingByEndpoint creates a new api.API from a list of Responses, matching by endpoint. // Defaults to a dummy APIKey for authentication, which is not checked func NewMockMatchingByEndpoint(res map[string][]mock.Response) *API { api, err := NewAPI(Config{ Client: mock.NewMatchingByEndpointClient(res), Host: mockSchemaHost, AuthWriter: auth.APIKey("dummy"), }) if err != nil { panic(err) } return api }