@@ -259,7 +259,7 @@ public void AppendErrors_PreservesResultObject_WhenMergingErrors()
259259 var originalResult = new { Id = 42 , Name = "Test" } ;
260260 var target = new OperationResult < object > ( originalResult ) ;
261261
262- var source = new OperationResult ( ) ;
262+ var source = new OperationResult < int > ( ) ;
263263 source . AppendError ( "Source error" , 500 ) ;
264264
265265 // Act
@@ -276,7 +276,7 @@ public void AppendErrors_PreservesResultObject_WhenMergingErrors()
276276 public void AppendErrors_MaintainsFluentChaining_WithGenericType ( )
277277 {
278278 // Arrange
279- var source1 = new OperationResult ( ) ;
279+ var source1 = new OperationResult < double > ( ) ;
280280 source1 . AppendError ( "E1" , 1 ) ;
281281
282282 var source2 = new OperationResult < int > ( ) ;
@@ -301,7 +301,7 @@ public void AppendErrors_PreservesInitialException_FromSource()
301301 {
302302 // Arrange
303303 var sourceException = new InvalidOperationException ( "Source exception" ) ;
304- var source = new OperationResult ( ) ;
304+ var source = new OperationResult < int > ( ) ;
305305 source . AppendException ( sourceException , 999 ) ;
306306
307307 var target = new OperationResult < double > ( ) ;
@@ -340,7 +340,7 @@ public void AppendErrors_HandlesSourceWithMultipleErrorTypes()
340340 public void AppendErrors_MergesSuccessMessages_AreNotTransferred ( )
341341 {
342342 // Arrange
343- var source = new OperationResult ( ) ;
343+ var source = new OperationResult < double > ( ) ;
344344 source . AddSuccessMessage ( "Success from source" ) ;
345345 source . AppendError ( "But has error" , 1 ) ;
346346
@@ -359,7 +359,7 @@ public void AppendErrors_MergesSuccessMessages_AreNotTransferred()
359359 public void AppendErrors_EmptySource_DoesNotAffectTarget ( )
360360 {
361361 // Arrange
362- var source = new OperationResult ( ) ; // No errors
362+ var source = new OperationResult < double > ( ) ;
363363 var target = new OperationResult < string > ( ) ;
364364 target . AppendError ( "Target error" , 1 ) ;
365365
@@ -376,7 +376,7 @@ public void AppendErrors_EmptySource_DoesNotAffectTarget()
376376 public void AppendErrors_EmptyTarget_AcceptsSourceErrors ( )
377377 {
378378 // Arrange
379- var source = new OperationResult ( ) ;
379+ var source = new OperationResult < object > ( ) ;
380380 source . AppendError ( "Source error" , 100 ) ;
381381
382382 var target = new OperationResult < string > ( ) ;
@@ -443,7 +443,7 @@ public void AppendErrors_WithComplexGenericType_PreservesTypeIntegrity()
443443 } ;
444444
445445 var target = new OperationResult < Dictionary < string , List < int > > > ( complexObject ) ;
446- var source = new OperationResult ( ) ;
446+ var source = new OperationResult < int > ( ) ;
447447 source . AppendError ( "Complex type error" , 999 ) ;
448448
449449 // Act
@@ -460,7 +460,7 @@ public void AppendErrors_ReturnsCorrectType_AfterMultipleOperations()
460460 {
461461 // Arrange
462462 var target = new OperationResult < int > { ResultObject = 100 } ;
463- var source1 = new OperationResult ( ) ;
463+ var source1 = new OperationResult < double > ( ) ;
464464 source1 . AppendError ( "E1" , 1 ) ;
465465
466466 // Act
@@ -475,4 +475,20 @@ public void AppendErrors_ReturnsCorrectType_AfterMultipleOperations()
475475 Assert . Same ( target , step3 ) ;
476476 Assert . Equal ( 3 , target . Errors . Count ) ;
477477 }
478+
479+ [ Fact ]
480+ public void AppendErrors_GenericTarget_ShouldLogWhenCreatedWithALogger ( )
481+ {
482+ // Arrange
483+ var testLogger = new TestLogger ( ) ;
484+ var operationResultNoLogger = new OperationResult ( ) ;
485+ var operationResultWithLogger = new OperationResult < string > ( testLogger ) ;
486+
487+ // Act
488+ operationResultNoLogger . AppendError ( "test" ) ;
489+ operationResultWithLogger . AppendErrors ( operationResultNoLogger ) ;
490+
491+ // Assert
492+ Assert . Single ( testLogger . LogMessages ) ;
493+ }
478494}
0 commit comments