public void GetRoots(bool isRoot0, bool isRoot1, bool isRoot2, int expectedRootsCount) { 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>(); IDictionary<Guid, IElement> elements = new Dictionary<Guid, IElement>(); elements.Add(Guid.NewGuid(), mockEl0.Object); elements.Add(Guid.NewGuid(), mockEl1.Object); elements.Add(Guid.NewGuid(), mockEl2.Object); mockEl0.Setup(m => m.IsRoot).Returns(isRoot0); mockEl1.Setup(m => m.IsRoot).Returns(isRoot1); mockEl2.Setup(m => m.IsRoot).Returns(isRoot2); 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); IList<IElement> results = execMgr.GetRoots(elements); Assert.NotNull(results); Assert.Equal(expectedRootsCount, results.Count); }