#!/bin/bash set -euo pipefail echo "======================================" echo "Circuit Breaker Validation Test Suite" echo "======================================" echo "" # Colors for output RED='\033[0;31m' GREEN='\033[0;32m' YELLOW='\033[1;33m' NC='\033[0m' # No Color # Test counters TOTAL_TESTS=0 PASSED_TESTS=0 FAILED_TESTS=0 test_result() { TOTAL_TESTS=$((TOTAL_TESTS + 1)) if [ $1 -eq 0 ]; then echo -e "${GREEN}✓ PASS${NC}: $2" PASSED_TESTS=$((PASSED_TESTS + 1)) else echo -e "${RED}✗ FAIL${NC}: $2" FAILED_TESTS=$((FAILED_TESTS + 1)) fi } echo "Phase 1: Inventory Circuit Breaker Implementations" echo "---------------------------------------------------" # Search for circuit breaker implementations echo "Searching for circuit breaker code..." CB_RISK=$(find risk/src -name "circuit_breaker.rs" 2>/dev/null | wc -l) CB_TRADING=$(find trading_engine/src/types -name "circuit_breaker.rs" 2>/dev/null | wc -l) test_result $([ $CB_RISK -gt 0 ] && echo 0 || echo 1) "Risk circuit breaker implementation exists" test_result $([ $CB_TRADING -gt 0 ] && echo 0 || echo 1) "Trading engine circuit breaker implementation exists" echo "" echo "Phase 2: Check Configuration" echo "----------------------------" # Check for circuit breaker configuration echo "Checking circuit breaker configuration..." # Check risk circuit breaker config if grep -r "CircuitBreakerConfig" risk/src/ >/dev/null 2>&1; then test_result 0 "Circuit breaker configuration structure exists" else test_result 1 "Circuit breaker configuration structure exists" fi # Check for failure thresholds if grep -r "failure_threshold\|daily_loss_percentage" risk/src/ >/dev/null 2>&1; then test_result 0 "Failure threshold configuration" else test_result 1 "Failure threshold configuration" fi # Check for state management if grep -r "CircuitState\|CircuitBreakerState" risk/src/ trading_engine/src/ >/dev/null 2>&1; then test_result 0 "Circuit breaker state management" else test_result 1 "Circuit breaker state management" fi echo "" echo "Phase 3: Check State Transitions" echo "---------------------------------" # Check for state transition logic if grep -r "Closed\|Open\|HalfOpen" trading_engine/src/types/circuit_breaker.rs risk/src/circuit_breaker.rs 2>/dev/null; then test_result 0 "State transition logic (Closed/Open/HalfOpen)" else test_result 1 "State transition logic (Closed/Open/HalfOpen)" fi # Check for transition methods if grep -r "transition_to_open\|transition_to_closed\|transition_to_half_open" trading_engine/src/types/circuit_breaker.rs 2>/dev/null; then test_result 0 "State transition methods" else test_result 1 "State transition methods" fi echo "" echo "Phase 4: Check Monitoring Integration" echo "--------------------------------------" # Check for metrics if grep -r "CircuitBreakerMetrics\|get_metrics" risk/src/circuit_breaker.rs trading_engine/src/types/circuit_breaker.rs 2>/dev/null; then test_result 0 "Circuit breaker metrics" else test_result 1 "Circuit breaker metrics" fi # Check for health check if grep -r "health_check" risk/src/circuit_breaker.rs 2>/dev/null; then test_result 0 "Health check integration" else test_result 1 "Health check integration" fi echo "" echo "Phase 5: Check API Gateway Integration" echo "---------------------------------------" # Check API Gateway health router if grep -r "circuit.*breaker\|circuit_breaker_status" services/api_gateway/src/health_router.rs 2>/dev/null; then test_result 0 "API Gateway circuit breaker endpoint" else test_result 1 "API Gateway circuit breaker endpoint" fi echo "" echo "Phase 6: Check Redis Coordination" echo "----------------------------------" # Check for Redis integration if grep -r "redis_client\|RedisResult\|persist_state_to_redis" risk/src/circuit_breaker.rs 2>/dev/null; then test_result 0 "Redis state coordination" else test_result 1 "Redis state coordination" fi echo "" echo "========================================" echo " INITIAL SUMMARY" echo "========================================" echo "Total Tests: $TOTAL_TESTS" echo -e "${GREEN}Passed: $PASSED_TESTS${NC}" echo -e "${RED}Failed: $FAILED_TESTS${NC}" echo ""