|
- // Copyright 2017 Google Inc. All Rights Reserved.
- //
- // Licensed 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 option
-
- import (
- "testing"
-
- "github.com/google/go-cmp/cmp"
- "github.com/google/go-cmp/cmp/cmpopts"
- "golang.org/x/oauth2/google"
- "google.golang.org/api/internal"
- "google.golang.org/grpc"
- )
-
- // Check that the slice passed into WithScopes is copied.
- func TestCopyScopes(t *testing.T) {
- o := &internal.DialSettings{}
-
- scopes := []string{"a", "b"}
- WithScopes(scopes...).Apply(o)
-
- // Modify after using.
- scopes[1] = "c"
-
- if o.Scopes[0] != "a" || o.Scopes[1] != "b" {
- t.Errorf("want ['a', 'b'], got %+v", o.Scopes)
- }
- }
-
- func TestApply(t *testing.T) {
- conn := &grpc.ClientConn{}
- opts := []ClientOption{
- WithEndpoint("https://example.com:443"),
- WithScopes("a"), // the next WithScopes should overwrite this one
- WithScopes("https://example.com/auth/helloworld", "https://example.com/auth/otherthing"),
- WithGRPCConn(conn),
- WithUserAgent("ua"),
- WithCredentialsFile("service-account.json"),
- WithCredentials(&google.DefaultCredentials{ProjectID: "p"}),
- WithAPIKey("api-key"),
- }
- var got internal.DialSettings
- for _, opt := range opts {
- opt.Apply(&got)
- }
- want := internal.DialSettings{
- Scopes: []string{"https://example.com/auth/helloworld", "https://example.com/auth/otherthing"},
- UserAgent: "ua",
- Endpoint: "https://example.com:443",
- GRPCConn: conn,
- Credentials: &google.DefaultCredentials{ProjectID: "p"},
- CredentialsFile: "service-account.json",
- APIKey: "api-key",
- }
- if !cmp.Equal(got, want, cmpopts.IgnoreUnexported(grpc.ClientConn{})) {
- t.Errorf("\ngot %#v\nwant %#v", got, want)
- }
- }
|