public void FileSystemQuery_FindNetworkComputers_ValidEntries_ExpectReturned() { //------------Setup for test-------------------------- var dirFact = new Mock <IDirectoryEntryFactory>(); var dir = new Mock <IDirectoryEntry>(); var children = new Mock <IDirectoryEntries>(); var gChildren = new Mock <IDirectoryEntries>(); var actualChildren = new List <Mock <IDirectoryEntry> > { new Mock <IDirectoryEntry>() }; var actualGChildren = new List <Mock <IDirectoryEntry> > { new Mock <IDirectoryEntry>() }; actualGChildren.ForEach(b => b.Setup(a => a.Name).Returns("a")); actualGChildren.ForEach(b => b.Setup(a => a.SchemaClassName).Returns("Computer")); actualChildren.ForEach(b => b.Setup(a => a.SchemaClassName).Returns("Computer")); dirFact.Setup(a => a.Create(It.IsAny <string>())).Returns(dir.Object); dir.Setup(a => a.Children).Returns(children.Object); children.Setup(a => a.GetEnumerator()).Returns(actualChildren.Select(a => a.Object).GetEnumerator()); actualChildren.First().Setup(a => a.Children).Returns(gChildren.Object); gChildren.Setup(a => a.GetEnumerator()).Returns(actualGChildren.Select(a => a.Object).GetEnumerator()); //------------Execute Test--------------------------- var query = new FileSystemQuery(new DirectoryWrapper(), dirFact.Object, new ShareCollectionFactory()); var res = query.FindNetworkComputers(); //------------Assert Results------------------------- Assert.AreEqual(res.Count, 1); Assert.AreEqual("\\\\a", res[0]); }