Reputation: 307
I am using Automapper and Unity DI in my webapi. How can I write Automapper so that i can mock it for my unit testing? I am using Automapper 7.0
public class AutomapperConfiguraiton: Profile
{
public static void Configure()
{
Mapper.Initialize(cfg =>{cfg.CreateMap<A,B>();});
}
}
public class Registries
{
public static UnityContainer GetContainer()
{
var container = new UnityContainer();
container.RegisterType<IABC, ABC>();
}
}
Webapiconfig.cs
public static class WebApiConfig
{
public static void Register(HttpConfiguration config)
{
AutomapperConfiguration.Configure();
var container = Registries.GetContainer();
}
}
Upvotes: 1
Views: 152
Reputation: 307
Use Instance api of automapper.
public class AutomapperConfiguration : Profile
{
public static MapperConfiguration Get()
{
return new MapperConfiguration(cfg =>
{Mapper.Initialize(cfg =>{cfg.CreateMap<A,B>();});
}
}
}
In Registries.cs
public class Registries
{
public static UnityContainer GetContainer(MapperConfiguration config)
{
var container = new UnityContainer();
container.RegisterInstance<IMapper>(new Mapper(config), new
ContainerControlledLifetimeManager());
}
}
In Webapiconfig.cs
public static class WebApiConfig
{
public static void Register(HttpConfiguration config)
{
var automapperConfig = AutomapperConfiguration.Get();
var container = Registries.GetContainer(automapperConfig);
}
}
Upvotes: 1