2020using Microsoft . Azure . Commands . ScenarioTest ;
2121using Microsoft . Azure . Commands . TestFx . Mocks ;
2222using Microsoft . Azure . ServiceManagement . Common . Models ;
23- using Microsoft . WindowsAzure . Commands . Common . Test . Mocks ;
23+ using Microsoft . Rest . Azure ;
2424using Microsoft . WindowsAzure . Commands . ScenarioTest ;
2525using Newtonsoft . Json . Linq ;
2626using System ;
3030using Xunit ;
3131using Xunit . Abstractions ;
3232
33+ using SubscriptionLatest = Microsoft . Azure . Management . ResourceManager . Version2021_01_01 . Models . Subscription ;
34+ using SubscriptionOld = Microsoft . Azure . Internal . Subscriptions . Models . Subscription ;
35+
3336namespace Microsoft . Azure . Commands . ResourceManager . Common . Test
3437{
3538 public class AzureRMProfileTestsForMultitenant : IDisposable
@@ -279,6 +282,7 @@ public void LoginByTenant()
279282 string subscriptionA = Guid . NewGuid ( ) . ToString ( )
280283 , subscriptionB = Guid . NewGuid ( ) . ToString ( )
281284 , subscriptionC = Guid . NewGuid ( ) . ToString ( ) ;
285+ MockSubscriptionClientFactory . Reset ( ) ;
282286 var clientFactory = new MockSubscriptionClientFactory ( ) ;
283287
284288 Dictionary < string , string > subscriptionList = GetFirstTenantSubscriptionsJson ( tenantA , subscriptionA , subscriptionB , subscriptionC , tenantB ) ;
@@ -322,6 +326,7 @@ public void LoginBySubscriptionInMultitenantsHomeFirst()
322326 , subscriptionB = Guid . NewGuid ( ) . ToString ( )
323327 , subscriptionC = Guid . NewGuid ( ) . ToString ( )
324328 , subscriptionD = Guid . NewGuid ( ) . ToString ( ) ;
329+ MockSubscriptionClientFactory . Reset ( ) ;
325330 var clientFactory = new MockSubscriptionClientFactory ( ) ;
326331
327332 var subscriptionListA = GetFirstTenantSubscriptionsJson ( tenantA , subscriptionA , subscriptionB , subscriptionC , tenantB ) ;
@@ -365,6 +370,7 @@ public void LoginBySubscriptionInMultitenantsHomeSecond()
365370 , subscriptionB = Guid . NewGuid ( ) . ToString ( )
366371 , subscriptionC = Guid . NewGuid ( ) . ToString ( )
367372 , subscriptionD = Guid . NewGuid ( ) . ToString ( ) ;
373+ MockSubscriptionClientFactory . Reset ( ) ;
368374 var clientFactory = new MockSubscriptionClientFactory ( ) ;
369375
370376 var tenantList = GetTenantsJson ( tenantA , tenantB ) ;
@@ -411,6 +417,7 @@ public void LoginBySubscriptionInManagedByTenants()
411417 , subscriptionB = Guid . NewGuid ( ) . ToString ( )
412418 , subscriptionC = Guid . NewGuid ( ) . ToString ( )
413419 , subscriptionD = Guid . NewGuid ( ) . ToString ( ) ;
420+ MockSubscriptionClientFactory . Reset ( ) ;
414421 var clientFactory = new MockSubscriptionClientFactory ( ) ;
415422
416423 Dictionary < string , string > subscriptionListA = GetFirstTenantSubscriptionsJson ( tenantA , subscriptionA , subscriptionB , subscriptionC , tenantB ) ;
@@ -455,6 +462,7 @@ public void LoginBySubscriptionTenant()
455462 , subscriptionB = Guid . NewGuid ( ) . ToString ( )
456463 , subscriptionC = Guid . NewGuid ( ) . ToString ( )
457464 , subscriptionD = Guid . NewGuid ( ) . ToString ( ) ;
465+ MockSubscriptionClientFactory . Reset ( ) ;
458466 var clientFactory = new MockSubscriptionClientFactory ( ) ;
459467
460468 Dictionary < string , string > subscriptionListA = GetFirstTenantSubscriptionsJson ( tenantA , subscriptionA , subscriptionB , subscriptionC , tenantB ) ;
@@ -498,6 +506,7 @@ public void LoginByTenantSubscriptionNotExist()
498506 , subscriptionB = Guid . NewGuid ( ) . ToString ( )
499507 , subscriptionC = Guid . NewGuid ( ) . ToString ( )
500508 , subscriptionD = Guid . NewGuid ( ) . ToString ( ) ;
509+ MockSubscriptionClientFactory . Reset ( ) ;
501510 var clientFactory = new MockSubscriptionClientFactory ( ) ;
502511
503512 Dictionary < string , string > subscriptionListA = GetFirstTenantSubscriptionsJson ( tenantA , subscriptionA , subscriptionB , subscriptionC , tenantB ) ;
@@ -539,6 +548,7 @@ public void LoginSubscriptionNameNotExist()
539548 , subscriptionB = Guid . NewGuid ( ) . ToString ( )
540549 , subscriptionC = Guid . NewGuid ( ) . ToString ( )
541550 , subscriptionD = Guid . NewGuid ( ) . ToString ( ) ;
551+ MockSubscriptionClientFactory . Reset ( ) ;
542552 var clientFactory = new MockSubscriptionClientFactory ( ) ;
543553
544554 Dictionary < string , string > subscriptionListA = GetFirstTenantSubscriptionsJson ( tenantA , subscriptionA , subscriptionB , subscriptionC , tenantB ) ;
@@ -577,6 +587,7 @@ public void SetContextByValidTenant()
577587 string subscriptionA = Guid . NewGuid ( ) . ToString ( )
578588 , subscriptionB = Guid . NewGuid ( ) . ToString ( )
579589 , subscriptionC = Guid . NewGuid ( ) . ToString ( ) ;
590+ MockSubscriptionClientFactory . Reset ( ) ;
580591 var clientFactory = new MockSubscriptionClientFactory ( ) ;
581592
582593 Dictionary < string , string > subscriptionList = GetFirstTenantSubscriptionsJson ( tenantA , subscriptionA , subscriptionB , subscriptionC , tenantB ) ;
@@ -603,7 +614,6 @@ public void SetContextByValidTenant()
603614 Assert . Equal ( subscriptionA , context . Subscription . Id . ToString ( ) ) ;
604615 }
605616
606-
607617 [ Fact ]
608618 [ Trait ( Category . AcceptanceType , Category . CheckIn ) ]
609619 public void SetContextBySubscriptionIdInHomeTenant ( )
@@ -613,16 +623,29 @@ public void SetContextBySubscriptionIdInHomeTenant()
613623 , subscriptionB = Guid . NewGuid ( ) . ToString ( )
614624 , subscriptionC = Guid . NewGuid ( ) . ToString ( )
615625 , subscriptionD = Guid . NewGuid ( ) . ToString ( ) ;
626+ MockSubscriptionClientFactory . Reset ( ) ;
616627 var clientFactory = new MockSubscriptionClientFactory ( ) ;
617628
618629 var subscriptionListA = GetFirstTenantSubscriptionsJson ( tenantA , subscriptionA , subscriptionB , subscriptionC , tenantB ) ;
619630 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+
620645 subscriptionClients . Clear ( ) ;
621646 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 ) ) ;
626649
627650 var mock = new AccountMockClientFactory ( ( ) =>
628651 {
@@ -648,6 +671,7 @@ public void SetContextBySubscriptionNameInHomeTenant()
648671 , subscriptionB = Guid . NewGuid ( ) . ToString ( )
649672 , subscriptionC = Guid . NewGuid ( ) . ToString ( )
650673 , subscriptionD = Guid . NewGuid ( ) . ToString ( ) ;
674+ MockSubscriptionClientFactory . Reset ( ) ;
651675 var clientFactory = new MockSubscriptionClientFactory ( ) ;
652676
653677 var tenantList = GetTenantsJson ( tenantA , tenantB ) ;
@@ -660,6 +684,7 @@ public void SetContextBySubscriptionNameInHomeTenant()
660684 , MockSubscriptionClientFactory . CreateSubscriptionListsFromJson ( subscriptionListA . Values . ToList ( ) , subscriptionListB . Values . ToList ( ) )
661685 ) ) ;
662686
687+
663688 var mock = new AccountMockClientFactory ( ( ) =>
664689 {
665690 return subscriptionClients . Peek ( ) ;
@@ -685,16 +710,16 @@ public void SetContextBySubscriptionInManagedByTenants()
685710 , subscriptionB = Guid . NewGuid ( ) . ToString ( )
686711 , subscriptionC = Guid . NewGuid ( ) . ToString ( )
687712 , subscriptionD = Guid . NewGuid ( ) . ToString ( ) ;
713+ MockSubscriptionClientFactory . Reset ( ) ;
688714 var clientFactory = new MockSubscriptionClientFactory ( ) ;
689715
690716 Dictionary < string , string > subscriptionListA = GetFirstTenantSubscriptionsJson ( tenantA , subscriptionA , subscriptionB , subscriptionC , tenantB ) ;
691717 Dictionary < string , string > subscriptionListB = GetSecondTenantSubscriptionsJson ( tenantB , subscriptionA , subscriptionB , subscriptionC , subscriptionD , tenantA ) ;
692718 subscriptionClients . Clear ( ) ;
693719 subscriptionClients . Enqueue ( clientFactory . GetSubscriptionClientVerLatest (
694720 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 ) ) ;
698723
699724 var mock = new AccountMockClientFactory ( ( ) =>
700725 {
@@ -720,6 +745,7 @@ public void SetContextBySubscriptionTenant()
720745 , subscriptionB = Guid . NewGuid ( ) . ToString ( )
721746 , subscriptionC = Guid . NewGuid ( ) . ToString ( )
722747 , subscriptionD = Guid . NewGuid ( ) . ToString ( ) ;
748+ MockSubscriptionClientFactory . Reset ( ) ;
723749 var clientFactory = new MockSubscriptionClientFactory ( ) ;
724750
725751 Dictionary < string , string > subscriptionListA = GetFirstTenantSubscriptionsJson ( tenantA , subscriptionA , subscriptionB , subscriptionC , tenantB ) ;
@@ -755,15 +781,12 @@ public void SetContextBySubscriptionTenantNotExist()
755781 , subscriptionB = Guid . NewGuid ( ) . ToString ( )
756782 , subscriptionC = Guid . NewGuid ( ) . ToString ( )
757783 , subscriptionD = Guid . NewGuid ( ) . ToString ( ) ;
784+ MockSubscriptionClientFactory . Reset ( ) ;
758785 var clientFactory = new MockSubscriptionClientFactory ( ) ;
759786
760787 Dictionary < string , string > subscriptionListB = GetSecondTenantSubscriptionsJson ( tenantB , subscriptionA , subscriptionB , subscriptionC , subscriptionD , tenantA ) ;
761788 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 ) ) ;
767790
768791 var mock = new AccountMockClientFactory ( ( ) =>
769792 {
0 commit comments