I am trying to get unit test for one of my classes. I want to enter my factory instead of an auto-generated factory that allows autofac. How to register my own function as a delegate to replace an auto generated factory delegate?
My code looks something like this:
interface IEntryImporter { ... } class EntryImporter : IEntryImporter { public EntryImporter(ISeries series, IMatch match, Entry.Factory entryFactory) { : } : } interface IEntry : { ... } class Entry : IEntry { public delegate IEntry Factory(); public Entry() { ... } } interface IMatch : { ... } class Match : IMatch { ... } interface ISeries : { ... } class Series : ISeries { ... } void IEntry MyEntryFactory() { var entry = new Mock<IEntry>(); : return entry.Object; } void TestMe() { ContainerBuilder builder = new ContainerBuilder(); builder.RegisterType<Entry>().As<IEntry>(); builder.RegisterType<Match>().As<IMatch>(); builder.RegisterType<Series>().As<ISeries>(); builder.RegisterType<EntryImporter>.As<IEntryImporter>(); var series = new Mock<ISeries>(MockBehavior.Strict); builder.RegisterInstance<ISeries>(series.Object); var match = new Mock<IMatch>(MockBehavior.Strict); builder.RegisterInstance<IMatch>(match.Object);
source share