public void GetWholeChain_ReturnAllCrumbs_RelatedTo_Selected_One() { var crumbRoot = new Crumb(); //B var crumbB = new Crumb(); var crumbB_A = new Crumb(); var crumbB_B = new Crumb(); var crumbB_C = new Crumb(); var crumbB_C_A = new Crumb(); //C var crumbC = new Crumb(); crumbRoot.RegisterObserver(crumbB); crumbRoot.RegisterObserver(crumbC); crumbB.RegisterObserver(crumbB_A); crumbB.RegisterObserver(crumbB_B); crumbB_C.RegisterObserver(crumbB_C_A); crumbB.RegisterObserver(crumbB_C); //act var crumbChain = crumbB.GetWholeChain().ToArray(); Assert.Equal(6, crumbChain.Length); Assert.Contains(crumbRoot, crumbChain); Assert.Contains(crumbB, crumbChain); Assert.Contains(crumbB_A, crumbChain); Assert.Contains(crumbB_B, crumbChain); Assert.Contains(crumbB_C, crumbChain); Assert.Contains(crumbB_C_A, crumbChain); }
public void GetWholeChain_ReturnCrumbsRelatedTo_Selected_WithNoSideOnes() { var crumbRoot = new Crumb() { Name = "root" }; //B var crumbB = new Crumb() { Name = "B" }; var crumbB_A = new Crumb() { Name = "B_A" }; var crumbB_B = new Crumb(); var crumbB_C = new Crumb(); var crumbB_C_A = new Crumb(); //C var crumbC = new Crumb(); crumbRoot.RegisterObserver(crumbB); crumbRoot.RegisterObserver(crumbC); crumbB.RegisterObserver(crumbB_A); crumbB.RegisterObserver(crumbB_B); crumbB_C.RegisterObserver(crumbB_C_A); crumbB.RegisterObserver(crumbB_C); //act var crumbChain = crumbB_A.GetWholeChain().ToArray(); Assert.Equal(3, crumbChain.Length); Assert.Contains(crumbRoot, crumbChain); Assert.Contains(crumbB, crumbChain); Assert.Contains(crumbB_A, crumbChain); }