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]);
}