@@ -692,9 +692,39 @@ public async Task TestListAllowedDomains()
692692 [ TestMethod ]
693693 [ TestCategory ( TestCategories . User ) ]
694694 [ TestCategory ( TestCategories . LoadBalancers ) ]
695- public void TestListBillableLoadBalancers ( )
695+ public async Task TestListBillableLoadBalancers ( )
696696 {
697- Assert . Inconclusive ( "Not yet implemented." ) ;
697+ ILoadBalancerService provider = CreateProvider ( ) ;
698+ using ( CancellationTokenSource cancellationTokenSource = new CancellationTokenSource ( TestTimeout ( TimeSpan . FromSeconds ( 60 ) ) ) )
699+ {
700+ IEnumerable < LoadBalancingProtocol > protocols = await provider . ListProtocolsAsync ( cancellationTokenSource . Token ) ;
701+ LoadBalancingProtocol httpProtocol = protocols . First ( i => i . Name . Equals ( "HTTP" , StringComparison . OrdinalIgnoreCase ) ) ;
702+
703+ string loadBalancerName = CreateRandomLoadBalancerName ( ) ;
704+
705+ LoadBalancerConfiguration configuration = new LoadBalancerConfiguration (
706+ name : loadBalancerName ,
707+ nodes : null ,
708+ protocol : httpProtocol ,
709+ virtualAddresses : new [ ] { new LoadBalancerVirtualAddress ( LoadBalancerVirtualAddressType . Public ) } ,
710+ algorithm : LoadBalancingAlgorithm . RoundRobin ) ;
711+ LoadBalancer tempLoadBalancer = await provider . CreateLoadBalancerAsync ( configuration , AsyncCompletionOption . RequestCompleted , cancellationTokenSource . Token , null ) ;
712+
713+ IEnumerable < LoadBalancer > billable = await provider . ListBillableLoadBalancersAsync ( DateTimeOffset . Now . Date . AddDays ( - 60 ) , DateTimeOffset . Now . Date . AddDays ( 1 ) , null , null , cancellationTokenSource . Token ) ;
714+ Assert . IsNotNull ( billable ) ;
715+ LoadBalancer [ ] loadBalancers = billable . ToArray ( ) ;
716+ if ( loadBalancers . Length == 0 )
717+ Assert . Inconclusive ( "No billable load balancers were reported." ) ;
718+
719+ Console . WriteLine ( "Billable Load Balancers:" ) ;
720+ foreach ( LoadBalancer loadBalancer in loadBalancers )
721+ Console . WriteLine ( " {0}" , loadBalancer . Id ) ;
722+
723+ /* Cleanup
724+ */
725+
726+ await provider . RemoveLoadBalancerAsync ( tempLoadBalancer . Id , AsyncCompletionOption . RequestCompleted , cancellationTokenSource . Token , null ) ;
727+ }
698728 }
699729
700730 [ TestMethod ]
0 commit comments