public UsuariosTest() { //Crear un nuevo contexto de trabajo con la BD this.myContext = new DataContext(); //Generar el manejador de usuarios var store = new UserStore <Usuario, Rol, string, IdentityUserLogin, IdentityUserRole, IdentityUserClaim>(this.myContext); var manager = new UserManager <Usuario, string>(store); //Generar nueva instancia del mapper var config = new AutoMapperBase().Mapper; //Lista de usuarios con los cuales trabajar para las pruebas users = new List <Usuario> { new Usuario { Id = Guid.NewGuid().ToString(), UserName = "******", Email = "*****@*****.**", TipoIdentificacion = new Parametro { Categoria = "TIPO_ID", Codigo = "TI_CEDULA", ValorPrincipal = "CC" }, NumeroIdentificacion = "123000", Nombres = "Andres", Apellidos = "Cuellar", Estado = new Parametro { Categoria = "ESTADO_USUARIO", Codigo = "EU_ACTIVO", ValorPrincipal = "A" }, TipoUsuario = new Parametro { Categoria = "TIPO_USUARIO", Codigo = "TU_NA", ValorPrincipal = "NA" } } }; //Configuración Moq this.myRepository = new Mock <IIdentityRepository>(); this.myRepository.Setup(x => x.GetAll()) .Returns(users.AsQueryable()); this.myRepository.Setup(x => x.GetByEmail(It.IsAny <string>())) .Returns((string email) => users.Find(s => s.Email == email)); this.myRepository.Setup(x => x.Create(It.IsAny <Usuario>(), It.IsAny <string>())) .Callback((Usuario user, string password) => users.Add(user)); this.myRepository.Setup(x => x.Update(It.IsAny <Usuario>())) .Callback((Usuario user) => users[users.FindIndex(x => x.Id == user.Id)] = user); this.myRepository.Setup(x => x.Delete(It.IsAny <Usuario>())) .Callback((Usuario user) => users.RemoveAt(users.FindIndex(x => x.Id == user.Id))); //Generar repositorio de acceso para base de datos this.myService = new UsuariosService(this.myRepository.Object, config, new UserValidator <Usuario>(myManager), new PasswordHasher()); }
public static void Register(HttpConfiguration config) { //Unity DI var container = new UnityContainer(); //Custom instances var mapper = new AutoMapperBase().Mapper; var userManager = new UserManager <Usuario>(new UserStore <Usuario>(new DataContext())); var userValidator = new UserValidator <Usuario>(userManager); var identityRepository = new IdentityRepository(userManager); var hasher = new PasswordHasher(); //Register types container.RegisterType <IErrorHandler, ErrorHandler>(new HierarchicalLifetimeManager()); container.RegisterType(typeof(IBaseRepository <>), typeof(BaseRepository <>)); container.RegisterType(typeof(IBaseService <>), typeof(BaseService <>)); container.RegisterType(typeof(IIdentityValidator <>), typeof(UserValidator <>)); container.RegisterType(typeof(IUserStore <>), typeof(UserStore <>)); container.RegisterType <IIdentityRepository, IdentityRepository>(new HierarchicalLifetimeManager()); container.RegisterType <IPasswordHasher, PasswordHasher>(new HierarchicalLifetimeManager()); container.RegisterType <IUsuariosService, UsuariosService>(new HierarchicalLifetimeManager()); container.RegisterType <IUbicacionService, UbicacionService>(new HierarchicalLifetimeManager()); container.RegisterType <IParametroService, ParametroService>(new HierarchicalLifetimeManager()); container.RegisterType <ICitaService, CitaService>(new HierarchicalLifetimeManager()); //Register instances container.RegisterInstance <IMapper>(mapper); container.RegisterInstance <IdentityRepository>(identityRepository); container.RegisterInstance <UserValidator <Usuario> >(new UserValidator <Usuario>(userManager)); container.RegisterInstance <UsuariosService>(new UsuariosService(identityRepository, mapper, userValidator, hasher)); config.DependencyResolver = new UnityResolver(container); // Web API routes config.MapHttpAttributeRoutes(); config.Routes.MapHttpRoute( name: "DefaultApi", routeTemplate: "api/{controller}/{id}", defaults: new { id = RouteParameter.Optional } ); }