20
20
using Microsoft . Azure . Commands . ScenarioTest ;
21
21
using Microsoft . Azure . Commands . TestFx . Mocks ;
22
22
using Microsoft . Azure . ServiceManagement . Common . Models ;
23
- using Microsoft . WindowsAzure . Commands . Common . Test . Mocks ;
23
+ using Microsoft . Rest . Azure ;
24
24
using Microsoft . WindowsAzure . Commands . ScenarioTest ;
25
25
using Newtonsoft . Json . Linq ;
26
26
using System ;
30
30
using Xunit ;
31
31
using Xunit . Abstractions ;
32
32
33
+ using SubscriptionLatest = Microsoft . Azure . Management . ResourceManager . Version2021_01_01 . Models . Subscription ;
34
+ using SubscriptionOld = Microsoft . Azure . Internal . Subscriptions . Models . Subscription ;
35
+
33
36
namespace Microsoft . Azure . Commands . ResourceManager . Common . Test
34
37
{
35
38
public class AzureRMProfileTestsForMultitenant : IDisposable
@@ -279,6 +282,7 @@ public void LoginByTenant()
279
282
string subscriptionA = Guid . NewGuid ( ) . ToString ( )
280
283
, subscriptionB = Guid . NewGuid ( ) . ToString ( )
281
284
, subscriptionC = Guid . NewGuid ( ) . ToString ( ) ;
285
+ MockSubscriptionClientFactory . Reset ( ) ;
282
286
var clientFactory = new MockSubscriptionClientFactory ( ) ;
283
287
284
288
Dictionary < string , string > subscriptionList = GetFirstTenantSubscriptionsJson ( tenantA , subscriptionA , subscriptionB , subscriptionC , tenantB ) ;
@@ -322,6 +326,7 @@ public void LoginBySubscriptionInMultitenantsHomeFirst()
322
326
, subscriptionB = Guid . NewGuid ( ) . ToString ( )
323
327
, subscriptionC = Guid . NewGuid ( ) . ToString ( )
324
328
, subscriptionD = Guid . NewGuid ( ) . ToString ( ) ;
329
+ MockSubscriptionClientFactory . Reset ( ) ;
325
330
var clientFactory = new MockSubscriptionClientFactory ( ) ;
326
331
327
332
var subscriptionListA = GetFirstTenantSubscriptionsJson ( tenantA , subscriptionA , subscriptionB , subscriptionC , tenantB ) ;
@@ -365,6 +370,7 @@ public void LoginBySubscriptionInMultitenantsHomeSecond()
365
370
, subscriptionB = Guid . NewGuid ( ) . ToString ( )
366
371
, subscriptionC = Guid . NewGuid ( ) . ToString ( )
367
372
, subscriptionD = Guid . NewGuid ( ) . ToString ( ) ;
373
+ MockSubscriptionClientFactory . Reset ( ) ;
368
374
var clientFactory = new MockSubscriptionClientFactory ( ) ;
369
375
370
376
var tenantList = GetTenantsJson ( tenantA , tenantB ) ;
@@ -411,6 +417,7 @@ public void LoginBySubscriptionInManagedByTenants()
411
417
, subscriptionB = Guid . NewGuid ( ) . ToString ( )
412
418
, subscriptionC = Guid . NewGuid ( ) . ToString ( )
413
419
, subscriptionD = Guid . NewGuid ( ) . ToString ( ) ;
420
+ MockSubscriptionClientFactory . Reset ( ) ;
414
421
var clientFactory = new MockSubscriptionClientFactory ( ) ;
415
422
416
423
Dictionary < string , string > subscriptionListA = GetFirstTenantSubscriptionsJson ( tenantA , subscriptionA , subscriptionB , subscriptionC , tenantB ) ;
@@ -455,6 +462,7 @@ public void LoginBySubscriptionTenant()
455
462
, subscriptionB = Guid . NewGuid ( ) . ToString ( )
456
463
, subscriptionC = Guid . NewGuid ( ) . ToString ( )
457
464
, subscriptionD = Guid . NewGuid ( ) . ToString ( ) ;
465
+ MockSubscriptionClientFactory . Reset ( ) ;
458
466
var clientFactory = new MockSubscriptionClientFactory ( ) ;
459
467
460
468
Dictionary < string , string > subscriptionListA = GetFirstTenantSubscriptionsJson ( tenantA , subscriptionA , subscriptionB , subscriptionC , tenantB ) ;
@@ -498,6 +506,7 @@ public void LoginByTenantSubscriptionNotExist()
498
506
, subscriptionB = Guid . NewGuid ( ) . ToString ( )
499
507
, subscriptionC = Guid . NewGuid ( ) . ToString ( )
500
508
, subscriptionD = Guid . NewGuid ( ) . ToString ( ) ;
509
+ MockSubscriptionClientFactory . Reset ( ) ;
501
510
var clientFactory = new MockSubscriptionClientFactory ( ) ;
502
511
503
512
Dictionary < string , string > subscriptionListA = GetFirstTenantSubscriptionsJson ( tenantA , subscriptionA , subscriptionB , subscriptionC , tenantB ) ;
@@ -539,6 +548,7 @@ public void LoginSubscriptionNameNotExist()
539
548
, subscriptionB = Guid . NewGuid ( ) . ToString ( )
540
549
, subscriptionC = Guid . NewGuid ( ) . ToString ( )
541
550
, subscriptionD = Guid . NewGuid ( ) . ToString ( ) ;
551
+ MockSubscriptionClientFactory . Reset ( ) ;
542
552
var clientFactory = new MockSubscriptionClientFactory ( ) ;
543
553
544
554
Dictionary < string , string > subscriptionListA = GetFirstTenantSubscriptionsJson ( tenantA , subscriptionA , subscriptionB , subscriptionC , tenantB ) ;
@@ -577,6 +587,7 @@ public void SetContextByValidTenant()
577
587
string subscriptionA = Guid . NewGuid ( ) . ToString ( )
578
588
, subscriptionB = Guid . NewGuid ( ) . ToString ( )
579
589
, subscriptionC = Guid . NewGuid ( ) . ToString ( ) ;
590
+ MockSubscriptionClientFactory . Reset ( ) ;
580
591
var clientFactory = new MockSubscriptionClientFactory ( ) ;
581
592
582
593
Dictionary < string , string > subscriptionList = GetFirstTenantSubscriptionsJson ( tenantA , subscriptionA , subscriptionB , subscriptionC , tenantB ) ;
@@ -603,7 +614,6 @@ public void SetContextByValidTenant()
603
614
Assert . Equal ( subscriptionA , context . Subscription . Id . ToString ( ) ) ;
604
615
}
605
616
606
-
607
617
[ Fact ]
608
618
[ Trait ( Category . AcceptanceType , Category . CheckIn ) ]
609
619
public void SetContextBySubscriptionIdInHomeTenant ( )
@@ -613,16 +623,29 @@ public void SetContextBySubscriptionIdInHomeTenant()
613
623
, subscriptionB = Guid . NewGuid ( ) . ToString ( )
614
624
, subscriptionC = Guid . NewGuid ( ) . ToString ( )
615
625
, subscriptionD = Guid . NewGuid ( ) . ToString ( ) ;
626
+ MockSubscriptionClientFactory . Reset ( ) ;
616
627
var clientFactory = new MockSubscriptionClientFactory ( ) ;
617
628
618
629
var subscriptionListA = GetFirstTenantSubscriptionsJson ( tenantA , subscriptionA , subscriptionB , subscriptionC , tenantB ) ;
619
630
var subscriptionListB = GetSecondTenantSubscriptionsJson ( tenantB , subscriptionA , subscriptionB , subscriptionC , subscriptionD , tenantA ) ;
631
+
632
+ MockSubscriptionClientFactory . SubGetQueueVerLatest = new Queue < Func < AzureOperationResponse < SubscriptionLatest > > > ( ) ;
633
+ MockSubscriptionClientFactory . SubGetQueueVerLatest . Enqueue ( ( ) =>
634
+ {
635
+ throw new CloudException ( "Subscription not in the tenant." ) ;
636
+ } ) ;
637
+
638
+ var resultLatest = new AzureOperationResponse < SubscriptionLatest > ( )
639
+ {
640
+ RequestId = Guid . NewGuid ( ) . ToString ( ) ,
641
+ Body = MockSubscriptionClientFactory . CreateSubscripitonsFromJson ( subscriptionListA [ subscriptionA ] ) . First ( )
642
+ } ;
643
+ MockSubscriptionClientFactory . SubGetQueueVerLatest . Enqueue ( ( ) => resultLatest ) ;
644
+
620
645
subscriptionClients . Clear ( ) ;
621
646
subscriptionClients . Enqueue ( clientFactory . GetSubscriptionClientVerLatest (
622
- MockSubscriptionClientFactory . CreateTenantListFromJson ( GetTenantsJson ( tenantA , tenantB ) . Values . ToArray ( ) )
623
- , null
624
- , MockSubscriptionClientFactory . CreateSubscriptionListsFromJson ( subscriptionListB . Values . ToList ( ) , subscriptionListA . Values . ToList ( ) )
625
- ) ) ;
647
+ MockSubscriptionClientFactory . CreateTenantListFromJson ( GetTenantsJson ( tenantB , tenantA ) . Values . ToArray ( ) )
648
+ , null , null ) ) ;
626
649
627
650
var mock = new AccountMockClientFactory ( ( ) =>
628
651
{
@@ -648,6 +671,7 @@ public void SetContextBySubscriptionNameInHomeTenant()
648
671
, subscriptionB = Guid . NewGuid ( ) . ToString ( )
649
672
, subscriptionC = Guid . NewGuid ( ) . ToString ( )
650
673
, subscriptionD = Guid . NewGuid ( ) . ToString ( ) ;
674
+ MockSubscriptionClientFactory . Reset ( ) ;
651
675
var clientFactory = new MockSubscriptionClientFactory ( ) ;
652
676
653
677
var tenantList = GetTenantsJson ( tenantA , tenantB ) ;
@@ -660,6 +684,7 @@ public void SetContextBySubscriptionNameInHomeTenant()
660
684
, MockSubscriptionClientFactory . CreateSubscriptionListsFromJson ( subscriptionListA . Values . ToList ( ) , subscriptionListB . Values . ToList ( ) )
661
685
) ) ;
662
686
687
+
663
688
var mock = new AccountMockClientFactory ( ( ) =>
664
689
{
665
690
return subscriptionClients . Peek ( ) ;
@@ -685,16 +710,16 @@ public void SetContextBySubscriptionInManagedByTenants()
685
710
, subscriptionB = Guid . NewGuid ( ) . ToString ( )
686
711
, subscriptionC = Guid . NewGuid ( ) . ToString ( )
687
712
, subscriptionD = Guid . NewGuid ( ) . ToString ( ) ;
713
+ MockSubscriptionClientFactory . Reset ( ) ;
688
714
var clientFactory = new MockSubscriptionClientFactory ( ) ;
689
715
690
716
Dictionary < string , string > subscriptionListA = GetFirstTenantSubscriptionsJson ( tenantA , subscriptionA , subscriptionB , subscriptionC , tenantB ) ;
691
717
Dictionary < string , string > subscriptionListB = GetSecondTenantSubscriptionsJson ( tenantB , subscriptionA , subscriptionB , subscriptionC , subscriptionD , tenantA ) ;
692
718
subscriptionClients . Clear ( ) ;
693
719
subscriptionClients . Enqueue ( clientFactory . GetSubscriptionClientVerLatest (
694
720
MockSubscriptionClientFactory . CreateTenantListFromJson ( GetTenantsJson ( tenantA , tenantB ) . Values . ToArray ( ) )
695
- , null
696
- , MockSubscriptionClientFactory . CreateSubscriptionListsFromJson ( subscriptionListA . Values . ToList ( ) , subscriptionListB . Values . ToList ( ) )
697
- ) ) ;
721
+ , MockSubscriptionClientFactory . CreateSubscripitonsFromJson ( subscriptionListA [ subscriptionC ] )
722
+ , null ) ) ;
698
723
699
724
var mock = new AccountMockClientFactory ( ( ) =>
700
725
{
@@ -720,6 +745,7 @@ public void SetContextBySubscriptionTenant()
720
745
, subscriptionB = Guid . NewGuid ( ) . ToString ( )
721
746
, subscriptionC = Guid . NewGuid ( ) . ToString ( )
722
747
, subscriptionD = Guid . NewGuid ( ) . ToString ( ) ;
748
+ MockSubscriptionClientFactory . Reset ( ) ;
723
749
var clientFactory = new MockSubscriptionClientFactory ( ) ;
724
750
725
751
Dictionary < string , string > subscriptionListA = GetFirstTenantSubscriptionsJson ( tenantA , subscriptionA , subscriptionB , subscriptionC , tenantB ) ;
@@ -755,15 +781,12 @@ public void SetContextBySubscriptionTenantNotExist()
755
781
, subscriptionB = Guid . NewGuid ( ) . ToString ( )
756
782
, subscriptionC = Guid . NewGuid ( ) . ToString ( )
757
783
, subscriptionD = Guid . NewGuid ( ) . ToString ( ) ;
784
+ MockSubscriptionClientFactory . Reset ( ) ;
758
785
var clientFactory = new MockSubscriptionClientFactory ( ) ;
759
786
760
787
Dictionary < string , string > subscriptionListB = GetSecondTenantSubscriptionsJson ( tenantB , subscriptionA , subscriptionB , subscriptionC , subscriptionD , tenantA ) ;
761
788
subscriptionClients . Clear ( ) ;
762
- subscriptionClients . Enqueue ( clientFactory . GetSubscriptionClientVerLatest (
763
- null
764
- , null
765
- , MockSubscriptionClientFactory . CreateSubscriptionListsFromJson ( subscriptionListB . Values . ToList ( ) )
766
- ) ) ;
789
+ subscriptionClients . Enqueue ( clientFactory . GetSubscriptionClientVerLatest ( null , null , null ) ) ;
767
790
768
791
var mock = new AccountMockClientFactory ( ( ) =>
769
792
{
0 commit comments