public List<CircuitBreakerProto.CircuitBreakerRule> getServiceCircuitBreakerRule(String namespace, String sourceService, String dstService) {
		LOG.debug("Get service circuit breaker rules with namespace:{} and sourceService:{} and dstService:{}.", namespace, sourceService, dstService);

		List<CircuitBreakerProto.CircuitBreakerRule> rules = new ArrayList<>();

		// get source service circuit breaker rules.
		ServiceRule sourceServiceRule = getServiceRule(namespace, sourceService, ServiceEventKey.EventType.CIRCUIT_BREAKING);
		if (sourceServiceRule != null) {
			Object rule = sourceServiceRule.getRule();
			if (rule instanceof CircuitBreakerProto.CircuitBreaker) {
				rules.addAll(((CircuitBreakerProto.CircuitBreaker) rule).getRulesList());
			}
		}

		// get peer service circuit breaker rules.
		ServiceRule dstServiceRule = getServiceRule(namespace, dstService, ServiceEventKey.EventType.CIRCUIT_BREAKING);
		if (dstServiceRule != null) {
			Object rule = dstServiceRule.getRule();
			if (rule instanceof CircuitBreakerProto.CircuitBreaker) {
				rules.addAll(((CircuitBreakerProto.CircuitBreaker) rule).getRulesList());
			}
		}

		return rules;
	}
@Test
	public void testGetServiceCircuitBreakerRule() {
		final String testNamespace = "testNamespace";
		final String testSourceService = "testSourceService";
		final String testDstService = "testDstService";

		CircuitBreakerProto.CircuitBreaker circuitBreaker = CircuitBreakerProto.CircuitBreaker.newBuilder()
				.addRules(CircuitBreakerProto.CircuitBreakerRule.newBuilder().build())
				.build();
		ServiceRuleByProto serviceRule = new ServiceRuleByProto(circuitBreaker,
				"111",
				false,
				ServiceEventKey.EventType.CIRCUIT_BREAKING);
		ServiceRuleResponse serviceRuleResponse = new ServiceRuleResponse(serviceRule);

		// source
		when(consumerAPI.getServiceRule(
				argThat(request -> request != null
						&& testNamespace.equals(request.getNamespace())
						&& testSourceService.equals(request.getService())
						&& ServiceEventKey.EventType.CIRCUIT_BREAKING.equals(request.getRuleType()))
		)).thenReturn(serviceRuleResponse);

		ServiceRuleResponse emptyRuleResponse = new ServiceRuleResponse(null);

		// destination
		when(consumerAPI.getServiceRule(
				argThat(request -> request != null
						&& testNamespace.equals(request.getNamespace())
						&& testDstService.equals(request.getService())
						&& ServiceEventKey.EventType.CIRCUIT_BREAKING.equals(request.getRuleType()))
		)).thenReturn(emptyRuleResponse);

		ServiceRuleManager serviceRuleManager = new ServiceRuleManager(sdkContext, consumerAPI);
		List<CircuitBreakerProto.CircuitBreakerRule> serviceCircuitBreakerRule = serviceRuleManager.getServiceCircuitBreakerRule(testNamespace,
				testSourceService,
				testDstService);

		assertThat(serviceCircuitBreakerRule).hasSize(1);
	}