@@ -478,42 +478,64 @@ public async Task SerializeAsync_DataMessageLogging_NoError(bool dataMessageLogg
478
478
[ InlineData ( true ) ]
479
479
public async Task SerializeAsync_DataMessageLogging_WithError ( bool dataMessageLogging )
480
480
{
481
+ // ARRANGE
481
482
var logger = new Mock < ILogger < EnvelopeSerializer > > ( ) ;
482
483
var messageConfiguration = new MessageConfiguration { LogMessageContent = dataMessageLogging } ;
483
484
var messageSerializer = new Mock < IMessageSerializer > ( ) ;
484
485
var dateTimeHandler = new Mock < IDateTimeHandler > ( ) ;
485
486
var messageIdGenerator = new Mock < IMessageIdGenerator > ( ) ;
486
487
var messageSourceHandler = new Mock < IMessageSourceHandler > ( ) ;
487
- var envelopeSerializer = new EnvelopeSerializer ( logger . Object , messageConfiguration , messageSerializer . Object , dateTimeHandler . Object , messageIdGenerator . Object , messageSourceHandler . Object ) ;
488
- var messageEnvelope = new MessageEnvelope < MessageEnvelope >
488
+ var envelopeSerializer = new EnvelopeSerializer (
489
+ logger . Object ,
490
+ messageConfiguration ,
491
+ messageSerializer . Object ,
492
+ dateTimeHandler . Object ,
493
+ messageIdGenerator . Object ,
494
+ messageSourceHandler . Object ) ;
495
+
496
+ var messageEnvelope = new MessageEnvelope < AddressInfo >
489
497
{
490
498
Id = "123" ,
491
499
Source = new Uri ( "/aws/messaging" , UriKind . Relative ) ,
492
500
Version = "1.0" ,
493
501
MessageTypeIdentifier = "addressInfo" ,
494
502
TimeStamp = _testdate ,
495
- Message = new MessageEnvelope < MessageEnvelope >
503
+ Message = new AddressInfo
496
504
{
497
- Id = "123" ,
498
- Source = new Uri ( "/aws/messaging" , UriKind . Relative ) ,
499
- Version = "1.0" ,
500
- MessageTypeIdentifier = "addressInfo" ,
501
- TimeStamp = _testdate
505
+ Street = "Prince St" ,
506
+ Unit = 123 ,
507
+ ZipCode = "00001"
502
508
}
503
509
} ;
504
- messageSerializer . Setup ( x => x . Serialize ( It . IsAny < object > ( ) ) ) . Throws ( new JsonException ( "Test exception" ) ) ;
505
510
506
- var exception = await Assert . ThrowsAsync < FailedToSerializeMessageEnvelopeException > ( async ( ) => await envelopeSerializer . SerializeAsync ( messageEnvelope ) ) ;
511
+ // Setup the serializer to throw when trying to serialize the message
512
+ messageSerializer . Setup ( x => x . Serialize ( It . IsAny < object > ( ) ) )
513
+ . Throws ( new JsonException ( "Test exception" ) ) ;
514
+
515
+ // ACT & ASSERT
516
+ var exception = await Assert . ThrowsAsync < FailedToSerializeMessageEnvelopeException > (
517
+ async ( ) => await envelopeSerializer . SerializeAsync ( messageEnvelope ) ) ;
507
518
508
519
Assert . Equal ( "Failed to serialize the MessageEnvelope into a raw string" , exception . Message ) ;
520
+
509
521
if ( dataMessageLogging )
510
522
{
511
523
Assert . NotNull ( exception . InnerException ) ;
524
+ Assert . IsType < JsonException > ( exception . InnerException ) ;
525
+ Assert . Equal ( "Test exception" , exception . InnerException . Message ) ;
512
526
}
513
527
else
514
528
{
515
529
Assert . Null ( exception . InnerException ) ;
516
530
}
531
+
532
+ // Verify logging behavior
533
+ logger . Verify (
534
+ x => x . LogError (
535
+ It . Is < string > ( msg => msg == "Failed to serialize the MessageEnvelope into a raw string" ) ,
536
+ It . IsAny < object [ ] > ( )
537
+ ) ,
538
+ Times . Once ) ;
517
539
}
518
540
519
541
[ Theory ]
0 commit comments