@@ -2550,6 +2550,55 @@ public LogbookCode(string key)
25502550 public string Key { get ; protected set ; }
25512551 }
25522552
2553+ private class MyCompany
2554+ {
2555+ public string Name { get ; set ; }
2556+ public MyCompanyLogo Logo { get ; set ; }
2557+ public List < MyUser > Users { get ; set ; }
2558+ }
2559+
2560+ private class MyUser
2561+ {
2562+ public string Name { get ; set ; }
2563+ public MyCompany Company { get ; set ; }
2564+ }
2565+
2566+ private class MyCompanyLogo
2567+ {
2568+ public string Url { get ; set ; }
2569+ public MyCompany Company { get ; set ; }
2570+ public MyUser CreatedBy { get ; set ; }
2571+ }
2572+
2573+ [ TestMethod ]
2574+ public void When_the_root_object_is_referenced_from_a_nested_object_it_should_treat_it_as_a_cyclic_reference ( )
2575+ {
2576+ //-----------------------------------------------------------------------------------------------------------
2577+ // Arrange
2578+ //-----------------------------------------------------------------------------------------------------------
2579+ var company1 = new MyCompany { Name = "Company" } ;
2580+ var user1 = new MyUser { Name = "User" , Company = company1 } ;
2581+ company1 . Users = new List < MyUser > { user1 } ;
2582+ var logo1 = new MyCompanyLogo { Url = "blank" , Company = company1 , CreatedBy = user1 } ;
2583+ company1 . Logo = logo1 ;
2584+
2585+ var company2 = new MyCompany { Name = "Company" } ;
2586+ var user2 = new MyUser { Name = "User" , Company = company2 } ;
2587+ company2 . Users = new List < MyUser > { user2 } ;
2588+ var logo2 = new MyCompanyLogo { Url = "blank" , Company = company2 , CreatedBy = user2 } ;
2589+ company2 . Logo = logo2 ;
2590+
2591+ //-----------------------------------------------------------------------------------------------------------
2592+ // Act
2593+ //-----------------------------------------------------------------------------------------------------------
2594+ Action action = ( ) => company1 . ShouldBeEquivalentTo ( company2 , o => o . IgnoringCyclicReferences ( ) ) ;
2595+
2596+ //-----------------------------------------------------------------------------------------------------------
2597+ // Assert
2598+ //-----------------------------------------------------------------------------------------------------------
2599+ action . ShouldNotThrow ( ) ;
2600+ }
2601+
25532602 #endregion
25542603
25552604 #region Nested Enumerables
0 commit comments