I am trying to Mock the MVC object HttpPostedFileWrapper
so I can test the "ContentType" and "InputStream" properties in particular. I set up my mock as so:
var mockPostedFile = new Mock<HttpPostedFile>();
var mockFileWrapper = new Mock<HttpPostedFileWrapper>(mockPostedFile);
mockFileWrapper.Setup(file => file.ContentType).Returns("application/pdf");
mockFileWrapper.Setup(file => file.InputStream).Returns(fileStream);
but I get this exception on the first line:
Type to mock must be an interface or an abstract or non-sealed class.
If I change HttpPostedFile
to HttpPostedFileBase
I get this exception when I call mockFileWrapper.Object
Can not instantiate proxy of class: System.Web.HttpPostedFileWrapper. Could not find a constructor that would match given arguments: Moq.Mock`1[System.Web.HttpPostedFileBase]
Does anyone know what I can do to pull this off?
You should be mocking HttpPostedFileBase
, not HttpPostedFileWrapper
.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With