test_class.file: session-replacement/src/test/java/com/amadeus/session/repository/redis/TestJedisSessionRepositoryFactory.java
test_class.identifier: TestJedisSessionRepositoryFactory
test_case.body: @Test
    public void testSingleRedisFacade() {
      JedisSessionRepositoryFactory factory = spy(new JedisSessionRepositoryFactory());
      SessionConfiguration sessionConfig = spy(new SessionConfiguration());
      RedisConfiguration config = spy(new RedisConfiguration(sessionConfig));
      config.clusterMode = "SINGLE";
      RedisFacade facade = factory.getRedisFacade(config);
      assertThat(facade, instanceOf(JedisPoolFacade.class));
    }
test_case.class_method_signature: TestJedisSessionRepositoryFactory.testSingleRedisFacade()
test_case.full_signature: @Test public void testSingleRedisFacade()
test_case.identifier: testSingleRedisFacade
test_case.invocations: spy spy spy getRedisFacade assertThat instanceOf
test_case.modifiers: @Test public
test_case.parameters: ()
test_case.return: void
test_case.signature: void testSingleRedisFacade()
focal_class.declarator: logger = LoggerFactory.getLogger(JedisSessionRepositoryFactory.class)
focal_class.modifier: static final
focal_class.original_string: static final Logger logger = LoggerFactory.getLogger(JedisSessionRepositoryFactory.class);
focal_class.type: Logger
focal_class.var_name: logger
focal_class.file: session-replacement/src/main/java/com/amadeus/session/repository/redis/JedisSessionRepositoryFactory.java
focal_class.identifier: JedisSessionRepositoryFactory
focal_class.class_method_signature: JedisSessionRepositoryFactory.getRedisFacade(RedisConfiguration config)
focal_class.full_signature: @Override protected RedisFacade getRedisFacade(RedisConfiguration config)
focal_class.identifier: getRedisFacade
focal_class.modifiers: @Override protected
focal_class.parameters: (RedisConfiguration config)
focal_class.return: RedisFacade
focal_class.signature: RedisFacade getRedisFacade(RedisConfiguration config)
focal_class.class_method_signature: JedisSessionRepositoryFactory.configurePool(RedisConfiguration config)
focal_class.full_signature: static JedisPoolConfig configurePool(RedisConfiguration config)
focal_class.identifier: configurePool
focal_class.modifiers: static
focal_class.parameters: (RedisConfiguration config)
focal_class.return: JedisPoolConfig
focal_class.signature: JedisPoolConfig configurePool(RedisConfiguration config)
focal_class.class_method_signature: JedisSessionRepositoryFactory.singleInstance(JedisPoolConfig poolConfig, RedisConfiguration config)
focal_class.full_signature: private RedisFacade singleInstance(JedisPoolConfig poolConfig, RedisConfiguration config)
focal_class.identifier: singleInstance
focal_class.modifiers: private
focal_class.parameters: (JedisPoolConfig poolConfig, RedisConfiguration config)
focal_class.return: RedisFacade
focal_class.signature: RedisFacade singleInstance(JedisPoolConfig poolConfig, RedisConfiguration config)
focal_class.class_method_signature: JedisSessionRepositoryFactory.sentinelFacade(JedisPoolConfig poolConfig, RedisConfiguration config)
focal_class.full_signature:  RedisFacade sentinelFacade(JedisPoolConfig poolConfig, RedisConfiguration config)
focal_class.identifier: sentinelFacade
focal_class.parameters: (JedisPoolConfig poolConfig, RedisConfiguration config)
focal_class.return: RedisFacade
focal_class.signature: RedisFacade sentinelFacade(JedisPoolConfig poolConfig, RedisConfiguration config)
focal_class.class_method_signature: JedisSessionRepositoryFactory.clusterFacade(JedisPoolConfig poolConfig, RedisConfiguration config)
focal_class.full_signature:  RedisFacade clusterFacade(JedisPoolConfig poolConfig, RedisConfiguration config)
focal_class.identifier: clusterFacade
focal_class.parameters: (JedisPoolConfig poolConfig, RedisConfiguration config)
focal_class.return: RedisFacade
focal_class.signature: RedisFacade clusterFacade(JedisPoolConfig poolConfig, RedisConfiguration config)
focal_class.class_method_signature: JedisSessionRepositoryFactory.jedisHostsAndPorts(RedisConfiguration config)
focal_class.full_signature: static Set<HostAndPort> jedisHostsAndPorts(RedisConfiguration config)
focal_class.identifier: jedisHostsAndPorts
focal_class.modifiers: static
focal_class.parameters: (RedisConfiguration config)
focal_class.return: Set<HostAndPort>
focal_class.signature: Set<HostAndPort> jedisHostsAndPorts(RedisConfiguration config)
focal_class.superclass: extends AbstractRedisSessionRepositoryFactory
focal_method.body: @Override
    protected RedisFacade getRedisFacade(RedisConfiguration config) {
      JedisPoolConfig poolConfig = configurePool(config);
      switch (config.clusterMode) {
      case "SINGLE":
        return singleInstance(poolConfig, config);
      case "SENTINEL":
        return sentinelFacade(poolConfig, config);
      case "CLUSTER":
        return clusterFacade(poolConfig, config);
      default:
        throw new IllegalArgumentException("Unsupported redis mode: " + config);
      }
    }
focal_method.class_method_signature: JedisSessionRepositoryFactory.getRedisFacade(RedisConfiguration config)
focal_method.full_signature: @Override protected RedisFacade getRedisFacade(RedisConfiguration config)
focal_method.identifier: getRedisFacade
focal_method.invocations: configurePool singleInstance sentinelFacade clusterFacade
focal_method.modifiers: @Override protected
focal_method.parameters: (RedisConfiguration config)
focal_method.return: RedisFacade
focal_method.signature: RedisFacade getRedisFacade(RedisConfiguration config)