package client import ( "os" "testing" ) func TestNewClient(t *testing.T) { client := NewClient("http") if client == nil { t.Fatal("NewClient returned nil") } if client.mode != "http" { t.Errorf("Expected mode 'http', got '%s'", client.mode) } if client.systemProxyMgr == nil { t.Error("SystemProxyManager should be initialized") } } func TestClientStart_InvalidConfig(t *testing.T) { client := NewClient("http") // 测试不存在的配置文件 err := client.Start("nonexistent.yaml") if err == nil { t.Error("Expected error for nonexistent config file") } } func TestClientStart_InvalidMode(t *testing.T) { // 创建临时配置文件 tmpFile, err := os.CreateTemp("", "test_config_*.yaml") if err != nil { t.Fatal(err) } defer os.Remove(tmpFile.Name()) // 写入基本配置 configContent := ` serviceType: client server: address: 127.0.0.1 port: 1080 username: test password: test proxy: mode: http localPort: 8080 logLevel: info timeout: 30s ` if _, err := tmpFile.WriteString(configContent); err != nil { t.Fatal(err) } tmpFile.Close() // 测试无效模式 client := NewClient("invalid_mode") err = client.Start(tmpFile.Name()) if err == nil { t.Error("Expected error for invalid mode") } }