@@ -282,6 +282,89 @@ public void Handler_With_Builder_Should_Raise_Empty_Metrics()
282
282
var exception = Assert . Throws < SchemaValidationException > ( ( ) => handler . HandlerEmpty ( ) ) ;
283
283
Assert . Equal ( "No metrics have been provided." , exception . Message ) ;
284
284
}
285
+
286
+ [ Fact ]
287
+ public void When_ColdStart_Should_Use_DefaultDimensions_From_Options ( )
288
+ {
289
+ // Arrange
290
+ var metricsMock = Substitute . For < IMetrics > ( ) ;
291
+ var expectedDimensions = new Dictionary < string , string >
292
+ {
293
+ { "Environment" , "Test" } ,
294
+ { "Region" , "us-east-1" }
295
+ } ;
296
+
297
+ metricsMock . Options . Returns ( new MetricsOptions
298
+ {
299
+ Namespace = "dotnet-powertools-test" ,
300
+ Service = "testService" ,
301
+ CaptureColdStart = true ,
302
+ DefaultDimensions = expectedDimensions
303
+ } ) ;
304
+
305
+ Metrics . UseMetricsForTests ( metricsMock ) ;
306
+
307
+ var context = new TestLambdaContext
308
+ {
309
+ FunctionName = "TestFunction"
310
+ } ;
311
+
312
+ // Act
313
+ _handler . HandleWithLambdaContext ( context ) ;
314
+
315
+ // Assert
316
+ metricsMock . Received ( 1 ) . PushSingleMetric (
317
+ "ColdStart" ,
318
+ 1.0 ,
319
+ MetricUnit . Count ,
320
+ "dotnet-powertools-test" ,
321
+ "testService" ,
322
+ Arg . Is < Dictionary < string , string > > ( d =>
323
+ d . ContainsKey ( "Environment" ) && d [ "Environment" ] == "Test" &&
324
+ d . ContainsKey ( "Region" ) && d [ "Region" ] == "us-east-1" &&
325
+ d . ContainsKey ( "FunctionName" ) && d [ "FunctionName" ] == "TestFunction"
326
+ )
327
+ ) ;
328
+ }
329
+
330
+ [ Fact ]
331
+ public void When_ColdStart_And_DefaultDimensions_Is_Null_Should_Only_Add_Service_And_FunctionName ( )
332
+ {
333
+ // Arrange
334
+ var metricsMock = Substitute . For < IMetrics > ( ) ;
335
+
336
+ metricsMock . Options . Returns ( new MetricsOptions
337
+ {
338
+ Namespace = "dotnet-powertools-test" ,
339
+ Service = "testService" ,
340
+ CaptureColdStart = true ,
341
+ DefaultDimensions = null
342
+ } ) ;
343
+
344
+ Metrics . UseMetricsForTests ( metricsMock ) ;
345
+
346
+ var context = new TestLambdaContext
347
+ {
348
+ FunctionName = "TestFunction"
349
+ } ;
350
+
351
+ // Act
352
+ _handler . HandleWithLambdaContext ( context ) ;
353
+
354
+ // Assert
355
+ metricsMock . Received ( 1 ) . PushSingleMetric (
356
+ "ColdStart" ,
357
+ 1.0 ,
358
+ MetricUnit . Count ,
359
+ "dotnet-powertools-test" ,
360
+ "testService" ,
361
+ Arg . Is < Dictionary < string , string > > ( d =>
362
+ d . Count == 1 &&
363
+ d . ContainsKey ( "FunctionName" ) &&
364
+ d [ "FunctionName" ] == "TestFunction"
365
+ )
366
+ ) ;
367
+ }
285
368
286
369
public void Dispose ( )
287
370
{
0 commit comments