1+ using System . Linq ;
12using System . Text . Json ;
23using Amazon . CDK . AWS . CodeDeploy ;
34using Amazon . CloudWatch ;
@@ -141,7 +142,7 @@ private async Task AssertCloudWatch()
141142 try
142143 {
143144 response = await cloudWatchClient . ListMetricsAsync ( request ) ;
144- if ( response . Metrics . Count > 6 )
145+ if ( response . Metrics != null && response . Metrics . Count > 6 )
145146 {
146147 break ;
147148 }
@@ -154,6 +155,7 @@ private async Task AssertCloudWatch()
154155 await Task . Delay ( 5000 ) ; // wait for 5 seconds before retrying
155156 }
156157
158+ Assert . NotNull ( response . Metrics ) ;
157159 Assert . Equal ( 7 , response . Metrics . Count ) ;
158160
159161 foreach ( var metric in response . Metrics )
@@ -227,11 +229,13 @@ private void AssertMetricsDimensionsMetadata(string output)
227229 Assert . Equal ( "Count" , unitElement5 . GetString ( ) ) ;
228230
229231 Assert . True ( cloudWatchMetricsElement [ 0 ] . TryGetProperty ( "Dimensions" , out JsonElement dimensionsElement ) ) ;
230- Assert . Equal ( "Service" , dimensionsElement [ 0 ] [ 0 ] . GetString ( ) ) ;
231- Assert . Equal ( "Environment" , dimensionsElement [ 0 ] [ 1 ] . GetString ( ) ) ;
232- Assert . Equal ( "Another" , dimensionsElement [ 0 ] [ 2 ] . GetString ( ) ) ;
233- Assert . Equal ( "FunctionName" , dimensionsElement [ 0 ] [ 3 ] . GetString ( ) ) ;
234- Assert . Equal ( "Memory" , dimensionsElement [ 0 ] [ 4 ] . GetString ( ) ) ;
232+ var dimensionsList = dimensionsElement [ 0 ] . EnumerateArray ( ) . Select ( d => d . GetString ( ) ) . ToList ( ) ;
233+ Assert . Equal ( 5 , dimensionsList . Count ) ;
234+ Assert . Contains ( "Service" , dimensionsList ) ;
235+ Assert . Contains ( "Environment" , dimensionsList ) ;
236+ Assert . Contains ( "Another" , dimensionsList ) ;
237+ Assert . Contains ( "FunctionName" , dimensionsList ) ;
238+ Assert . Contains ( "Memory" , dimensionsList ) ;
235239
236240 Assert . True ( root . TryGetProperty ( "Service" , out JsonElement serviceElement ) ) ;
237241 Assert . Equal ( "Test" , serviceElement . GetString ( ) ) ;
@@ -286,8 +290,10 @@ private void AssertSingleMetric(string output)
286290 Assert . Equal ( "Count" , unitElement . GetString ( ) ) ;
287291
288292 Assert . True ( cloudWatchMetricsElement [ 0 ] . TryGetProperty ( "Dimensions" , out JsonElement dimensionsElement ) ) ;
289- Assert . Equal ( "Service" , dimensionsElement [ 0 ] [ 0 ] . GetString ( ) ) ;
290- Assert . Equal ( "FunctionName" , dimensionsElement [ 0 ] [ 1 ] . GetString ( ) ) ;
293+ var dimensionsList = dimensionsElement [ 0 ] . EnumerateArray ( ) . Select ( d => d . GetString ( ) ) . ToList ( ) ;
294+ Assert . Equal ( 2 , dimensionsList . Count ) ;
295+ Assert . Contains ( "Service" , dimensionsList ) ;
296+ Assert . Contains ( "FunctionName" , dimensionsList ) ;
291297
292298 Assert . True ( root . TryGetProperty ( "FunctionName" , out JsonElement functionNameElement ) ) ;
293299 Assert . Equal ( _functionName , functionNameElement . GetString ( ) ) ;
0 commit comments