1- using Microsoft . Extensions . Logging ;
21using Polly ;
32using Polly . Retry ;
4- using Polly . Telemetry ;
53
64namespace ConsolePollyTest ;
75
8- public static class PollyTest
6+ public static class PollyRetryTest
97{
108
119 #region Constants & Statics
1210
13- public static Uri Host { get ; set ; } = new Uri ( "http://localhost:5222" ) ;
14-
15- private static HttpClient GetClient ( )
16- {
17- var client = new HttpClient { BaseAddress = Host } ;
18- return client ;
19- }
20-
21- private static Uri GetUri ( string path )
22- {
23- return new Uri ( Host , path ) ;
24- }
25-
26- private static TelemetryOptions GetTelemetry ( )
27- {
28- var telemetryOptions = new TelemetryOptions
29- {
30- // Configure logging
31- LoggerFactory = LoggerFactory . Create ( builder => builder . AddConsole ( ) ) ,
32- } ;
33- telemetryOptions . TelemetryListeners . Add ( new MyTelemetryListener ( ) ) ;
34- telemetryOptions . MeteringEnrichers . Add ( new MyMeteringEnricher ( ) ) ;
35-
36- return telemetryOptions ;
37- }
38-
3911 public static async Task NoStrategy_TestAsync ( )
4012 {
4113 var builder = new ResiliencePipelineBuilder ( ) ;
4214 var pipeline = builder . Build ( ) ;
4315
44- using var client = GetClient ( ) ;
16+ using var client = TestBase . GetClient ( ) ;
4517
4618 var result = await pipeline . ExecuteAsync (
4719 async ( token ) =>
4820 {
49- var r = await client . GetAsync ( GetUri ( "/weatherforecast/" ) , token ) ;
21+ var r = await client . GetAsync ( TestBase . GetUri ( "/weatherforecast/GetWeatherForecast " ) , token ) ;
5022 return r ;
5123 } ,
5224 cancellationToken : default ) ;
@@ -56,7 +28,7 @@ public static async Task NoStrategy_TestAsync()
5628
5729 public static async Task Retry_ExecThree_TestAsync ( )
5830 {
59- var options = GetTelemetry ( ) ;
31+ var options = TestBase . GetTelemetry ( ) ;
6032 var builder = new ResiliencePipelineBuilder ( ) . ConfigureTelemetry ( options )
6133 . AddRetry (
6234 new RetryStrategyOptions
@@ -79,12 +51,12 @@ public static async Task Retry_ExecThree_TestAsync()
7951 } ) ;
8052 var pipeline = builder . Build ( ) ;
8153
82- using var client = GetClient ( ) ;
54+ using var client = TestBase . GetClient ( ) ;
8355
8456 var result = await pipeline . ExecuteAsync (
8557 async ( token ) =>
8658 {
87- var r = await client . GetAsync ( GetUri ( "/weatherforecast/" ) , token ) ;
59+ var r = await client . GetAsync ( TestBase . GetUri ( "/weatherforecast/GetWeatherForecast " ) , token ) ;
8860 return r ;
8961 } ,
9062 cancellationToken : default ) ;
@@ -94,11 +66,10 @@ public static async Task Retry_ExecThree_TestAsync()
9466
9567 public static async Task Retry_UseOnePipeline_TestAsync ( )
9668 {
97- var builder = new ResiliencePipelineBuilder ( ) . ConfigureTelemetry ( GetTelemetry ( ) . LoggerFactory )
69+ var builder = new ResiliencePipelineBuilder ( ) . ConfigureTelemetry ( TestBase . GetTelemetry ( ) . LoggerFactory )
9870 . AddRetry (
9971 new RetryStrategyOptions
10072 {
101-
10273 Delay = TimeSpan . FromSeconds ( 1 ) ,
10374 MaxRetryAttempts = 3 ,
10475 ShouldHandle = ( args ) =>
@@ -110,13 +81,13 @@ public static async Task Retry_UseOnePipeline_TestAsync()
11081
11182 var pipeline = builder . Build ( ) ;
11283
113- using var client = GetClient ( ) ;
84+ using var client = TestBase . GetClient ( ) ;
11485
11586 // retry three times
11687 var t1 = await pipeline . ExecuteAsync (
11788 async ( token ) =>
11889 {
119- var r = await client . GetAsync ( GetUri ( "/weatherforecast/" ) , token ) ;
90+ var r = await client . GetAsync ( TestBase . GetUri ( "/weatherforecast/GetWeatherForecast " ) , token ) ;
12091 return r ;
12192 } ,
12293 cancellationToken : default ) ;
@@ -125,7 +96,7 @@ public static async Task Retry_UseOnePipeline_TestAsync()
12596 var t2 = await pipeline . ExecuteAsync (
12697 async ( token ) =>
12798 {
128- var r = await client . GetAsync ( GetUri ( "/weatherforecast/" ) , token ) ;
99+ var r = await client . GetAsync ( TestBase . GetUri ( "/weatherforecast/GetWeatherForecast " ) , token ) ;
129100 return r ;
130101 } ,
131102 cancellationToken : default ) ;
0 commit comments