public void Setup() { fs = Substitute.For<IFileDataSource>(); ds= Substitute.For<IDirectoryDataSource>(); o = Substitute.For<IOutputController>(); ds.EnumerateDirectories(Arg.Any<string>()).Returns(new List<string>() { @"C:\test\directory1", @"C:\test\directory1\directory2", @"C:\test\directory1\MySolution.directory2", @"C:\test\directory1\MySolution.directory3" }); ds.EnumerateFiles(Arg.Any<string>()).Returns(new List<string>() { @"C:\test\directory1\test.txt", @"C:\test\directory1\directory2\test2.txt", @"C:\test\directory1\directory2\test2.dll", @"C:\test\directory1\directory2\MySolution.test2.dll", @"C:\test\directory1\directory2\MySolution.test2.txt", @"C:\test\directory1\directory2\MySolution.test3.html", @"C:\test\directory1\directory2\MySolution.test4.csproj", @"C:\test\directory1\directory2\MySolution.test5.sln" }); ds.GetFiles(Arg.Any<string>(), Arg.Any<string>(), Arg.Any<SearchOption>()).Returns(new string[] { @"C:\test\directory1\test.txt", @"C:\test\directory1\directory2\test2.txt", @"C:\test\directory1\directory2\test2.dll", @"C:\test\directory1\directory2\MySolution.test2.dll", @"C:\test\directory1\directory2\MySolution.test2.txt", @"C:\test\directory1\directory2\MySolution.test3.html", @"C:\test\directory1\directory2\MySolution.test4.csproj", @"C:\test\directory1\directory2\MySolution.test5.sln" }); fs.When(x => x.Move(Arg.Any<string>(), Arg.Any<string>())).Do(x => fileMoveCounter++); ds.When(x => x.Move(Arg.Any<string>(), Arg.Any<string>())).Do(x => folderMoveCounter++); }