...
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 package externalaccount
16
17 import (
18 "context"
19 "testing"
20
21 "cloud.google.com/go/auth/internal/credsfile"
22 )
23
24 func TestRetrieveFileSubjectToken(t *testing.T) {
25 var tests = []struct {
26 name string
27 cs *credsfile.CredentialSource
28 want string
29 }{
30 {
31 name: "untyped file format",
32 cs: &credsfile.CredentialSource{
33 File: textBaseCredPath,
34 },
35 want: "street123",
36 },
37 {
38 name: "text file format",
39 cs: &credsfile.CredentialSource{
40 File: textBaseCredPath,
41 Format: &credsfile.Format{Type: fileTypeText},
42 },
43 want: "street123",
44 },
45 {
46 name: "JSON file format",
47 cs: &credsfile.CredentialSource{
48 File: jsonBaseCredPath,
49 Format: &credsfile.Format{Type: fileTypeJSON, SubjectTokenFieldName: "SubjToken"},
50 },
51 want: "321road",
52 },
53 }
54
55 for _, test := range tests {
56 t.Run(test.name, func(t *testing.T) {
57 opts := cloneTestOpts()
58 opts.CredentialSource = test.cs
59 base, err := newSubjectTokenProvider(opts)
60 if err != nil {
61 t.Fatalf("parse() failed %v", err)
62 }
63
64 out, err := base.subjectToken(context.Background())
65 if err != nil {
66 t.Errorf("Method subjectToken() errored.")
67 } else if test.want != out {
68 t.Errorf("got %v, want %v", out, test.want)
69 }
70 if got, want := base.providerType(), fileProviderType; got != want {
71 t.Fatalf("got %q, want %q", got, want)
72 }
73 })
74 }
75 }
76
View as plain text