private UserServiceImpl GetServiceImpl(IUserRepository fakeUserRepository = null,
                                               IRedisUserRepository fakeRedisRepo = null)
        {
            var redisRepo = fakeRedisRepo ?? new RedisUserRepository(_config, new RedisConnectHelper());
            var userRepo  = fakeUserRepository ?? new UserRepository(_logger, _config, _helper, redisRepo);

            return(new UserServiceImpl(
                       new UserService(
                           _config,
                           new UserRepositoryFactory(
                               userRepo,
                               Substitute.For <IMongoUserRepository>())
                           )));
        }
        public UserRepository(
            ILogger <UserRepository> logger,
            IConfiguration config,
            SqlConnectionHelper helper,
            IRedisUserRepository redisUserRepository
            )
        {
            _logger              = logger;
            _connectionString    = config.GetSection(DbConnectionConst.TestKey).Value;
            _helper              = helper;
            _redisUserRepository = redisUserRepository;
            _mapper              = new MapperConfiguration(cfg => cfg.CreateMap <UserEntity, UserEntity>())
                                   .CreateMapper();

            logger.LogInformation("log init");
        }