I am using IUnityContainer
for Registering the types for resolving later.
I have registered the types as below:
// Register a "named type" mapping
container.RegisterType<IProcessHelper, FirstResponseHelper>("FirstResponseHelper");
container.RegisterType<IProcessHelper, SecondResponseHelper>("SecondResponseHelper");
Hence, I could able to use as below in one of my constructor:
public Finish(
IUnitOfWork unitOfWork ,
ILog logger,
..........
[Dependency("FirstResponseHelper")] IProcessHelper firstResponseHelpe,
[Dependency("SecondResponseHelper")] IProcessHelper secondResponseHelper
)
{
.........
_firstResponseHelpe = firstResponseHelper;
_secondResponseHelper = secondResponseHelper;
}
...and would like to get it resolved using Substitute, something-like "below". But by passing the "name" => "FirstResponseHelper" is not allowed in Substitute! :(
// Trying to resolve in UnitTest, looks like below (passing name)
IProcessHelper firstResponseHelper = Substitute.For<IProcessHelper>("FirstResponseHelper")
IProcessHelper secondResponseHelper = Substitute.For<IProcessHelper>("SecondResponseHelper")
I need to call a method from FirstResponseHelper & SecondResponseHelper, from my UnitTest (MSTest).
Hence, I need to get it resolved using Substitute.For<>
for the "named type" interface.