@@ -341,6 +341,77 @@ public void Dimension_Only_Set_In_Cold_Start()
341
341
"\" CloudWatchMetrics\" :[{\" Namespace\" :\" ns\" ,\" Metrics\" :[{\" Name\" :\" MyMetric\" ,\" Unit\" :\" None\" }],\" Dimensions\" :[[\" Service\" ]]}]},\" Service\" :\" svc\" ,\" MyMetric\" :1}" ,
342
342
metricsOutput ) ;
343
343
}
344
+
345
+ [ Fact ]
346
+ public void When_Function_Name_Is_Set ( )
347
+ {
348
+ // Arrange
349
+ var handler = new FunctionHandler ( ) ;
350
+
351
+ // Act
352
+ handler . HandleFunctionNameWithContext ( new TestLambdaContext
353
+ {
354
+ FunctionName = "This_Will_Be_Overwritten"
355
+ } ) ;
356
+
357
+ // Get the output and parse it
358
+ var metricsOutput = _consoleOut . ToString ( ) ;
359
+
360
+ // Assert cold start function name is set MyFunction
361
+ Assert . Contains (
362
+ "\" CloudWatchMetrics\" :[{\" Namespace\" :\" ns\" ,\" Metrics\" :[{\" Name\" :\" ColdStart\" ,\" Unit\" :\" Count\" }],\" Dimensions\" :[[\" Service\" ,\" FunctionName\" ]]}]},\" Service\" :\" svc\" ,\" FunctionName\" :\" MyFunction\" ,\" ColdStart\" :1}" ,
363
+ metricsOutput ) ;
364
+ }
365
+
366
+ [ Fact ]
367
+ public void When_Function_Name_Is_Set_No_Context ( )
368
+ {
369
+ // Arrange
370
+ var handler = new FunctionHandler ( ) ;
371
+
372
+ // Act
373
+ handler . HandleFunctionNameNoContext ( ) ;
374
+
375
+ // Get the output and parse it
376
+ var metricsOutput = _consoleOut . ToString ( ) ;
377
+
378
+ // Assert cold start function name is set MyFunction
379
+ Assert . Contains (
380
+ "\" CloudWatchMetrics\" :[{\" Namespace\" :\" ns\" ,\" Metrics\" :[{\" Name\" :\" ColdStart\" ,\" Unit\" :\" Count\" }],\" Dimensions\" :[[\" Service\" ,\" FunctionName\" ]]}]},\" Service\" :\" svc\" ,\" FunctionName\" :\" MyFunction\" ,\" ColdStart\" :1}" ,
381
+ metricsOutput ) ;
382
+ }
383
+
384
+ [ Fact ]
385
+ public void Handler_With_Builder_Should_Configure_FunctionName_In_Constructor_Mock ( )
386
+ {
387
+ var metricsMock = Substitute . For < IMetrics > ( ) ;
388
+
389
+ metricsMock . Options . Returns ( new MetricsOptions
390
+ {
391
+ CaptureColdStart = true ,
392
+ Namespace = "dotnet-powertools-test" ,
393
+ Service = "testService" ,
394
+ FunctionName = "My_Function_Custome_Name" ,
395
+ DefaultDimensions = new Dictionary < string , string >
396
+ {
397
+ { "Environment" , "Prod" } ,
398
+ { "Another" , "One" }
399
+ }
400
+ } ) ;
401
+
402
+ Metrics . UseMetricsForTests ( metricsMock ) ;
403
+
404
+ var sut = new MetricsnBuilderHandler ( metricsMock ) ;
405
+
406
+ // Act
407
+ sut . Handler ( new TestLambdaContext
408
+ {
409
+ FunctionName = "This_Will_Be_Overwritten"
410
+ } ) ;
411
+
412
+ metricsMock . Received ( 1 ) . CaptureColdStartMetric ( Arg . Any < ILambdaContext > ( ) ) ;
413
+ metricsMock . Received ( 1 ) . AddMetric ( "SuccessfulBooking" , 1 , MetricUnit . Count ) ;
414
+ }
344
415
345
416
public void Dispose ( )
346
417
{
0 commit comments