package agent import ( "testing" "cyberstrike-ai/internal/config" "cyberstrike-ai/internal/mcp" "go.uber.org/zap" ) // setupTestAgent 创建测试用的Agent func setupTestAgent(t *testing.T) *Agent { logger := zap.NewNop() mcpServer := mcp.NewServer(logger) openAICfg := &config.OpenAIConfig{ APIKey: "test-key", BaseURL: "https://api.test.com/v1", Model: "test-model", } agentCfg := &config.AgentConfig{ MaxIterations: 10, } return NewAgent(openAICfg, agentCfg, mcpServer, nil, logger, 10) } func TestAgent_NewAgent_DefaultValues(t *testing.T) { logger := zap.NewNop() mcpServer := mcp.NewServer(logger) openAICfg := &config.OpenAIConfig{ APIKey: "test-key", BaseURL: "https://api.test.com/v1", Model: "test-model", } // 测试默认配置 agent := NewAgent(openAICfg, nil, mcpServer, nil, logger, 0) if agent.maxIterations != 30 { t.Errorf("默认迭代次数不匹配。期望: 30, 实际: %d", agent.maxIterations) } } func TestAgent_NewAgent_CustomConfig(t *testing.T) { logger := zap.NewNop() mcpServer := mcp.NewServer(logger) openAICfg := &config.OpenAIConfig{ APIKey: "test-key", BaseURL: "https://api.test.com/v1", Model: "test-model", } agentCfg := &config.AgentConfig{ MaxIterations: 20, } agent := NewAgent(openAICfg, agentCfg, mcpServer, nil, logger, 15) if agent.maxIterations != 15 { t.Errorf("迭代次数不匹配。期望: 15, 实际: %d", agent.maxIterations) } }