|
5 | 5 | "encoding/base64" |
6 | 6 | "encoding/json" |
7 | 7 | "fmt" |
| 8 | + "go.mongodb.org/atlas-sdk/v20240805005/internal/core" |
8 | 9 | "log" |
9 | 10 | "net/http" |
10 | 11 | "net/http/httptest" |
@@ -146,7 +147,7 @@ func TestOAuthClient_FetchToken_Failure(t *testing.T) { |
146 | 147 | assert.Contains(t, err.Error(), "failed to obtain Token") |
147 | 148 | } |
148 | 149 |
|
149 | | -// // Test CustomTransport to ensure Token is injected into requests |
| 150 | +// Test CustomTransport to ensure Token is injected into requests |
150 | 151 | func TestCustomTransport_RoundTrip(t *testing.T) { |
151 | 152 | // Mock the OAuth TokenCache |
152 | 153 | expiration := time.Now().Add(1 * time.Hour) |
@@ -186,3 +187,48 @@ func TestCustomTransport_RoundTrip(t *testing.T) { |
186 | 187 | assert.NoError(t, err) |
187 | 188 | assert.Equal(t, http.StatusOK, resp.StatusCode) |
188 | 189 | } |
| 190 | + |
| 191 | +// Test default User Agent |
| 192 | +func TestOAuthClient_DefaultUserAgent(t *testing.T) { |
| 193 | + // Assert default User Agent |
| 194 | + mockServer := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { |
| 195 | + assert.NotNil(t, r.Header.Get("User-Agent")) |
| 196 | + assert.Equal(t, core.DefaultUserAgent, r.Header.Get("User-Agent")) |
| 197 | + w.WriteHeader(http.StatusOK) |
| 198 | + })) |
| 199 | + defer mockServer.Close() |
| 200 | + |
| 201 | + mockCache := &MockTokenCache{} |
| 202 | + tokenSource := NewTokenSourceWithOptions(AtlasTokenSourceOptions{ |
| 203 | + ClientID: "clientID", |
| 204 | + ClientSecret: "clientSecret", |
| 205 | + TokenCache: mockCache, |
| 206 | + BaseURL: &mockServer.URL, |
| 207 | + }) |
| 208 | + |
| 209 | + _, _ = tokenSource.GetValidToken() |
| 210 | +} |
| 211 | + |
| 212 | +// Test custom User Agent |
| 213 | +func TestOAuthClient_CustomUserAgent(t *testing.T) { |
| 214 | + const customUserAgent = "/testing" |
| 215 | + |
| 216 | + // Assert custom User Agent |
| 217 | + mockServer := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { |
| 218 | + assert.NotNil(t, r.Header.Get("User-Agent")) |
| 219 | + assert.Equal(t, customUserAgent, r.Header.Get("User-Agent")) |
| 220 | + w.WriteHeader(http.StatusOK) |
| 221 | + })) |
| 222 | + defer mockServer.Close() |
| 223 | + |
| 224 | + mockCache := &MockTokenCache{} |
| 225 | + tokenSource := NewTokenSourceWithOptions(AtlasTokenSourceOptions{ |
| 226 | + ClientID: "clientID", |
| 227 | + ClientSecret: "clientSecret", |
| 228 | + UserAgent: customUserAgent, |
| 229 | + TokenCache: mockCache, |
| 230 | + BaseURL: &mockServer.URL, |
| 231 | + }) |
| 232 | + |
| 233 | + _, _ = tokenSource.GetValidToken() |
| 234 | +} |
0 commit comments