So, I am able to fake out static properties like DateTime.Now from the examples, but I'm having issues faking out the FileInfo objects if I create a new instance of the class in my libraries. Can anyone help fix the code below?
// MyLibraryClass.cs
public class MyLibraryClass
{
public void FileInfoDeleteMember(string filename)
{
var fi = new FileInfo(filename);
fi.Delete();
}
}
// FileInfoTests
[TestClass]
public class FileInfoTests
{
static FileInfoTests()
{
Mock.Replace<FileInfo>(x => x.Delete()).In<MyLibraryClass>(c => c.FileInfoDeleteMember(Arg.AnyString));
}
[TestMethod]
public void ShouldNotDeleteFileWhenCalled()
{
var called = false;
var mlc = new MyLibraryClass();
Mock.Arrange(() => new FileInfo(Arg.AnyString).Delete()).DoInstead(() => called = true);
mlc.FileInfoDeleteMember(@"C:\test.txt");
Assert.AreEqual(called, true);
}
}
// MyLibraryClass.cs
public class MyLibraryClass
{
public void FileInfoDeleteMember(string filename)
{
var fi = new FileInfo(filename);
fi.Delete();
}
}
// FileInfoTests
[TestClass]
public class FileInfoTests
{
static FileInfoTests()
{
Mock.Replace<FileInfo>(x => x.Delete()).In<MyLibraryClass>(c => c.FileInfoDeleteMember(Arg.AnyString));
}
[TestMethod]
public void ShouldNotDeleteFileWhenCalled()
{
var called = false;
var mlc = new MyLibraryClass();
Mock.Arrange(() => new FileInfo(Arg.AnyString).Delete()).DoInstead(() => called = true);
mlc.FileInfoDeleteMember(@"C:\test.txt");
Assert.AreEqual(called, true);
}
}