public void InsertRoot(float y0, float y1, float y2, int expectedResult) { var execMgr = new ExecMgr(); var mockEl0 = new Mock<IElement>(); var mockEl1 = new Mock<IElement>(); var mockEl2 = new Mock<IElement>(); IList<IElement> roots = new List<IElement>(); roots.Add(mockEl0.Object); roots.Add(mockEl1.Object); //roots.Add(el2); var mockSettingsMgr0 = new Mock<IElementSettingsMgr>(); var mockSettingsMgr1 = new Mock<IElementSettingsMgr>(); var mockSettingsMgr2 = new Mock<IElementSettingsMgr>(); PointF loc0 = new PointF(0f, y0); PointF loc1 = new PointF(0f, y1); PointF loc2 = new PointF(0f, y2); mockEl0.Setup(m => m.Settings).Returns(mockSettingsMgr0.Object); mockSettingsMgr0.Setup(m => m.Location).Returns(loc0); mockEl1.Setup(m => m.Settings).Returns(mockSettingsMgr1.Object); mockSettingsMgr1.Setup(m => m.Location).Returns(loc1); mockEl2.Setup(m => m.Settings).Returns(mockSettingsMgr2.Object); mockSettingsMgr2.Setup(m => m.Location).Returns(loc2); int index = execMgr.InsertRoot(roots, mockEl2.Object); mockEl2.VerifyAll(); mockSettingsMgr2.VerifyAll(); Assert.Equal(expectedResult, index); IElement tmp = roots[index]; Assert.NotNull(tmp); Assert.Same(mockEl2.Object, tmp); }