public static HystrixObservableCommand.Setter build(final HystrixHandle hystrixHandle, final String commandKey, final String groupKey) {
        initHystrixHandleOnRequire(hystrixHandle);
        HystrixCommandGroupKey hystrixCommandGroupKey = HystrixCommandGroupKey.Factory.asKey(groupKey);
        HystrixCommandKey hystrixCommandKey = HystrixCommandKey.Factory.asKey(commandKey);
        HystrixCommandProperties.Setter propertiesSetter =
                HystrixCommandProperties.Setter()
                        .withExecutionTimeoutInMilliseconds((int) hystrixHandle.getTimeout())
                        .withCircuitBreakerEnabled(true)
                        .withExecutionIsolationStrategy(HystrixCommandProperties.ExecutionIsolationStrategy.SEMAPHORE)
                        .withExecutionIsolationSemaphoreMaxConcurrentRequests(hystrixHandle.getMaxConcurrentRequests())
                        .withCircuitBreakerErrorThresholdPercentage(hystrixHandle.getErrorThresholdPercentage())
                        .withCircuitBreakerRequestVolumeThreshold(hystrixHandle.getRequestVolumeThreshold())
                        .withCircuitBreakerSleepWindowInMilliseconds(hystrixHandle.getSleepWindowInMilliseconds());
        return HystrixObservableCommand.Setter
                .withGroupKey(hystrixCommandGroupKey)
                .andCommandKey(hystrixCommandKey)
                .andCommandPropertiesDefaults(propertiesSetter);
    }
@Test
    public void testBuild() {
        HystrixHandle hystrixHandle = new HystrixHandle();
        hystrixHandle.setGroupKey("groupKey");
        hystrixHandle.setCommandKey("commandKey");
        hystrixHandle.setMaxConcurrentRequests(0);
        hystrixHandle.setErrorThresholdPercentage(0);
        hystrixHandle.setRequestVolumeThreshold(0);
        hystrixHandle.setSleepWindowInMilliseconds(0);
        hystrixHandle.setHystrixThreadPoolConfig(null);
        assertNotNull(HystrixBuilder.build(hystrixHandle));
        HystrixThreadPoolConfig hystrixThreadPoolConfig = new HystrixThreadPoolConfig();
        hystrixThreadPoolConfig.setCoreSize(0);
        hystrixThreadPoolConfig.setMaximumSize(0);
        hystrixThreadPoolConfig.setMaxQueueSize(0);
        hystrixHandle.setHystrixThreadPoolConfig(hystrixThreadPoolConfig);
        assertNotNull(HystrixBuilder.build(hystrixHandle));
        assertNotNull(HystrixBuilder.buildForHystrixCommand(hystrixHandle));
    }