Skip to content

Commit 18c5d8e

Browse files
author
Hao Chen
committed
Added test for login with subscriptionName specified only.
1 parent d076ad8 commit 18c5d8e

File tree

2 files changed

+56
-0
lines changed

2 files changed

+56
-0
lines changed

src/ResourceManager/Profile/Commands.Profile.Test/AzureRMProfileTests.cs

Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -104,6 +104,51 @@ public void SubscriptionIdNotInFirstTenant()
104104
null);
105105
}
106106

107+
[Fact]
108+
[Trait(Category.AcceptanceType, Category.CheckIn)]
109+
public void SubscriptionNameNotInFirstTenant()
110+
{
111+
var tenants = new List<string> { DefaultTenant.ToString(), Guid.NewGuid().ToString() };
112+
var subscriptionInSecondTenant= Guid.NewGuid().ToString();
113+
var firstList = new List<string> { DefaultSubscription.ToString() };
114+
var secondList = new List<string> { Guid.NewGuid().ToString(), subscriptionInSecondTenant };
115+
var client = SetupTestEnvironment(tenants, firstList, secondList);
116+
117+
((MockTokenAuthenticationFactory)AzureSession.AuthenticationFactory).TokenProvider = (account, environment, tenant) =>
118+
new MockAccessToken
119+
{
120+
UserId = "[email protected]",
121+
LoginType = LoginType.OrgId,
122+
AccessToken = "bbb",
123+
TenantId = DefaultTenant.ToString()
124+
};
125+
126+
var listAsyncResponses = new Queue<Func<SubscriptionListResult>>();
127+
listAsyncResponses.Enqueue(() =>
128+
{
129+
var sub = new Subscription
130+
{
131+
Id = DefaultSubscription.ToString(),
132+
SubscriptionId = DefaultSubscription.ToString(),
133+
DisplayName = DefaultSubscriptionName,
134+
State = "enabled",
135+
};
136+
return new SubscriptionListResult
137+
{
138+
Subscriptions = new List<Subscription> { sub }
139+
};
140+
});
141+
MockSubscriptionClientFactory.SetListAsyncResponses(listAsyncResponses);
142+
143+
var azureRmProfile = client.Login(
144+
Context.Account,
145+
Context.Environment,
146+
null,
147+
null,
148+
"sub name",
149+
null);
150+
}
151+
107152
[Fact]
108153
[Trait(Category.AcceptanceType, Category.CheckIn)]
109154
public void TokenIdAndAccountIdMismatch()

src/ResourceManager/Profile/Commands.Profile.Test/MockSubscriptionClientFactory.cs

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,8 @@ public class MockSubscriptionClientFactory
3030
private Queue<List<string>> _subscriptions;
3131
private HashSet<string> _subscriptionSet;
3232
private static Queue<Func<GetSubscriptionResult>> _getAsyncQueue;
33+
private static Queue<Func<SubscriptionListResult>> _listAsyncQueue;
34+
3335
public MockSubscriptionClientFactory(List<string> tenants, Queue<List<string>> subscriptions)
3436
{
3537
_tenants = tenants;
@@ -54,6 +56,10 @@ public static void SetGetAsyncResponses(Queue<Func<GetSubscriptionResult>> respo
5456
{
5557
_getAsyncQueue = responses;
5658
}
59+
public static void SetListAsyncResponses(Queue<Func<SubscriptionListResult>> responses)
60+
{
61+
_listAsyncQueue = responses;
62+
}
5763

5864
public SubscriptionClient GetSubscriptionClient()
5965
{
@@ -101,6 +107,11 @@ public SubscriptionClient GetSubscriptionClient()
101107
(s) => s.ListAsync(It.IsAny<CancellationToken>())).Returns(
102108
(CancellationToken token) =>
103109
{
110+
if (_listAsyncQueue != null && _listAsyncQueue.Any())
111+
{
112+
return Task.FromResult(_listAsyncQueue.Dequeue().Invoke());
113+
}
114+
104115
SubscriptionListResult result = null;
105116
if (_subscriptions.Count > 0)
106117
{

0 commit comments

Comments
 (0)